X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fd3d9retrace.py;h=d7f86c4f85b5fd285c2622113d4f6b01fca659ac;hb=bd9811ff579a0482bfd7d40b1149bcef40ad3d71;hp=db92377e624b8895d0aed87f057352902119bc0b;hpb=cbb86175e81c2765f14fa01a2dc49d367203ac1f;p=apitrace diff --git a/retrace/d3d9retrace.py b/retrace/d3d9retrace.py index db92377..d7f86c4 100644 --- a/retrace/d3d9retrace.py +++ b/retrace/d3d9retrace.py @@ -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;'