Markus Amsler : d3d8: Back buffer is identical to the render target, test it only once.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Nov 15 05:37:30 CST 2006


Module: wine
Branch: master
Commit: 886c196e053b5d69ef6923f01a3ead75c5dbfebc
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=886c196e053b5d69ef6923f01a3ead75c5dbfebc

Author: Markus Amsler <markus.amsler at oribi.org>
Date:   Wed Nov 15 00:53:18 2006 +0100

d3d8: Back buffer is identical to the render target, test it only once.

---

 dlls/d3d8/tests/device.c |   25 +++++++++++++------------
 1 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c
index 748aa02..9be3381 100644
--- a/dlls/d3d8/tests/device.c
+++ b/dlls/d3d8/tests/device.c
@@ -327,10 +327,22 @@ static void test_refcount(void)
         todo_wine CHECK_REFCOUNT( pRenderTarget, 2);
         todo_wine CHECK_RELEASE_REFCOUNT( pRenderTarget, 1);
         todo_wine CHECK_RELEASE_REFCOUNT( pRenderTarget, 0);
-        pRenderTarget = NULL;
     }
     CHECK_REFCOUNT( pDevice, --refcount);
 
+    /* Render target and back buffer are identical. */
+    hr = IDirect3DDevice8_GetBackBuffer(pDevice, 0, 0, &pBackBuffer);
+    todo_wine CHECK_CALL( hr, "GetBackBuffer", pDevice, ++refcount);
+    if(pBackBuffer)
+    {
+        todo_wine CHECK_RELEASE_REFCOUNT(pBackBuffer, 0);
+        ok(pRenderTarget == pBackBuffer, "RenderTarget=%p and BackBuffer=%p should be the same.\n",
+           pRenderTarget, pBackBuffer);
+        pBackBuffer = NULL;
+    }
+    CHECK_REFCOUNT( pDevice, --refcount);
+    pRenderTarget = NULL;
+
     hr = IDirect3DDevice8_GetDepthStencilSurface(pDevice, &pStencilSurface);
     todo_wine CHECK_CALL( hr, "GetDepthStencilSurface", pDevice, ++refcount);
     if(pStencilSurface)
@@ -342,17 +354,6 @@ static void test_refcount(void)
     }
     CHECK_REFCOUNT( pDevice, --refcount);
 
-    hr = IDirect3DDevice8_GetBackBuffer(pDevice, 0, 0, &pBackBuffer);
-    todo_wine CHECK_CALL( hr, "GetBackBuffer", pDevice, ++refcount);
-    if(pBackBuffer)
-    {
-        todo_wine CHECK_SURFACE_CONTAINER( pBackBuffer, IID_IDirect3DDevice8, pDevice);
-        todo_wine CHECK_REFCOUNT( pBackBuffer, 1);
-        todo_wine CHECK_RELEASE_REFCOUNT( pBackBuffer, 0);
-        pBackBuffer = NULL;
-    }
-    CHECK_REFCOUNT( pDevice, --refcount);
-
     /* Buffers */
     hr = IDirect3DDevice8_CreateIndexBuffer( pDevice, 16, 0, D3DFMT_INDEX32, D3DPOOL_DEFAULT, &pIndexBuffer );
     CHECK_CALL( hr, "CreateIndexBuffer", pDevice, ++refcount );




More information about the wine-cvs mailing list