From aff810578d8b58babda24c11ad1ffab350bf2de6 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Tue, 18 Feb 2020 20:22:06 +0330 Subject: [PATCH] d3d9/tests: Test alpha to coverage state capture. Signed-off-by: Paul Gofman Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/d3d9/tests/visual.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c index 8db30467ee5..7379d5db5a1 100644 --- a/dlls/d3d9/tests/visual.c +++ b/dlls/d3d9/tests/visual.c @@ -26560,6 +26560,7 @@ static void test_alpha_to_coverage(void) D3DADAPTER_IDENTIFIER9 identifier; struct surface_readback rb; IDirect3DTexture9 *texture; + IDirect3DStateBlock9 *sb; IDirect3DDevice9 *device; DWORD quality_levels; BOOL nvidia_mode; @@ -26669,6 +26670,9 @@ static void test_alpha_to_coverage(void) ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); } + hr = IDirect3DDevice9_CreateStateBlock(device, D3DSBT_VERTEXSTATE, &sb); + ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); + fill_surface(surface, 0x40608000, 0); hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad, sizeof(quad[0])); @@ -26705,6 +26709,23 @@ static void test_alpha_to_coverage(void) ok(colour == 0x40608000, "Got unexpected colour %08x.\n", colour); release_surface_readback(&rb); + hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET, 0xff2000ff, 0.0f, 0); + ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); + + IDirect3DStateBlock9_Apply(sb); + IDirect3DStateBlock9_Release(sb); + + hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad, sizeof(quad[0])); + ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); + + hr = IDirect3DDevice9_StretchRect(device, ms_rt, NULL, rt, NULL, D3DTEXF_POINT); + ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); + get_rt_readback(rt, &rb); + colour = get_readback_color(&rb, 64, 64); + ok(color_match(colour, 0x9f404080, 1) || color_match(colour, 0x9f485cbc, 1) /* Nvidia */, + "Got unexpected colour %08x.\n", colour); + release_surface_readback(&rb); + hr = IDirect3DDevice9_EndScene(device); ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL); -- 2.11.4.GIT