]> git.cworth.org Git - apitrace/blobdiff - retrace/d3d9retrace.py
d3dretrace: Fix MSVC build.
[apitrace] / retrace / d3d9retrace.py
index 14b92ab4fe7503f50945412b4f34453273388865..7030f868f17b3a98a27d0e3048f7077f412f640c 100644 (file)
@@ -39,10 +39,24 @@ class D3DRetracer(Retracer):
         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)
 
+    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
         if interface.name in ('IDirect3DDevice9', 'IDirect3DDevice9Ex'):