X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=wrappers%2Fddrawtrace.py;h=94e39e2d126e3c2d18db984af49a7f946d6c4a58;hb=ff6dad3ca0f52fb91b5035843df7da79126291e1;hp=e640f40ad7d857c751ec22f1d8c13ca24974174d;hpb=452d3256a3ba7f249222ef857d69c8caaaa753f3;p=apitrace diff --git a/wrappers/ddrawtrace.py b/wrappers/ddrawtrace.py index e640f40..94e39e2 100644 --- a/wrappers/ddrawtrace.py +++ b/wrappers/ddrawtrace.py @@ -25,30 +25,10 @@ from dlltrace import DllTracer +from specs.stdapi import API from specs.d3d import ddraw, interfaces -class DDrawTracer(DllTracer): - - def traceFunctionImplBody(self, function): - if function.name in ('AcquireDDThreadLock', 'ReleaseDDThreadLock'): - self.invokeFunction(function) - return - - DllTracer.traceFunctionImplBody(self, function) - - def serializeArg(self, function, arg): - if function.name == 'DirectDrawCreateEx' and arg.name == 'lplpDD': - print ' if (*lplpDD) {' - for iface in interfaces: - print ' if (iid == IID_%s) {' % iface.name - print ' *lplpDD = (LPVOID) new Wrap%s((%s *)*lplpDD);' % (iface.name, iface.name) - print ' }' - print ' }' - - DllTracer.serializeArg(self, function, arg) - - if __name__ == '__main__': print '#define INITGUID' print '#include ' @@ -77,5 +57,8 @@ if __name__ == '__main__': print '#include "trace_writer_local.hpp"' print '#include "os.hpp"' print - tracer = DDrawTracer('ddraw.dll') - tracer.trace_api(ddraw) + + api = API() + api.addModule(ddraw) + tracer = DllTracer() + tracer.traceApi(api)