diff options
Diffstat (limited to 'tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp')
| -rw-r--r-- | tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp b/tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp index b0702a76d..ae70598a3 100644 --- a/tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp +++ b/tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp @@ -16,6 +16,7 @@ #include "glUtils.h" #include <string.h> #include "ErrorLog.h" +#include <IOStream.h> size_t glSizeof(GLenum type) { @@ -344,6 +345,25 @@ void glUtilsPackPointerData(unsigned char *dst, unsigned char *src, } } +void glUtilsWritePackPointerData(void* _stream, unsigned char *src, + int size, GLenum type, unsigned int stride, + unsigned int datalen) +{ + IOStream* stream = reinterpret_cast<IOStream*>(_stream); + + unsigned int vsize = size * glSizeof(type); + if (stride == 0) stride = vsize; + + if (stride == vsize) { + stream->writeFully(src, datalen); + } else { + for (unsigned int i = 0; i < datalen; i += vsize) { + stream->writeFully(src, (size_t)vsize); + src += stride; + } + } +} + int glUtilsPixelBitSize(GLenum format, GLenum type) { int components = 0; |
