hw/xwin: Just generate the WGL wrappers we need
authorJon TURNEY <jon.turney@dronecode.org.uk>
Wed, 1 Jan 2014 16:43:38 +0000 (16:43 +0000)
committerJon TURNEY <jon.turney@dronecode.org.uk>
Mon, 3 Mar 2014 14:30:53 +0000 (14:30 +0000)
Just generate the WGL wrappers we need, rather than for everything in wgl.xml

This avoids generating a lot of unused wrappers, and also avoids compilation
requiring a wglext.h at least as new as wgl.xml

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
hw/xwin/glx/gen_gl_wrappers.py

index 683b9d9..cdbba63 100755 (executable)
@@ -43,35 +43,18 @@ thunkdefs=False
 staticwrappers=False
 nodebug=False
 
-#exclude base WGL API
-WinGDI={key: 1 for key in [
-     "wglCopyContext"
-    ,"wglCreateContext"
-    ,"wglCreateLayerContext"
-    ,"wglDeleteContext"
-    ,"wglGetCurrentContext"
-    ,"wglGetCurrentDC"
-    ,"wglGetProcAddress"
-    ,"wglMakeCurrent"
-    ,"wglShareLists"
-    ,"wglUseFontBitmapsA"
-    ,"wglUseFontBitmapsW"
-    ,"wglUseFontBitmaps"
-    ,"SwapBuffers"
-    ,"wglUseFontOutlinesA"
-    ,"wglUseFontOutlinesW"
-    ,"wglUseFontOutlines"
-    ,"wglDescribeLayerPlane"
-    ,"wglSetLayerPaletteEntries"
-    ,"wglGetLayerPaletteEntries"
-    ,"wglRealizeLayerPalette"
-    ,"wglSwapLayerBuffers"
-    ,"wglSwapMultipleBuffers"
-    ,"ChoosePixelFormat"
-    ,"DescribePixelFormat"
-    ,"GetEnhMetaFilePixelFormat"
-    ,"GetPixelFormat"
-    ,"SetPixelFormat"
+# list of WGL extension functions we use
+used_wgl_ext_fns = {key: 1 for key in [
+    "wglSwapIntervalEXT",
+    "wglGetExtensionsStringARB",
+    "wglDestroyPbufferARB",
+    "wglGetPbufferDCARB",
+    "wglReleasePbufferDCARB",
+    "wglCreatePbufferARB",
+    "wglMakeContextCurrentARB",
+    "wglChoosePixelFormatARB",
+    "wglGetPixelFormatAttribivARB",
+    "wglGetPixelFormatAttribivARB"
 ]}
 
 if __name__ == '__main__':
@@ -162,7 +145,7 @@ class PreResolveOutputGenerator(OutputGenerator):
     def genCmd(self, cmd, name):
         OutputGenerator.genCmd(self, cmd, name)
 
-        if name in WinGDI:
+        if prefix == 'wgl' and not name in used_wgl_ext_fns:
             return
 
         self.outFile.write('RESOLVE_DECL(PFN' + name.upper() + 'PROC);\n')
@@ -190,7 +173,7 @@ class WrapperOutputGenerator(OutputGenerator):
     def genCmd(self, cmd, name):
         OutputGenerator.genCmd(self, cmd, name)
 
-        if name in WinGDI:
+        if prefix == 'wgl' and not name in used_wgl_ext_fns:
             return
 
         proto=noneStr(cmd.elem.find('proto'))