[PATCH 5/5] ddraw/tests: Add a helper function to set the viewport background material.

Henri Verbeet hverbeet at codeweavers.com
Thu Apr 19 13:45:00 CDT 2012


---
 dlls/ddraw/tests/ddraw1.c |   40 +++++++++++++++-----------------------
 dlls/ddraw/tests/ddraw2.c |   47 ++++++++++++++++----------------------------
 2 files changed, 33 insertions(+), 54 deletions(-)

diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index ce94ce3..b5c50c5 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -329,6 +329,18 @@ static IDirect3DViewport *create_viewport(IDirect3DDevice *device, UINT x, UINT
     return viewport;
 }
 
+static void viewport_set_background(IDirect3DDevice *device, IDirect3DViewport *viewport,
+        IDirect3DMaterial *material)
+{
+    D3DMATERIALHANDLE material_handle;
+    HRESULT hr;
+
+    hr = IDirect3DMaterial2_GetHandle(material, device, &material_handle);
+    ok(SUCCEEDED(hr), "Failed to get material handle, hr %#x.\n", hr);
+    hr = IDirect3DViewport2_SetBackground(viewport, material_handle);
+    ok(SUCCEEDED(hr), "Failed to set viewport background, hr %#x.\n", hr);
+}
+
 static void destroy_viewport(IDirect3DDevice *device, IDirect3DViewport *viewport)
 {
     HRESULT hr;
@@ -681,7 +693,6 @@ static void test_clipper_blt(void)
 static void test_coop_level_d3d_state(void)
 {
     D3DRECT clear_rect = {{0}, {0}, {640}, {480}};
-    D3DMATERIALHANDLE background_handle;
     IDirectDrawSurface *rt, *surface;
     IDirect3DMaterial *background;
     IDirect3DViewport *viewport;
@@ -710,11 +721,7 @@ static void test_coop_level_d3d_state(void)
 
     background = create_diffuse_material(device, 1.0f, 0.0f, 0.0f, 1.0f);
     viewport = create_viewport(device, 0, 0, 640, 480);
-
-    hr = IDirect3DMaterial_GetHandle(background, device, &background_handle);
-    ok(SUCCEEDED(hr), "Failed to get material handle, hr %#x.\n", hr);
-    hr = IDirect3DViewport_SetBackground(viewport, background_handle);
-    ok(SUCCEEDED(hr), "Failed to set viewport background, hr %#x.\n", hr);
+    viewport_set_background(device, viewport, background);
 
     hr = IDirect3DDevice_QueryInterface(device, &IID_IDirectDrawSurface, (void **)&rt);
     ok(SUCCEEDED(hr), "Failed to get render target, hr %#x.\n", hr);
@@ -771,7 +778,6 @@ static void test_surface_interface_mismatch(void)
     HRESULT hr;
     D3DCOLOR color;
     HWND window;
-    D3DMATERIALHANDLE background_handle;
     D3DRECT clear_rect = {{0}, {0}, {640}, {480}};
 
     window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
@@ -845,11 +851,7 @@ static void test_surface_interface_mismatch(void)
 
     background = create_diffuse_material(device, 1.0f, 0.0f, 0.0f, 1.0f);
     viewport = create_viewport(device, 0, 0, 640, 480);
-
-    hr = IDirect3DMaterial_GetHandle(background, device, &background_handle);
-    ok(SUCCEEDED(hr), "Failed to get material handle, hr %#x.\n", hr);
-    hr = IDirect3DViewport_SetBackground(viewport, background_handle);
-    ok(SUCCEEDED(hr), "Failed to set viewport background, hr %#x.\n", hr);
+    viewport_set_background(device, viewport, background);
 
     hr = IDirect3DViewport_Clear(viewport, 1, &clear_rect, D3DCLEAR_TARGET);
     ok(SUCCEEDED(hr), "Failed to clear render target, hr %#x.\n", hr);
@@ -992,7 +994,6 @@ static void test_zenable(void)
         {{640.0f}, {  0.0f}, { 1.5f}, {1.0f}, {0xff00ff00}, {0x00000000}, {0.0f}, {0.0f}},
     };
     IDirect3DExecuteBuffer *execute_buffer;
-    D3DMATERIALHANDLE background_handle;
     D3DEXECUTEBUFFERDESC exec_desc;
     IDirect3DMaterial *background;
     IDirect3DViewport *viewport;
@@ -1026,11 +1027,7 @@ static void test_zenable(void)
 
     background = create_diffuse_material(device, 1.0f, 0.0f, 0.0f, 1.0f);
     viewport = create_viewport(device, 0, 0, 640, 480);
-
-    hr = IDirect3DMaterial_GetHandle(background, device, &background_handle);
-    ok(SUCCEEDED(hr), "Failed to get material handle, hr %#x.\n", hr);
-    hr = IDirect3DViewport_SetBackground(viewport, background_handle);
-    ok(SUCCEEDED(hr), "Failed to set viewport background, hr %#x.\n", hr);
+    viewport_set_background(device, viewport, background);
 
     memset(&exec_desc, 0, sizeof(exec_desc));
     exec_desc.dwSize = sizeof(exec_desc);
@@ -1128,7 +1125,6 @@ static void test_ck_rgba(void)
     };
 
     IDirect3DExecuteBuffer *execute_buffer;
