]> git.cworth.org Git - apitrace/blobdiff - glproc.py
Don't change behavior of glproc code via RETRACE define.
[apitrace] / glproc.py
index a086055ca97eeb30354e4ea063c7b053fbafcf0a..b54f713f02d12bc92b882991d2b51a2f54bac1c7 100644 (file)
--- a/glproc.py
+++ b/glproc.py
@@ -36,6 +36,7 @@ from specs.glxapi import glxapi
 from specs.wglapi import wglapi
 from specs.cglapi import cglapi
 from specs.eglapi import eglapi
+from specs.glesapi import glesapi
 
 
 # See http://www.opengl.org/registry/ABI/
@@ -491,38 +492,18 @@ public_symbols.update([
 class GlDispatcher(Dispatcher):
 
     def header(self):
-        print '#ifdef RETRACE'
-        print '#  if defined(_WIN32)'
-        print '#    define __getPrivateProcAddress(name) wglGetProcAddress(name)'
-        print '#  elif defined(__APPLE__)'
-        print '#    include <dlfcn.h>'
-        print '#    define __getPrivateProcAddress(name) dlsym(RTLD_DEFAULT, name)'
-        print '#  else'
-        print '#    define __getPrivateProcAddress(name) glXGetProcAddressARB((const GLubyte *)(name))'
-        print '#  endif'
-        print '#else /* !RETRACE */'
-        print '#  if defined(TRACE_EGL)'
-        print '#    define __getPublicProcAddress(name) __libegl_sym(name, true)'
-        print '#    define __getPrivateProcAddress(name) __libegl_sym(name, false)'
-        print '     void * __libegl_sym(const char *symbol, bool pub);'
-        print '#  elif defined(_WIN32)'
-        print '     PROC __getPublicProcAddress(LPCSTR lpProcName);'
-        print '#    define __getPrivateProcAddress(name) __wglGetProcAddress(name)'
-        print '     static inline PROC __stdcall __wglGetProcAddress(const char * lpszProc);'
-        print '#  else'
-        print '#    define __getPublicProcAddress(name) __libgl_sym(name)'
-        print '     void * __libgl_sym(const char *symbol);'
-        print '#    ifdef __APPLE__'
-        print '#      define __getPrivateProcAddress(name) __getPublicProcAddress(name)'
-        print '#    else'
-        print '#      define __getPrivateProcAddress(name) __glXGetProcAddressARB((const GLubyte *)(name))'
-        print '       static inline __GLXextFuncPtr __glXGetProcAddressARB(const GLubyte * procName);'
-        print '#    endif'
-        print '#  endif'
-        print '#endif /* !RETRACE */'
-        print
+        print '''
+#if defined(_WIN32)
+extern HINSTANCE __libGlHandle;
+#else
+extern void * __libGlHandle;
+#endif
+
+void * __getPublicProcAddress(const char *procName);
+void * __getPrivateProcAddress(const char *procName);
+'''
         
-    def is_public_function(self, function):
+    def isFunctionPublic(self, function):
         return function.name in public_symbols or function.name.startswith('CGL')
 
 
@@ -534,23 +515,30 @@ if __name__ == '__main__':
     print '#include "glimports.hpp"'
     print '#include "os.hpp"'
     print
-    print
     dispatcher = GlDispatcher()
+    print
     dispatcher.header()
-    print '#if defined(TRACE_EGL)'
     print
     dispatcher.dispatch_api(eglapi)
-    print '#elif defined(_WIN32)'
+    print
+    print '#if defined(_WIN32)'
     print
     dispatcher.dispatch_api(wglapi)
+    print
     print '#elif defined(__APPLE__)'
+    print
     dispatcher.dispatch_api(cglapi)
-    print '#else'
+    print
+    print '#elif defined(HAVE_X11)'
     print
     dispatcher.dispatch_api(glxapi)
+    print
     print '#endif'
     print
     dispatcher.dispatch_api(glapi)
     print
+    dispatcher.dispatch_api(glesapi)
+    print
+
     print '#endif /* !_GLPROC_HPP_ */'
     print