[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-patches
Subject:    Revert [7] "d3d: Remove AddRef from IWineD3DDevice_GetRenderTarget."
From:       Markus Amsler <markus.amsler () oribi ! org>
Date:       2006-11-30 12:33:46
Message-ID: 456ECFAA.4070904 () oribi ! org
[Download RAW message or body]

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(-)


["426b763633793fc7d7a1eb5523c8dde1d38c0b28.diff" (text/x-patch)]

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;
 }
 






[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic