X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=wgltrace.py;h=17d1acc7b6a054570767b0ff3c4a33c7aa955da0;hb=1a9f7af32205d900c88fef0b544546eb0d7c84ee;hp=cef2e1aaaff01a84536ff906518ad3d56505f464;hpb=669b2008e4244152c1c624ca190afaba1a0f2c9a;p=apitrace diff --git a/wgltrace.py b/wgltrace.py index cef2e1a..17d1acc 100644 --- a/wgltrace.py +++ b/wgltrace.py @@ -35,18 +35,15 @@ from gltrace import GlTracer from codegen import * - - class WglTracer(GlTracer): - def get_function_address(self, function): - return '__%s' % (function.name,) - def wrap_ret(self, function, instance): + GlTracer.wrap_ret(self, function, instance) + if function.name == "wglGetProcAddress": print ' if (%s) {' % instance - func_dict = dict([(f.name, f) for f in wglapi.functions]) + func_dict = dict([(f.name, f) for f in glapi.functions + wglapi.functions]) def handle_case(function_name): f = func_dict[function_name] @@ -56,7 +53,7 @@ class WglTracer(GlTracer): print ' %s = (%s)&%s;' % (instance, function.type, f.name); def handle_default(): - print ' OS::DebugMessage("apitrace: unknown function \\"%s\\"\\n", lpszProc);' + print ' OS::DebugMessage("apitrace: warning: unknown function \\"%s\\"\\n", lpszProc);' string_switch('lpszProc', func_dict.keys(), handle_case, handle_default) print ' }' @@ -69,13 +66,13 @@ if __name__ == '__main__': print '#include ' print '#include ' print - print '#include "trace_write.hpp"' + print '#include "trace_writer.hpp"' print '#include "os.hpp"' print print ''' static HINSTANCE g_hDll = NULL; -static PROC +PROC __getPublicProcAddress(LPCSTR lpProcName) { if (!g_hDll) { @@ -97,15 +94,15 @@ __getPublicProcAddress(LPCSTR lpProcName) } ''' + 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 - print 'extern "C" {' - print api = API() - api.add_api(wglapi) api.add_api(glapi) + api.add_api(wglapi) tracer = WglTracer() tracer.trace_api(api) - print - print '} /* extern "C" */'