]> git.cworth.org Git - apitrace/blobdiff - retrace/d3dretrace.py
Dump depth textures as a single image (issue #97).
[apitrace] / retrace / d3dretrace.py
index 3270161197f049bb8474cdf07dd914524dd2c2f0..ddd37b95a8b7c3d4b3ca34e1b287846fed5d6f8a 100644 (file)
@@ -48,14 +48,21 @@ class D3DRetracer(Retracer):
             print r'    d3dretrace::pLastDirect3DDevice9 = _this;'
 
         # create windows as neccessary
-        if method.name in ('CreateDevice', 'CreateDeviceEx'):
+        if method.name in ('CreateDevice', 'CreateDeviceEx', 'CreateAdditionalSwapChain'):
             print r'    HWND hWnd = d3dretrace::createWindow(pPresentationParameters->BackBufferWidth, pPresentationParameters->BackBufferHeight);'
-            print r'    hFocusWindow = hWnd;'
             print r'    pPresentationParameters->hDeviceWindow = hWnd;'
+            if 'hFocusWindow' in method.argNames():
+                print r'    hFocusWindow = hWnd;'
+
+        if method.name in ('Reset', 'ResetEx'):
+            print r'    if (pPresentationParameters->Windowed) {'
+            print r'        d3dretrace::resizeWindow(pPresentationParameters->hDeviceWindow, pPresentationParameters->BackBufferWidth, pPresentationParameters->BackBufferHeight);'
+            print r'    }'
 
         # notify frame has been completed
         if method.name == 'Present':
             print r'    retrace::frameComplete(call);'
+            print r'    hDestWindowOverride = NULL;'
 
         if 'pSharedHandle' in method.argNames():
             print r'    if (pSharedHandle) {'
@@ -65,6 +72,10 @@ class D3DRetracer(Retracer):
 
         Retracer.invokeInterfaceMethod(self, interface, method)
 
+        # process events after presents
+        if method.name == 'Present':
+            print r'    d3dretrace::processEvents();'
+
         # check errors
         if str(method.type) == 'HRESULT':
             print r'    if (FAILED(_result)) {'