-    D3DMATERIALHANDLE background_handle;
     D3DTEXTUREHANDLE texture_handle;
     D3DEXECUTEBUFFERDESC exec_desc;
     IDirect3DMaterial *background;
@@ -1162,11 +1158,7 @@ static void test_ck_rgba(void)
 
     background = create_diffuse_material(device, 1.0, 0.0f, 0.0f, 1.0f);
     viewport = create_viewport(device, 0, 0, 640, 480);
-
-    hr = IDirect3DMaterial_GetHandle(background, device, &background_handle);
-    ok(SUCCEEDED(hr), "Failed to get material handle, hr %#x.\n", hr);
-    hr = IDirect3DViewport_SetBackground(viewport, background_handle);
-    ok(SUCCEEDED(hr), "Failed to set viewport background, hr %#x.\n", hr);
+    viewport_set_background(device, viewport, background);
 
     memset(&surface_desc, 0, sizeof(surface_desc));
     surface_desc.dwSize = sizeof(surface_desc);
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index 31522f0..45a5cfd 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -285,6 +285,18 @@ static IDirect3DViewport2 *create_viewport(IDirect3DDevice2 *device, UINT x, UIN
     return viewport;
 }
 
+static void viewport_set_background(IDirect3DDevice2 *device, IDirect3DViewport2 *viewport,
+        IDirect3DMaterial2 *material)
+{
+    D3DMATERIALHANDLE material_handle;
+    HRESULT hr;
+
+    hr = IDirect3DMaterial2_GetHandle(material, device, &material_handle);
+    ok(SUCCEEDED(hr), "Failed to get material handle, hr %#x.\n", hr);
+    hr = IDirect3DViewport2_SetBackground(viewport, material_handle);
+    ok(SUCCEEDED(hr), "Failed to set viewport background, hr %#x.\n", hr);
+}
+
 static void destroy_viewport(IDirect3DDevice2 *device, IDirect3DViewport2 *viewport)
 {
     HRESULT hr;
@@ -637,7 +649,6 @@ static void test_clipper_blt(void)
 static void test_coop_level_d3d_state(void)
 {
     D3DRECT clear_rect = {{0}, {0}, {640}, {480}};
-    D3DMATERIALHANDLE background_handle;
     IDirectDrawSurface *rt, *surface;
     IDirect3DMaterial2 *background;
     IDirect3DViewport2 *viewport;
@@ -667,11 +678,7 @@ static void test_coop_level_d3d_state(void)
 
     background = create_diffuse_material(device, 1.0f, 0.0f, 0.0f, 1.0f);
     viewport = create_viewport(device, 0, 0, 640, 480);
-
-    hr = IDirect3DMaterial2_GetHandle(background, device, &background_handle);
-    ok(SUCCEEDED(hr), "Failed to get material handle, hr %#x.\n", hr);
-    hr = IDirect3DViewport2_SetBackground(viewport, background_handle);
-    ok(SUCCEEDED(hr), "Failed to set viewport background, hr %#x.\n", hr);
+    viewport_set_background(device, viewport, background);
 
     hr = IDirect3DDevice2_GetRenderTarget(device, &rt);
     ok(SUCCEEDED(hr), "Failed to get render target, hr %#x.\n", hr);
@@ -742,7 +749,6 @@ static void test_surface_interface_mismatch(void)
     HRESULT hr;
     D3DCOLOR color;
     HWND window;
-    D3DMATERIALHANDLE background_handle;
     D3DRECT clear_rect = {{0}, {0}, {640}, {480}};
 
     window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
@@ -816,11 +822,7 @@ static void test_surface_interface_mismatch(void)
 
     background = create_diffuse_material(device, 1.0f, 0.0f, 0.0f, 1.0f);
     viewport = create_viewport(device, 0, 0, 640, 480);
-
-    hr = IDirect3DMaterial2_GetHandle(background, device, &background_handle);
-    ok(SUCCEEDED(hr), "Failed to get material handle, hr %#x.\n", hr);
-    hr = IDirect3DViewport2_SetBackground(viewport, background_handle);
-    ok(SUCCEEDED(hr), "Failed to set viewport background, hr %#x.\n", hr);
+    viewport_set_background(device, viewport, background);
 
     hr = IDirect3DViewport2_Clear(viewport, 1, &clear_rect, D3DCLEAR_TARGET);
     ok(SUCCEEDED(hr), "Failed to clear render target, hr %#x.\n", hr);
@@ -897,7 +899,6 @@ static void test_depth_blit(void)
     HWND window;
     D3DRECT d3drect;
     IDirect3DMaterial2 *background;
-    D3DMATERIALHANDLE background_handle;
 
     window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
@@ -934,14 +935,10 @@ static void test_depth_blit(void)
 
     background = create_diffuse_material(device, 1.0f, 0.0f, 0.0f, 1.0f);
     viewport = create_viewport(device, 0, 0, ddsd_existing.dwWidth, ddsd_existing.dwHeight);
+    viewport_set_background(device, viewport, background);
     hr = IDirect3DDevice2_SetCurrentViewport(device, viewport);
     ok(SUCCEEDED(hr), "Failed to activate the viewport, hr %#x.\n", hr);
 
-    hr = IDirect3DMaterial2_GetHandle(background, device, &background_handle);
-    ok(SUCCEEDED(hr), "Failed to get material handle, hr %#x.\n", hr);
-    hr = IDirect3DViewport2_SetBackground(viewport, background_handle);
-    ok(SUCCEEDED(hr), "Failed to set viewport background, hr %#x.\n", hr);
-
     hr = IDirect3DDevice2_SetRenderState(device, D3DRENDERSTATE_ZENABLE, D3DZB_TRUE);
     ok(SUCCEEDED(hr), "Failed to enable z testing, hr %#x.\n", hr);
     hr = IDirect3DDevice2_SetRenderState(device, D3DRENDERSTATE_ZFUNC, D3DCMP_LESSEQUAL);
@@ -1249,7 +1246,6 @@ static void test_zenable(void)
         {{640.0f}, {480.0f}, { 1.5f}, {1.0f}, {0xff00ff00}, {0x00000000}, {0.0f}, {0.0f}},
         {{640.0f}, {  0.0f}, { 1.5f}, {1.0f}, {0xff00ff00}, {0x00000000}, {0.0f}, {0.0f}},
     };
-    D3DMATERIALHANDLE background_handle;
     IDirect3DMaterial2 *background;
     IDirect3DViewport2 *viewport;
     IDirect3DDevice2 *device;
@@ -1279,14 +1275,10 @@ static void test_zenable(void)
 
     background = create_diffuse_material(device, 1.0f, 0.0f, 0.0f, 1.0f);
     viewport = create_viewport(device, 0, 0, 640, 480);
+    viewport_set_background(device, viewport, background);
     hr = IDirect3DDevice2_SetCurrentViewport(device, viewport);
     ok(SUCCEEDED(hr), "Failed to set current viewport, hr %#x.\n", hr);
 
-    hr = IDirect3DMaterial2_GetHandle(background, device, &background_handle);
-    ok(SUCCEEDED(hr), "Failed to get material handle, hr %#x.\n", hr);
-    hr = IDirect3DViewport2_SetBackground(viewport, background_handle);
-    ok(SUCCEEDED(hr), "Failed to set viewport background, hr %#x.\n", hr);
-
     hr = IDirect3DDevice2_SetRenderState(device, D3DRENDERSTATE_ZENABLE, D3DZB_FALSE);
     ok(SUCCEEDED(hr), "Failed to disable z-buffering, hr %#x.\n", hr);
 
@@ -1355,7 +1347,6 @@ static void test_ck_rgba(void)
         {0x7f00ff00, FALSE, FALSE, 0x0000ff00, 0x0000ff00},
     };
 
