Henri Verbeet : d3d9: Having a NULL rendertarget isn't a failure.
Alexandre Julliard
julliard at winehq.org
Fri May 29 09:15:50 CDT 2009
Module: wine
Branch: master
Commit: 59268f792413e69081502f22d33b9cea55c6880d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=59268f792413e69081502f22d33b9cea55c6880d
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Fri May 29 09:13:21 2009 +0200
d3d9: Having a NULL rendertarget isn't a failure.
---
dlls/d3d9/device.c | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
index e5ca4c4..9508ff5 100644
--- a/dlls/d3d9/device.c
+++ b/dlls/d3d9/device.c
@@ -851,8 +851,8 @@ static HRESULT WINAPI IDirect3DDevice9Impl_SetRenderTarget(LPDIRECT3DDEVICE9EX
static HRESULT WINAPI IDirect3DDevice9Impl_GetRenderTarget(LPDIRECT3DDEVICE9EX iface, DWORD RenderTargetIndex, IDirect3DSurface9 **ppRenderTarget) {
IDirect3DDevice9Impl *This = (IDirect3DDevice9Impl *)iface;
- HRESULT hr = D3D_OK;
IWineD3DSurface *pRenderTarget;
+ HRESULT hr;
TRACE("(%p) Relay\n" , This);
@@ -863,13 +863,20 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetRenderTarget(LPDIRECT3DDEVICE9EX
EnterCriticalSection(&d3d9_cs);
hr=IWineD3DDevice_GetRenderTarget(This->WineD3DDevice,RenderTargetIndex,&pRenderTarget);
- if (hr == D3D_OK && pRenderTarget != NULL) {
- IWineD3DSurface_GetParent(pRenderTarget,(IUnknown**)ppRenderTarget);
- IWineD3DSurface_Release(pRenderTarget);
- } else {
- FIXME("Call to IWineD3DDevice_GetRenderTarget failed\n");
+ if (FAILED(hr))
+ {
+ FIXME("Call to IWineD3DDevice_GetRenderTarget failed, hr %#x\n", hr);
+ }
+ else if (!pRenderTarget)
+ {
*ppRenderTarget = NULL;
}
+ else
+ {
+ IWineD3DSurface_GetParent(pRenderTarget, (IUnknown **)ppRenderTarget);
+ IWineD3DSurface_Release(pRenderTarget);
+ }
+
LeaveCriticalSection(&d3d9_cs);
return hr;
More information about the wine-cvs
mailing list