from glapi import glapi
from glxapi import glxapi
from wglapi import wglapi
+from cglapi import cglapi
# See http://www.opengl.org/registry/ABI/
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 <dlfcn.h>'
+ 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 '# define __getPrivateProcAddress(name) __wglGetProcAddress(name)'
print ' static inline PROC __stdcall __wglGetProcAddress(const char * lpszProc);'
print '# else'
- print '# define __getPublicProcAddress(name) __dlsym(name)'
- print '# define __getPrivateProcAddress(name) __glXGetProcAddressARB((const GLubyte *)(name))'
- print ' static void * __dlsym(const char *symbol);'
- 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__':
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