]> git.cworth.org Git - apitrace/blobdiff - retrace/d3d9retrace.py
retrace: Use different methods for writing int/floats.
[apitrace] / retrace / d3d9retrace.py
index 4b5853bdd3e2be3e0b987cbe2c9a9daf4b429a61..1b89b68f5e6a159ee8f33184ee1b91b3169a2626 100644 (file)
@@ -35,29 +35,8 @@ from specs.d3d9 import *
 class D3DRetracer(Retracer):
 
     def retraceApi(self, api):
-        print '''
-static IDirect3DDevice9 *
-pLastDirect3DDevice9 = NULL;
-
-image::Image *
-retrace::getSnapshot(void) {
-    if (!pLastDirect3DDevice9) {
-        return NULL;
-    }
-    return d3dstate::getRenderTargetImage(pLastDirect3DDevice9);
-}
-
-
-bool
-retrace::dumpState(std::ostream &os)
-{
-    if (!pLastDirect3DDevice9) {
-        return false;
-    }
-    d3dstate::dumpDevice(os, pLastDirect3DDevice9);
-    return true;
-}
-'''
+        print '''static d3dretrace::D3DDumper<IDirect3DDevice9> d3d9Dumper;'''
+        print
 
         print '// Swizzling mapping for lock addresses'
         print 'static std::map<void *, void *> _maps;'
@@ -84,7 +63,10 @@ retrace::dumpState(std::ostream &os)
     def invokeInterfaceMethod(self, interface, method):
         # keep track of the last used device for state dumping
         if interface.name in ('IDirect3DDevice9', 'IDirect3DDevice9Ex'):
-            print r'    pLastDirect3DDevice9 = _this;'
+            if method.name == 'Release':
+                print r'    d3d9Dumper.unbindDevice(_this);'
+            else:
+                print r'    d3d9Dumper.bindDevice(_this);'
 
         # create windows as neccessary
         if method.name in ('CreateDevice', 'CreateDeviceEx', 'CreateAdditionalSwapChain'):
@@ -115,12 +97,6 @@ retrace::dumpState(std::ostream &os)
         if method.name == 'Present':
             print r'    d3dretrace::processEvents();'
 
-        # check errors
-        if str(method.type) == 'HRESULT':
-            print r'    if (FAILED(_result)) {'
-            print r'        retrace::warning(call) << "failed\n";'
-            print r'    }'
-
         if method.name in ('Lock', 'LockRect', 'LockBox'):
             print '    VOID *_pbData = NULL;'
             print '    size_t _MappedSize = 0;'
@@ -144,7 +120,7 @@ if __name__ == '__main__':
 #include "d3d9imports.hpp"
 #include "d3d9size.hpp"
 #include "d3dretrace.hpp"
-#include "d3d9state.hpp"
+#include "d3dstate.hpp"
 
 '''