X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;ds=sidebyside;f=glsize.hpp;h=64b96af25ee61c24728fe6bbec129b0ac513896f;hb=83387fb4565289a00fa4b1cf0768bbc1c7918f34;hp=4042f26b66f89191130dfd117965eaafc0153673;hpb=2603acf99672788aaf9797c989cddc39fa0b35cb;p=apitrace diff --git a/glsize.hpp b/glsize.hpp index 4042f26..64b96af 100644 --- a/glsize.hpp +++ b/glsize.hpp @@ -51,25 +51,20 @@ __gl_type_size(GLenum type) case GL_BYTE: case GL_UNSIGNED_BYTE: return 1; - break; case GL_SHORT: case GL_UNSIGNED_SHORT: case GL_2_BYTES: case GL_HALF_FLOAT: return 2; - break; case GL_3_BYTES: return 3; - break; case GL_INT: case GL_UNSIGNED_INT: case GL_FLOAT: case GL_4_BYTES: return 4; - break; case GL_DOUBLE: return 8; - break; default: OS::DebugMessage("warning: %s: unknown GLenum 0x%04X\n", __FUNCTION__, type); return 0; @@ -94,6 +89,7 @@ __glArrayPointer_size(GLint size, GLenum type, GLsizei stride, GLsizei maxIndex) #define __glEdgeFlagPointer_size(stride, maxIndex) __glArrayPointer_size(1, GL_BOOL, stride, maxIndex) #define __glFogCoordPointer_size(type, stride, maxIndex) __glArrayPointer_size(1, type, stride, maxIndex) #define __glSecondaryColorPointer_size(size, type, stride, maxIndex) __glArrayPointer_size(size, type, stride, maxIndex) +#define __glVertexAttribPointer_size(size, type, normalized, stride, maxIndex) __glArrayPointer_size(size, type, stride, maxIndex) static inline GLuint __glDrawArrays_maxindex(GLint first, GLsizei count) @@ -964,6 +960,8 @@ __glGetBooleanv_size(GLenum pname) #define __glGetIntegerv_size __glGetBooleanv_size +#define __glGetInteger64v_size __glGetBooleanv_size + #define __glGetLightfv_size __glLightfv_size #define __glGetLightiv_size __glLightfv_size @@ -1403,8 +1401,7 @@ __glGetFramebufferAttachmentParameterivEXT_size(GLenum pname) #define __glGetFramebufferAttachmentParameteriv_size __glGetFramebufferAttachmentParameterivEXT_size static inline size_t -__glTexImage3D_size(GLenum format, GLenum type, GLsizei width, GLsizei height, GLsizei depth, GLint border) { - size_t num_channels; +__gl_format_channels(GLenum format) { switch (format) { case GL_COLOR_INDEX: case GL_RED: @@ -1412,26 +1409,32 @@ __glTexImage3D_size(GLenum format, GLenum type, GLsizei width, GLsizei height, G case GL_BLUE: case GL_ALPHA: case GL_INTENSITY: + case GL_LUMINANCE: case GL_DEPTH_COMPONENT: case GL_STENCIL_INDEX: - num_channels = 1; + return 1; break; case GL_LUMINANCE_ALPHA: - num_channels = 2; + return 2; break; case GL_RGB: case GL_BGR: - num_channels = 3; + return 3; break; case GL_RGBA: case GL_BGRA: - num_channels = 4; + return 4; break; default: - OS::DebugMessage("warning: %s: unexpected GLenum 0x%04X\n", __FUNCTION__, format); - num_channels = 0; + OS::DebugMessage("warning: %s: unexpected format GLenum 0x%04X\n", __FUNCTION__, format); + return 0; break; } +} + +static inline size_t +__glTexImage3D_size(GLenum format, GLenum type, GLsizei width, GLsizei height, GLsizei depth, GLint border) { + size_t num_channels = __gl_format_channels(format); size_t bits_per_pixel; switch (type) { @@ -1470,7 +1473,7 @@ __glTexImage3D_size(GLenum format, GLenum type, GLsizei width, GLsizei height, G bits_per_pixel = 32; break; default: - OS::DebugMessage("warning: %s: unexpected GLenum 0x%04X\n", __FUNCTION__, type); + OS::DebugMessage("warning: %s: unexpected type GLenum 0x%04X\n", __FUNCTION__, type); bits_per_pixel = 0; break; }