diff options
author | Patrick Rudolph <siro@das-labor.org> | 2016-09-18 11:58:48 +0200 |
---|---|---|
committer | Jose Fonseca <jfonseca@vmware.com> | 2016-09-21 11:48:49 +0100 |
commit | 23b38ea378b3ae0da46d2d4218adf6d4df122b8f (patch) | |
tree | dc19093cd2adfeef661dfa0bacd43cac29fed0c1 | |
parent | 9420288ff8d0f4f4af722937e1d74e7fb3b9be6a (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.cpp | 10 |
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)) { |