]> git.cworth.org Git - apitrace/blobdiff - retrace/d3d9retrace.py
d3dretrace: Fix MSVC build.
[apitrace] / retrace / d3d9retrace.py
index db92377e624b8895d0aed87f057352902119bc0b..d7f86c4f85b5fd285c2622113d4f6b01fca659ac 100644 (file)
@@ -59,12 +59,16 @@ class D3DRetracer(Retracer):
         # keep track of the last used device for state dumping
         if interface.name in ('IDirect3DDevice9', 'IDirect3DDevice9Ex'):
             if method.name == 'Release':
-                print r'    d3d9Dumper.unbindDevice(_this);'
+                print r'    if (call.ret->toUInt() == 0) {'
+                print r'        d3d9Dumper.unbindDevice(_this);'
+                print r'    }'
             else:
                 print r'    d3d9Dumper.bindDevice(_this);'
         if interface.name in ('IDirect3DDevice8', 'IDirect3DDevice8Ex'):
             if method.name == 'Release':
-                print r'    d3d8Dumper.unbindDevice(_this);'
+                print r'    if (call.ret->toUInt() == 0) {'
+                print r'        d3d8Dumper.unbindDevice(_this);'
+                print r'    }'
             else:
                 print r'    d3d8Dumper.bindDevice(_this);'
 
@@ -106,7 +110,7 @@ class D3DRetracer(Retracer):
             print r'    }'
 
         # notify frame has been completed
-        if method.name == 'Present':
+        if method.name in ('Present', 'PresentEx'):
             print r'    retrace::frameComplete(call);'
             print r'    hDestWindowOverride = NULL;'
 
@@ -121,7 +125,6 @@ class D3DRetracer(Retracer):
         # process events after presents
         if method.name == 'Present':
             print r'    d3dretrace::processEvents();'
-            print r'    Sleep(500);'
 
         if method.name in ('Lock', 'LockRect', 'LockBox'):
             print '    VOID *_pbData = NULL;'