Markus Amsler : Revert "d3d:
Remove AddRef from IWineD3DDevice_GetRenderTarget.".
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Nov 30 13:41:02 CST 2006
Module: wine
Branch: master
Commit: b657cd5f58022671229569cc705d3fad728f8b1c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b657cd5f58022671229569cc705d3fad728f8b1c
Author: Markus Amsler <markus.amsler at oribi.org>
Date: Thu Nov 30 13:33:46 2006 +0100
Revert "d3d: Remove AddRef from IWineD3DDevice_GetRenderTarget.".
This reverts commit a7518f6f5494558e80ad125d0b42a46b4744d448.
---
dlls/d3d8/device.c | 1 +
dlls/d3d9/device.c | 1 +
dlls/wined3d/device.c | 4 +++-
3 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index 0baa5ac..429b918 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -677,6 +677,7 @@ static HRESULT WINAPI IDirect3DDevice8
if (hr == D3D_OK && pRenderTarget != NULL) {
IWineD3DResource_GetParent((IWineD3DResource *)pRenderTarget,(IUnknown**)ppRenderTarget);
+ IWineD3DResource_Release((IWineD3DResource *)pRenderTarget);
} else {
FIXME("Call to IWineD3DDevice_GetRenderTarget failed\n");
*ppRenderTarget = NULL;
diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
index 9b31289..8ed7b8d 100644
--- a/dlls/d3d9/device.c
+++ b/dlls/d3d9/device.c
@@ -403,6 +403,7 @@ static HRESULT WINAPI IDirect3DDevice9
if (hr == D3D_OK && pRenderTarget != NULL) {
IWineD3DResource_GetParent((IWineD3DResource *)pRenderTarget,(IUnknown**)ppRenderTarget);
+ IWineD3DResource_Release((IWineD3DResource *)pRenderTarget);
} else {
FIXME("Call to IWineD3DDevice_GetRenderTarget failed\n");
*ppRenderTarget = NULL;
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 4ae70a5..f1287bf 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -6898,7 +6898,9 @@ static HRESULT WINAPI IWineD3DDeviceIm
*ppRenderTarget = This->renderTarget;
TRACE("(%p) : RenderTarget %d Index returning %p\n", This, RenderTargetIndex, *ppRenderTarget);
-
+ /* Note inc ref on returned surface */
+ if(*ppRenderTarget != NULL)
+ IWineD3DSurface_AddRef(*ppRenderTarget);
return WINED3D_OK;
}
More information about the wine-cvs
mailing list