X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=wrappers%2Fegltrace.py;h=4972528fe0e09ed21ff35307696824d0864215cb;hb=1b6c87507810fe2d72c81fc109110c1ca25ce94f;hp=65c14efdb69415d67bb7f10f254697b5969dd8a4;hpb=7e351daaeb23a1fbc31b8af1a08d969676bfd704;p=apitrace diff --git a/wrappers/egltrace.py b/wrappers/egltrace.py index 65c14ef..4972528 100644 --- a/wrappers/egltrace.py +++ b/wrappers/egltrace.py @@ -33,7 +33,6 @@ from gltrace import GlTracer -from dispatch import function_pointer_type, function_pointer_value from specs.stdapi import API from specs.glapi import glapi from specs.eglapi import eglapi @@ -46,6 +45,10 @@ class EglTracer(GlTracer): # The symbols visible in libEGL.so can vary, so expose them all return True + getProcAddressFunctionNames = [ + "eglGetProcAddress", + ] + def traceFunctionImplBody(self, function): GlTracer.traceFunctionImplBody(self, function) @@ -64,12 +67,6 @@ class EglTracer(GlTracer): print ' tr->profile = gltrace::PROFILE_ES2;' print ' }' - def wrapRet(self, function, instance): - GlTracer.wrapRet(self, function, instance) - - if function.name == "eglGetProcAddress": - print ' %s = __unwrap_proc_addr(procname, %s);' % (instance, instance) - if __name__ == '__main__': print '#include ' @@ -85,31 +82,14 @@ if __name__ == '__main__': print '#include "glproc.hpp"' print '#include "glsize.hpp"' print - print 'static __eglMustCastToProperFunctionPointerType __unwrap_proc_addr(const char * procname, __eglMustCastToProperFunctionPointerType procPtr);' - print - + api = API() api.addApi(eglapi) api.addApi(glapi) api.addApi(glesapi) tracer = EglTracer() - tracer.trace_api(api) - - print 'static __eglMustCastToProperFunctionPointerType __unwrap_proc_addr(const char * procname, __eglMustCastToProperFunctionPointerType 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", procname)) {' % f.name - print ' %s = (%s)procPtr;' % (pvalue, ptype) - print ' return (__eglMustCastToProperFunctionPointerType)&%s;' % (f.name,) - print ' }' - print ' os::log("apitrace: warning: unknown function \\"%s\\"\\n", procname);' - print ' return procPtr;' - print '}' - print + tracer.traceApi(api) + print r'''