Module: wine Branch: master Commit: 5ce2e1f39e139070d648f30a914bbf82a16ffed8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5ce2e1f39e139070d648f30a91...
Author: Stefan Dösinger stefan@codeweavers.com Date: Sun Aug 28 16:23:49 2011 +0200
ddraw: Mark DepthFill blit failures between beginScene and EndScene broken.
---
dlls/ddraw/tests/d3d.c | 29 ++++++++++++++++++++++------- 1 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c index 4031a75..c799678 100644 --- a/dlls/ddraw/tests/d3d.c +++ b/dlls/ddraw/tests/d3d.c @@ -706,20 +706,35 @@ static void SceneTest(void) /* Test a normal BeginScene / EndScene pair, this should work */ hr = IDirect3DDevice7_BeginScene(lpD3DDevice); ok(hr == D3D_OK, "IDirect3DDevice7_BeginScene failed with %08x\n", hr); - if(SUCCEEDED(hr)) + if (SUCCEEDED(hr)) + { + hr = IDirect3DDevice7_EndScene(lpD3DDevice); + ok(hr == D3D_OK, "IDirect3DDevice7_EndScene failed with %08x\n", hr); + } + + if (lpDDSdepth) { DDBLTFX fx; memset(&fx, 0, sizeof(fx)); fx.dwSize = sizeof(fx);
- if(lpDDSdepth) { + hr = IDirectDrawSurface7_Blt(lpDDSdepth, NULL, NULL, NULL, DDBLT_DEPTHFILL, &fx); + ok(hr == D3D_OK, "Depthfill failed outside a BeginScene / EndScene pair, hr 0x%08x\n", hr); + + hr = IDirect3DDevice7_BeginScene(lpD3DDevice); + ok(hr == D3D_OK, "IDirect3DDevice7_BeginScene failed with %08x\n", hr); + if (SUCCEEDED(hr)) + { hr = IDirectDrawSurface7_Blt(lpDDSdepth, NULL, NULL, NULL, DDBLT_DEPTHFILL, &fx); - ok(hr == D3D_OK, "Depthfill failed in a BeginScene / EndScene pair\n"); - } else { - skip("Depth stencil creation failed at startup, skipping\n"); + ok(hr == D3D_OK || broken(hr == E_FAIL), + "Depthfill failed in a BeginScene / EndScene pair, hr 0x%08x\n", hr); + hr = IDirect3DDevice7_EndScene(lpD3DDevice); + ok(hr == D3D_OK, "IDirect3DDevice7_EndScene failed with %08x\n", hr); } - hr = IDirect3DDevice7_EndScene(lpD3DDevice); - ok(hr == D3D_OK, "IDirect3DDevice7_EndScene failed with %08x\n", hr); + } + else + { + skip("Depth stencil creation failed at startup, skipping depthfill test\n"); }
/* Test another EndScene without having begun a new scene. Should return an error */