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