-    D3DMATERIALHANDLE background_handle;
     D3DTEXTUREHANDLE texture_handle;
     IDirect3DMaterial2 *background;
     IDirectDrawSurface *surface;
@@ -1388,14 +1379,10 @@ static void test_ck_rgba(void)
 
     background = create_diffuse_material(device, 1.0f, 0.0f, 0.0f, 1.0f);
     viewport = create_viewport(device, 0, 0, 640, 480);
+    viewport_set_background(device, viewport, background);
     hr = IDirect3DDevice2_SetCurrentViewport(device, viewport);
     ok(SUCCEEDED(hr), "Failed to set current viewport, hr %#x.\n", hr);
 
-    hr = IDirect3DMaterial2_GetHandle(background, device, &background_handle);
-    ok(SUCCEEDED(hr), "Failed to get material handle, hr %#x.\n", hr);
-    hr = IDirect3DViewport2_SetBackground(viewport, background_handle);
-    ok(SUCCEEDED(hr), "Failed to set viewport background, hr %#x.\n", hr);
-
     memset(&surface_desc, 0, sizeof(surface_desc));
     surface_desc.dwSize = sizeof(surface_desc);
     surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT | DDSD_CKSRCBLT;
-- 
1.7.3.4




More information about the wine-patches mailing list