class D3DRetracer(Retracer):
- def retraceApi(self, api):
+ def retraceModule(self, api):
print '// Swizzling mapping for lock addresses'
print 'static std::map<void *, void *> _locks;'
print
- self.table_name = 'd3dretrace::%s_callbacks' % api.name.lower()
+ self.table_name = 'd3dretrace::d3d_callbacks'
- Retracer.retraceApi(self, api)
+ Retracer.retraceModule(self, api)
+
+ def invokeFunction(self, function):
+ if function.name in ('Direct3DCreate9', 'Direct3DCreate9Ex'):
+ print 'if (retrace::debug && !g_szD3D9DllName) {'
+ print ' /* '
+ print ' * XXX: D3D9D only works for simple things, it often introduces errors'
+ print ' * on complex traces, or traces which use unofficial D3D9 features.'
+ print ' */'
+ print ' if (0) {'
+ print ' g_szD3D9DllName = "d3d9d.dll";'
+ print ' }'
+ print '}'
+
+ Retracer.invokeFunction(self, function)
def invokeInterfaceMethod(self, interface, method):
# keep track of the last used device for state dumping
'''
retracer = D3DRetracer()
- retracer.retraceApi(d3d9)
+ retracer.retraceModule(d3d9)