[PATCH 1/5] d3d9/tests: Make use of the readback helpers in check_rect().

Matteo Bruni mbruni at codeweavers.com
Thu Apr 26 16:30:09 CDT 2018


Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
---
 dlls/d3d9/tests/visual.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index 358ed1d1602..492464a98ab 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -4706,7 +4706,7 @@ done:
     DestroyWindow(window);
 }
 
-static void check_rect(IDirect3DDevice9 *device, RECT r, const char *message)
+static void check_rect(struct surface_readback *rb, RECT r, const char *message)
 {
     LONG x_coords[2][2] =
     {
@@ -4730,9 +4730,9 @@ static void check_rect(IDirect3DDevice9 *device, RECT r, const char *message)
                 {
                     unsigned int x = x_coords[i][x_side], y = y_coords[j][y_side];
                     DWORD color;
-                    DWORD expected = (x_side == 1 && y_side == 1) ? 0x00ffffff : 0;
+                    DWORD expected = (x_side == 1 && y_side == 1) ? 0xffffffff : 0xff000000;
 
-                    color = getPixelColor(device, x, y);
+                    color = get_readback_color(rb, x, y);
                     ok(color == expected, "%s: Pixel (%d, %d) has color %08x, expected %08x\n",
                             message, x, y, color, expected);
                 }
@@ -4776,6 +4776,8 @@ static void projected_textures_test(IDirect3DDevice9 *device,
     IDirect3D9 *d3d;
     D3DCAPS9 caps;
     HRESULT hr;
+    IDirect3DSurface9 *backbuffer;
+    struct surface_readback rb;
 
     IDirect3DDevice9_GetDirect3D(device, &d3d);
     hr = IDirect3DDevice9_GetDeviceCaps(device, &caps);
@@ -4793,6 +4795,9 @@ static void projected_textures_test(IDirect3DDevice9 *device,
         ok(SUCCEEDED(hr), "CreatePixelShader failed (%08x)\n", hr);
     }
 
+    hr = IDirect3DDevice9_GetBackBuffer(device, 0, 0, D3DBACKBUFFER_TYPE_MONO, &backbuffer);
+    ok(SUCCEEDED(hr), "Failed to get back buffer, hr %#x.\n", hr);
+
     hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET, 0xff203040, 0.0f, 0);
     ok(hr == D3D_OK, "IDirect3DDevice9_Clear returned %08x\n", hr);
 
@@ -4872,14 +4877,14 @@ static void projected_textures_test(IDirect3DDevice9 *device,
     if (vs) IDirect3DVertexShader9_Release(vs);
     if (ps) IDirect3DPixelShader9_Release(ps);
 
+    get_rt_readback(backbuffer, &rb);
     for (i = 0; i < 4; ++i)
     {
         if ((!tests[i].vs || vs) && (!tests[i].ps || ps))
-            check_rect(device, tests[i].rect, tests[i].message);
+            check_rect(&rb, tests[i].rect, tests[i].message);
     }
-
-    hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
-    ok(hr == D3D_OK, "IDirect3DDevice9_Present failed with %08x\n", hr);
+    release_surface_readback(&rb);
+    IDirect3DSurface9_Release(backbuffer);
 }
 
 static void texture_transform_flags_test(void)
-- 
2.13.6




More information about the wine-devel mailing list