print '#include <stdlib.h>' print '#include <string.h>' print '#include <dlfcn.h>' print print '#include "trace_writer_local.hpp"' print print '// To validate our prototypes' print '#define GL_GLEXT_PROTOTYPES' print '#define EGL_EGLEXT_PROTOTYPES' print print '#include "glproc.hpp"' print '#include "glsize.hpp"' print api = API() api.addApi(eglapi) api.addApi(glapi) api.addApi(glesapi) tracer = EglTracer() tracer.traceApi(api) print r''' /* * Android does not support LD_PRELOAD. */ #if !defined(ANDROID) /*
# all OpenGL symbols are visible on MacOSX return True if __name__ == '__main__': print print '#include <stdlib.h>' print '#include <string.h>' print print '#include "trace_writer_local.hpp"' print print '// To validate our prototypes' print '#define GL_GLEXT_PROTOTYPES' print print '#include "glproc.hpp"' print '#include "glsize.hpp"' print api = API() api.addApi(cglapi) api.addApi(glapi) tracer = CglTracer() tracer.traceApi(api) print r''' PUBLIC void * gll_noop = 0; '''
print '#include <dlfcn.h>' print print '#include "trace_writer_local.hpp"' print print '// To validate our prototypes' print '#define GL_GLEXT_PROTOTYPES' print '#define GLX_GLXEXT_PROTOTYPES' print print '#include "glproc.hpp"' print '#include "glsize.hpp"' print print 'static __GLXextFuncPtr __unwrap_proc_addr(const GLubyte * procName, __GLXextFuncPtr procPtr);' print api = API() api.addApi(glxapi) api.addApi(glapi) tracer = GlxTracer() tracer.trace_api(api) print 'static __GLXextFuncPtr __unwrap_proc_addr(const GLubyte * procName, __GLXextFuncPtr procPtr) {' print ' if (!procPtr) {' print ' return procPtr;' print ' }' for f in api.functions: ptype = function_pointer_type(f) pvalue = function_pointer_value(f) print ' if (strcmp("%s", (const char *)procName) == 0) {' % f.name print ' %s = (%s)procPtr;' % (pvalue, ptype) print ' return (__GLXextFuncPtr)&%s;' % (f.name,) print ' }'
print ' if (_result) {' print ' if (hglrc != NULL)' print ' gltrace::setContext((uintptr_t)hglrc);' print ' else' print ' gltrace::clearContext();' print ' }' if __name__ == '__main__': print print '#define _GDI32_' print print '#include <string.h>' print '#include <windows.h>' print print '#include "trace_writer_local.hpp"' print '#include "os.hpp"' print print '// To validate our prototypes' print '#define GL_GLEXT_PROTOTYPES' print '#define WGL_GLXEXT_PROTOTYPES' print print '#include "glproc.hpp"' print '#include "glsize.hpp"' print api = API() api.addApi(glapi) api.addApi(wglapi) tracer = WglTracer() tracer.traceApi(api)
print '#define _GNU_SOURCE // for dladdr' print '#endif' print '#include <dlfcn.h>' print print '#include "trace_writer_local.hpp"' print print '// To validate our prototypes' print '#define GL_GLEXT_PROTOTYPES' print '#define GLX_GLXEXT_PROTOTYPES' print print '#include "glproc.hpp"' print '#include "glsize.hpp"' print api = API() api.addApi(glxapi) api.addApi(glapi) tracer = GlxTracer() tracer.traceApi(api) print r''' /* * Invoke the true dlopen() function. */ static void *_dlopen(const char *filename, int flag) { typedef void * (*PFN_DLOPEN)(const char *, int); static PFN_DLOPEN dlopen_ptr = NULL;
print '#include <stdlib.h>' print '#include <string.h>' print '#include <dlfcn.h>' print print '#include "trace_writer_local.hpp"' print print '// To validate our prototypes' print '#define GL_GLEXT_PROTOTYPES' print '#define EGL_EGLEXT_PROTOTYPES' print print '#include "glproc.hpp"' print '#include "glsize.hpp"' print api = API() api.addApi(eglapi) api.addApi(glapi) api.addApi(glesapi) tracer = EglTracer() tracer.traceApi(api) print r''' /* * Android does not support LD_PRELOAD. */ #if !defined(ANDROID) /*
if function.name == 'CGLRetainContext': print ' gltrace::retainContext((uintptr_t)ctx);' if __name__ == '__main__': print print '#include <stdlib.h>' print '#include <string.h>' print print '#include "trace_writer_local.hpp"' print print '// To validate our prototypes' print '#define GL_GLEXT_PROTOTYPES' print print '#include "glproc.hpp"' print '#include "glsize.hpp"' print api = API() api.addApi(cglapi) api.addApi(glapi) tracer = CglTracer() tracer.traceApi(api) print r''' PUBLIC void * gll_noop = 0; '''
print ' if (_result) {' print ' if (hglrc != NULL)' print ' gltrace::setContext((uintptr_t)hglrc);' print ' else' print ' gltrace::clearContext();' print ' }' if __name__ == '__main__': print print '#define _GDI32_' print print '#include <string.h>' print '#include <windows.h>' print print '#include "trace_writer_local.hpp"' print '#include "os.hpp"' print print '// To validate our prototypes' print '#define GL_GLEXT_PROTOTYPES' print '#define WGL_GLXEXT_PROTOTYPES' print print '#include "glproc.hpp"' print '#include "glsize.hpp"' print api = API() api.addApi(glapi) api.addApi(wglapi) tracer = WglTracer() tracer.traceApi(api)