summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Rudolph <siro@das-labor.org>2016-09-18 11:58:48 +0200
committerJose Fonseca <jfonseca@vmware.com>2016-09-21 11:48:49 +0100
commit23b38ea378b3ae0da46d2d4218adf6d4df122b8f (patch)
treedc19093cd2adfeef661dfa0bacd43cac29fed0c1
parent9420288ff8d0f4f4af722937e1d74e7fb3b9be6a (diff)
d3dretrace: Don't dump dummy rendertargets
Do not try to dump rendertargets that uses format D3DFMT_NULL. Found trying to dump Crysis renderstates. Signed-off-by: Patrick Rudolph <siro@das-labor.org>
-rw-r--r--retrace/d3d9state_images.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/retrace/d3d9state_images.cpp b/retrace/d3d9state_images.cpp
index 6ceb5149..f26aa662 100644
--- a/retrace/d3d9state_images.cpp
+++ b/retrace/d3d9state_images.cpp
@@ -53,6 +53,11 @@ getSurfaceImage(IDirect3DDevice9 *pDevice,
hr = pSurface->GetDesc(&Desc);
assert(SUCCEEDED(hr));
+ if (Desc.Format == D3DFMT_NULL) {
+ // dummy rendertarget
+ return NULL;
+ }
+
D3DLOCKED_RECT LockedRect;
hr = pSurface->LockRect(&LockedRect, NULL, D3DLOCK_READONLY);
if (FAILED(hr)) {
@@ -83,6 +88,11 @@ getRenderTargetImage(IDirect3DDevice9 *pDevice,
hr = pRenderTarget->GetDesc(&Desc);
assert(SUCCEEDED(hr));
+ if (Desc.Format == D3DFMT_NULL) {
+ // dummy rendertarget
+ return NULL;
+ }
+
com_ptr<IDirect3DSurface9> pStagingSurface;
hr = pDevice->CreateOffscreenPlainSurface(Desc.Width, Desc.Height, Desc.Format, D3DPOOL_SYSTEMMEM, &pStagingSurface, NULL);
if (FAILED(hr)) {