]> git.cworth.org Git - apitrace/blobdiff - specs/gltypes.py
gltrace: Rely on polymorphism for indices instead of special case.
[apitrace] / specs / gltypes.py
index 23af3279e54f2e51a33e8ebba9ad6166131a7d36..a04990d9ec33ec72550e39aa3a5a3834e1b20187 100644 (file)
@@ -237,3 +237,16 @@ GLbitfield_barrier = Flags(GLbitfield, [
 size_bgra = FakeEnum(GLint, [
     "GL_BGRA",
 ])
+
+
+def GLindexBuffer(countExpr, typeExpr):
+    # Indices arguments are polymorphic:
+    # - offsets when element array buffer is bound
+    # - or a blob otherwise.
+    sizeExpr = '%s*_gl_type_size(%s)' % (countExpr, typeExpr)
+    return Polymorphic('_element_array_buffer_binding()', [
+            ('0', Blob(Const(GLvoid), sizeExpr)),
+        ],
+        IntPointer("const GLvoid *"), 
+        contextLess=False,
+    )