]> git.cworth.org Git - apitrace/commitdiff
Proper AttribArray / attrib_list support for applicable CGL functions.
authorAndreas Hartmetz <ahartmetz@gmail.com>
Tue, 9 Jul 2013 20:40:44 +0000 (22:40 +0200)
committerAndreas Hartmetz <ahartmetz@gmail.com>
Tue, 9 Jul 2013 20:41:46 +0000 (22:41 +0200)
It's just CGLChoosePixelFormat here.

specs/cglapi.py

index f85ae445c258323afc5042fdab5af93124ea67a3..8cb9d8c8c80c0d1f5495655f914222bb587172e0 100644 (file)
@@ -44,49 +44,57 @@ CGSConnectionID = Opaque("CGSConnectionID")
 CGSWindowID = Alias("CGSWindowID", Int)
 CGSSurfaceID = Alias("CGSSurfaceID", Int)
 
-CGLPixelFormatAttribute = Enum("CGLPixelFormatAttribute", [
+CGLPixelFormatBoolAttributes = [
     "kCGLPFAAllRenderers",
     "kCGLPFADoubleBuffer",
     "kCGLPFAStereo",
     "kCGLPFAAuxBuffers",
-    "kCGLPFAColorSize",
-    "kCGLPFAAlphaSize",
-    "kCGLPFADepthSize",
-    "kCGLPFAStencilSize",
-    "kCGLPFAAccumSize",
     "kCGLPFAMinimumPolicy",
     "kCGLPFAMaximumPolicy",
     "kCGLPFAOffScreen",
     "kCGLPFAFullScreen",
-    "kCGLPFASampleBuffers",
-    "kCGLPFASamples",
     "kCGLPFAAuxDepthStencil",
     "kCGLPFAColorFloat",
     "kCGLPFAMultisample",
     "kCGLPFASupersample",
     "kCGLPFASampleAlpha",
-    "kCGLPFARendererID",
     "kCGLPFASingleRenderer",
     "kCGLPFANoRecovery",
     "kCGLPFAAccelerated",
     "kCGLPFAClosestPolicy",
+    "kCGLPFARobust",
     "kCGLPFABackingStore",
+    "kCGLPFAMPSafe",
     "kCGLPFAWindow",
+    "kCGLPFAMultiScreen",
     "kCGLPFACompliant",
-    "kCGLPFADisplayMask",
     "kCGLPFAPBuffer",
     "kCGLPFARemotePBuffer",
     "kCGLPFAAllowOfflineRenderers",
     "kCGLPFAAcceleratedCompute",
+    "kCGLOGLPVersion_Legacy",
+    "kCGLOGLPVersion_3_2_Core"
+]
+
+CGLPixelFormatIntAttributes = [
+    "kCGLPFAColorSize",
+    "kCGLPFAAlphaSize",
+    "kCGLPFADepthSize",
+    "kCGLPFAStencilSize",
+    "kCGLPFAAccumSize",
+    "kCGLPFASampleBuffers",
+    "kCGLPFASamples",
+    "kCGLPFARendererID",
+    "kCGLPFADisplayMask",
     "kCGLPFAOpenGLProfile",
-    "kCGLPFAVirtualScreenCount",
-    "kCGLPFARobust",
-    "kCGLPFAMPSafe",
-    "kCGLPFAMultiScreen",
+    "kCGLPFAVirtualScreenCount"
+]
 
-    "kCGLOGLPVersion_Legacy",
-    "kCGLOGLPVersion_3_2_Core",
-])
+CGLPixelFormatAttribute = Enum("CGLPixelFormatAttribute", CGLPixelFormatBoolAttributes + CGLPixelFormatIntAttributes)
+
+CGLPixelFormatAttribs = AttribArray(CGLPixelFormatAttribute,
+                                    [(a, None) for a in CGLPixelFormatBoolAttributes] +
+                                    [(a, Int) for a in CGLPixelFormatIntAttributes])
 
 CGLRendererProperty = Enum("CGLRendererProperty", [
     "kCGLRPOffScreen",
@@ -188,7 +196,7 @@ cglapi.addFunctions([
     Function(CGLContextObj, "CGLGetCurrentContext", []),
 
     # OpenGL.h, OpenGL framework
-    Function(CGLError, "CGLChoosePixelFormat", [(Array(Const(CGLPixelFormatAttribute), "_AttribList_size(attribs)"), "attribs"), Out(Pointer(CGLPixelFormatObj), "pix"), Out(Pointer(GLint), "npix")]),
+    Function(CGLError, "CGLChoosePixelFormat", [(CGLPixelFormatAttribs, "attribs"), Out(Pointer(CGLPixelFormatObj), "pix"), Out(Pointer(GLint), "npix")]),
     Function(CGLError, "CGLDestroyPixelFormat", [(CGLPixelFormatObj, "pix")]),
     Function(CGLError, "CGLDescribePixelFormat", [(CGLPixelFormatObj, "pix"), (GLint, "pix_num"), (CGLPixelFormatAttribute, "attrib"), Out(Pointer(GLint), "value")]),
     Function(Void, "CGLReleasePixelFormat", [(CGLPixelFormatObj, "pix")]),