]> git.cworth.org Git - apitrace/blobdiff - specs/gltypes.py
Use CString shorthand more places.
[apitrace] / specs / gltypes.py
index 829f0d84661caba35807633ee4fb259661fde6c3..71d7cd613e110e5ed224b4777901e1b9ede87beb 100644 (file)
@@ -32,7 +32,11 @@ import platform
 from stdapi import *
 
 
-GLboolean = Alias("GLboolean", Bool)
+GLboolean = Enum("GLboolean", [
+    "GL_TRUE",
+    "GL_FALSE",
+])
+
 GLvoid = Alias("GLvoid", Void)
 GLbyte = Alias("GLbyte", SChar)
 GLshort = Alias("GLshort", Short)
@@ -98,24 +102,25 @@ GLrenderbuffer = Handle("renderbuffer", GLuint)
 GLfragmentShaderATI = Handle("fragmentShaderATI", GLuint)
 GLarray = Handle("array", GLuint)
 GLregion = Handle("region", GLuint)
-GLmap = GLpointer
 GLpipeline = Handle("pipeline", GLuint)
 GLsampler = Handle("sampler", GLuint)
 GLfeedback = Handle("feedback", GLuint)
 
-GLsync_ = Opaque("GLsync")
-GLsync = Handle("sync", GLsync_)
+# GL mappings are pointers to linear memory regions.
+#
+# The map length is not always available in the function prototype, and must be
+# reconstructed from other state.
+GLmap = LinearPointer(GLvoid, "length")
+
+GLsync = Handle("sync", IntPointer("GLsync"))
 
 GLenum = Enum("GLenum", [
     # Parameters are added later from glparams.py's parameter table
 ])
 
 # Some functions take GLenum disguised as GLint, and need special treatment so
-# that symbolic names are traced correctly.  Apple noticed and fixed it in the
-# gl.h header, which further complicates things.  C++ typechecking rules force
-# the wrappers to match the prototype precisely, so the precise type is defined
-# in glimports.hpp
-GLenum_int = Alias("GLenum_int", GLenum)
+# that symbolic names are traced correctly.
+GLenum_int = Alias("GLint", GLenum)
 
 GLenum_mode = FakeEnum(GLenum, [
     "GL_POINTS",                         # 0x0000