]> git.cworth.org Git - apitrace/commitdiff
(Re)trace glClearBuffer*v properly.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Wed, 8 Jun 2011 23:11:13 +0000 (00:11 +0100)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Wed, 8 Jun 2011 23:11:13 +0000 (00:11 +0100)
glapi.py
glsize.hpp

index d8076ef7e98d3e7e70275b79ec08c4fd524bd90e..6b7cbfb5bd7fda533bb89215f34fe2859a46b69b 100644 (file)
--- a/glapi.py
+++ b/glapi.py
@@ -711,9 +711,9 @@ glapi.add_functions([
     GlFunction(Void, "glTexParameterIuiv", [(GLenum, "target"), (GLenum, "pname"), (Const(OpaqueArray(GLuint, "__glTexParameterIuiv_size(pname)")), "params")]),
     GlFunction(Void, "glGetTexParameterIiv", [(GLenum, "target"), (GLenum, "pname"), Out(OpaqueArray(GLint, "__glGetTexParameterIiv_size(pname)"), "params")], sideeffects=False),
     GlFunction(Void, "glGetTexParameterIuiv", [(GLenum, "target"), (GLenum, "pname"), Out(OpaqueArray(GLuint, "__glGetTexParameterIuiv_size(pname)"), "params")], sideeffects=False),
-    GlFunction(Void, "glClearBufferiv", [(GLenum, "buffer"), (GLint, "drawbuffer"), (Const(OpaqueArray(GLint, "__glClearBufferiv_size(buffer)")), "value")]),
-    GlFunction(Void, "glClearBufferuiv", [(GLenum, "buffer"), (GLint, "drawbuffer"), (Const(OpaqueArray(GLuint, "__glClearBufferuiv_size(buffer)")), "value")]),
-    GlFunction(Void, "glClearBufferfv", [(GLenum, "buffer"), (GLint, "drawbuffer"), (Const(OpaqueArray(GLfloat, "__glClearBufferfv_size(buffer)")), "value")]),
+    GlFunction(Void, "glClearBufferiv", [(GLenum, "buffer"), (GLint, "drawbuffer"), (Const(Array(GLint, "__glClearBuffer_size(buffer)")), "value")]),
+    GlFunction(Void, "glClearBufferuiv", [(GLenum, "buffer"), (GLint, "drawbuffer"), (Const(Array(GLuint, "__glClearBuffer_size(buffer)")), "value")]),
+    GlFunction(Void, "glClearBufferfv", [(GLenum, "buffer"), (GLint, "drawbuffer"), (Const(Array(GLfloat, "__glClearBuffer_size(buffer)")), "value")]),
     GlFunction(Void, "glClearBufferfi", [(GLenum, "buffer"), (GLint, "drawbuffer"), (GLfloat, "depth"), (GLint, "stencil")]),
     GlFunction(String("const GLubyte *"), "glGetStringi", [(GLenum, "name"), (GLuint, "index")], sideeffects=False),
 
index bd933dc8be409aaf1e53a0bb5d9a42cf53cd3cfe..81ef0a7c6cd364aa2355b2dd2d6c1292402370e4 100644 (file)
@@ -574,6 +574,25 @@ __gl_image_size(GLenum format, GLenum type, GLsizei width, GLsizei height, GLsiz
 #define __glBitmap_size(width, height) __glTexImage2D_size(GL_COLOR_INDEX, GL_BITMAP, width, height)
 #define __glPolygonStipple_size() __glBitmap_size(32, 32)
 
+static inline size_t
+__glClearBuffer_size(GLenum buffer)
+{
+    switch (buffer) {
+    case GL_COLOR:
+    case GL_FRONT:
+    case GL_BACK:
+    case GL_LEFT:
+    case GL_RIGHT:
+    case GL_FRONT_AND_BACK:
+        return 4;
+    case GL_DEPTH:
+    case GL_STENCIL:
+        return 1;
+    default:
+        OS::DebugMessage("apitrace: warning: %s: unexpected buffer GLenum 0x%04X\n", __FUNCTION__, buffer);
+        return 0;
+    }
+}
 
 /* 
  * 0 terminated integer/float attribute list.