X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=glproc.py;h=7c7beb90e072fba7cfc845cd8237139819d442ef;hb=46c4a32730c5b52c119376042a84a6773d8d789f;hp=fa1db1ec423f61f1908161f61097b96e1aab941d;hpb=669b2008e4244152c1c624ca190afaba1a0f2c9a;p=apitrace diff --git a/glproc.py b/glproc.py index fa1db1e..7c7beb9 100644 --- a/glproc.py +++ b/glproc.py @@ -34,6 +34,7 @@ from dispatch import Dispatcher from glapi import glapi from glxapi import glxapi from wglapi import wglapi +from cglapi import cglapi # See http://www.opengl.org/registry/ABI/ @@ -410,27 +411,34 @@ class GlDispatcher(Dispatcher): def header(self): print '#ifdef RETRACE' - print '# ifdef WIN32' + print '# if defined(_WIN32)' print '# define __getPrivateProcAddress(name) wglGetProcAddress(name)' + print '# elif defined(__APPLE__)' + print '# include ' + print '# define __getPrivateProcAddress(name) dlsym(RTLD_DEFAULT, name)' print '# else' print '# define __getPrivateProcAddress(name) glXGetProcAddressARB((const GLubyte *)(name))' print '# endif' - print '# define __abort() OS::Abort()' print '#else /* !RETRACE */' - print '# ifdef WIN32' + print '# ifdef _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) dlsym(RTLD_NEXT, name)' - print '# define __getPrivateProcAddress(name) __glXGetProcAddressARB((const GLubyte *)(name))' - print ' static inline __GLXextFuncPtr __glXGetProcAddressARB(const GLubyte * procName);' + 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 '# define __abort() Trace::Abort()' print '#endif /* !RETRACE */' print def is_public_function(self, function): - return function.name in public_symbols + return function.name in public_symbols or function.name.startswith('CGL') if __name__ == '__main__': @@ -444,13 +452,15 @@ if __name__ == '__main__': print dispatcher = GlDispatcher() dispatcher.header() - print '#ifdef WIN32' + print '#if defined(_WIN32)' print dispatcher.dispatch_api(wglapi) - print '#else /* !WIN32 */' + print '#elif defined(__APPLE__)' + dispatcher.dispatch_api(cglapi) + print '#else' print dispatcher.dispatch_api(glxapi) - print '#endif /* !WIN32 */' + print '#endif' print dispatcher.dispatch_api(glapi) print