mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-14 14:51:28 +00:00
d3d8: Test AddRef with refcount==0.
This commit is contained in:
parent
577d5d2580
commit
ee7bf7954d
|
@ -342,8 +342,14 @@ static void test_refcount(void)
|
||||||
todo_wine CHECK_REFCOUNT( pRenderTarget, 2);
|
todo_wine CHECK_REFCOUNT( pRenderTarget, 2);
|
||||||
todo_wine CHECK_RELEASE_REFCOUNT( pRenderTarget, 1);
|
todo_wine CHECK_RELEASE_REFCOUNT( pRenderTarget, 1);
|
||||||
todo_wine CHECK_RELEASE_REFCOUNT( pRenderTarget, 0);
|
todo_wine CHECK_RELEASE_REFCOUNT( pRenderTarget, 0);
|
||||||
|
CHECK_REFCOUNT( pDevice, --refcount);
|
||||||
|
|
||||||
|
/* The render target is released with the device, so AddRef with refcount=0 is fine here. */
|
||||||
|
todo_wine CHECK_ADDREF_REFCOUNT(pRenderTarget, 1);
|
||||||
|
todo_wine CHECK_REFCOUNT(pDevice, ++refcount);
|
||||||
|
todo_wine CHECK_RELEASE_REFCOUNT(pRenderTarget, 0);
|
||||||
|
CHECK_REFCOUNT(pDevice, --refcount);
|
||||||
}
|
}
|
||||||
CHECK_REFCOUNT( pDevice, --refcount);
|
|
||||||
|
|
||||||
/* Render target and back buffer are identical. */
|
/* Render target and back buffer are identical. */
|
||||||
hr = IDirect3DDevice8_GetBackBuffer(pDevice, 0, 0, &pBackBuffer);
|
hr = IDirect3DDevice8_GetBackBuffer(pDevice, 0, 0, &pBackBuffer);
|
||||||
|
@ -371,9 +377,15 @@ static void test_refcount(void)
|
||||||
todo_wine CHECK_REFCOUNT(pDevice, refcount);
|
todo_wine CHECK_REFCOUNT(pDevice, refcount);
|
||||||
|
|
||||||
todo_wine CHECK_RELEASE_REFCOUNT( pStencilSurface, 0);
|
todo_wine CHECK_RELEASE_REFCOUNT( pStencilSurface, 0);
|
||||||
|
CHECK_REFCOUNT( pDevice, --refcount);
|
||||||
|
|
||||||
|
/* The stencil surface is released with the device, so AddRef with refcount=0 is fine here. */
|
||||||
|
todo_wine CHECK_ADDREF_REFCOUNT(pStencilSurface, 1);
|
||||||
|
todo_wine CHECK_REFCOUNT(pDevice, ++refcount);
|
||||||
|
todo_wine CHECK_RELEASE_REFCOUNT(pStencilSurface, 0);
|
||||||
|
CHECK_REFCOUNT(pDevice, --refcount);
|
||||||
pStencilSurface = NULL;
|
pStencilSurface = NULL;
|
||||||
}
|
}
|
||||||
CHECK_REFCOUNT( pDevice, --refcount);
|
|
||||||
|
|
||||||
/* Buffers */
|
/* Buffers */
|
||||||
hr = IDirect3DDevice8_CreateIndexBuffer( pDevice, 16, 0, D3DFMT_INDEX32, D3DPOOL_DEFAULT, &pIndexBuffer );
|
hr = IDirect3DDevice8_CreateIndexBuffer( pDevice, 16, 0, D3DFMT_INDEX32, D3DPOOL_DEFAULT, &pIndexBuffer );
|
||||||
|
@ -482,10 +494,16 @@ static void test_refcount(void)
|
||||||
todo_wine CHECK_SURFACE_CONTAINER( pBackBuffer, IID_IDirect3DDevice8, pDevice);
|
todo_wine CHECK_SURFACE_CONTAINER( pBackBuffer, IID_IDirect3DDevice8, pDevice);
|
||||||
todo_wine CHECK_REFCOUNT( pBackBuffer, 1);
|
todo_wine CHECK_REFCOUNT( pBackBuffer, 1);
|
||||||
todo_wine CHECK_RELEASE_REFCOUNT( pBackBuffer, 0);
|
todo_wine CHECK_RELEASE_REFCOUNT( pBackBuffer, 0);
|
||||||
|
CHECK_REFCOUNT( pDevice, --refcount);
|
||||||
|
|
||||||
|
/* The back buffer is released with the swapchain, so AddRef with refcount=0 is fine here. */
|
||||||
|
todo_wine CHECK_ADDREF_REFCOUNT(pBackBuffer, 1);
|
||||||
|
todo_wine CHECK_REFCOUNT(pDevice, ++refcount);
|
||||||
|
todo_wine CHECK_RELEASE_REFCOUNT(pBackBuffer, 0);
|
||||||
|
CHECK_REFCOUNT(pDevice, --refcount);
|
||||||
pBackBuffer = NULL;
|
pBackBuffer = NULL;
|
||||||
}
|
}
|
||||||
CHECK_REFCOUNT( pSwapChain, 1);
|
CHECK_REFCOUNT( pSwapChain, 1);
|
||||||
CHECK_REFCOUNT( pDevice, --refcount);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(pVertexBuffer)
|
if(pVertexBuffer)
|
||||||
|
|
Loading…
Reference in a new issue