[PATCH 2/5] d3d9/tests: Allow the creation of SWVP devices

Stefan Dösinger stefan at codeweavers.com
Mon Jan 14 17:13:04 CST 2013


---
 dlls/d3d9/tests/device.c | 89 ++++++++++++++++++++++++------------------------
 1 file changed, 45 insertions(+), 44 deletions(-)

diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c
index 7e7fe40..6076e8b 100644
--- a/dlls/d3d9/tests/device.c
+++ b/dlls/d3d9/tests/device.c
@@ -75,7 +75,8 @@ static void flush_events(void)
     }
 }
 
-static IDirect3DDevice9 *create_device(IDirect3D9 *d3d9, HWND device_window, HWND focus_window, BOOL windowed)
+static IDirect3DDevice9 *create_device(IDirect3D9 *d3d9, HWND device_window, HWND focus_window, BOOL windowed,
+        DWORD flags)
 {
     D3DPRESENT_PARAMETERS present_parameters = {0};
     IDirect3DDevice9 *device;
@@ -90,7 +91,7 @@ static IDirect3DDevice9 *create_device(IDirect3D9 *d3d9, HWND device_window, HWN
     present_parameters.AutoDepthStencilFormat = D3DFMT_D24S8;
 
     if (SUCCEEDED(IDirect3D9_CreateDevice(d3d9, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, focus_window,
-            D3DCREATE_HARDWARE_VERTEXPROCESSING, &present_parameters, &device))) return device;
+            flags, &present_parameters, &device))) return device;
 
     present_parameters.AutoDepthStencilFormat = D3DFMT_D16;
     if (SUCCEEDED(IDirect3D9_CreateDevice(d3d9, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, focus_window,
@@ -1845,7 +1846,7 @@ static void test_get_rt(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 128, 128, 0, 0, 0, 0);
-    device = create_device(d3d9, window, window, TRUE);
+    device = create_device(d3d9, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Failed to create a D3D device, skipping tests.\n");
@@ -2690,7 +2691,7 @@ static void test_wndproc(void)
 
     expect_messages = messages;
 
-    device = create_device(d3d9, device_window, focus_window, FALSE);
+    device = create_device(d3d9, device_window, focus_window, FALSE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Failed to create a D3D device, skipping tests.\n");
@@ -2728,7 +2729,7 @@ static void test_wndproc(void)
     ok(proc == (LONG_PTR)test_proc, "Expected wndproc %#lx, got %#lx.\n",
             (LONG_PTR)test_proc, proc);
 
-    device = create_device(d3d9, focus_window, focus_window, FALSE);
+    device = create_device(d3d9, focus_window, focus_window, FALSE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Failed to create a D3D device, skipping tests.\n");
@@ -2738,7 +2739,7 @@ static void test_wndproc(void)
     ref = IDirect3DDevice9_Release(device);
     ok(ref == 0, "The device was not properly freed: refcount %u.\n", ref);
 
-    device = create_device(d3d9, device_window, focus_window, FALSE);
+    device = create_device(d3d9, device_window, focus_window, FALSE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Failed to create a D3D device, skipping tests.\n");
@@ -2832,7 +2833,7 @@ static void test_wndproc_windowed(void)
 
     filter_messages = focus_window;
 
-    device = create_device(d3d9, device_window, focus_window, TRUE);
+    device = create_device(d3d9, device_window, focus_window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Failed to create a D3D device, skipping tests.\n");
@@ -2884,7 +2885,7 @@ static void test_wndproc_windowed(void)
 
     filter_messages = device_window;
 
-    device = create_device(d3d9, focus_window, focus_window, TRUE);
+    device = create_device(d3d9, focus_window, focus_window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Failed to create a D3D device, skipping tests.\n");
@@ -2920,7 +2921,7 @@ static void test_wndproc_windowed(void)
     ref = IDirect3DDevice9_Release(device);
     ok(ref == 0, "The device was not properly freed: refcount %u.\n", ref);
 
-    device = create_device(d3d9, device_window, focus_window, TRUE);
+    device = create_device(d3d9, device_window, focus_window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Failed to create a D3D device, skipping tests.\n");
@@ -3003,7 +3004,7 @@ static void test_reset_fullscreen(void)
      * could show the window (such as ShowWindow or SetWindowPos) yet,
      * WM_ACTIVATEAPP will not have been sent.
      */
-    device = create_device(d3d, device_window, focus_window, TRUE);
+    device = create_device(d3d, device_window, focus_window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Unable to create device.  Skipping test.\n");
@@ -3149,7 +3150,7 @@ static void test_window_style(void)
     SetRect(&fullscreen_rect, 0, 0, screen_width, screen_height);
     GetWindowRect(focus_window, &focus_rect);
 
-    device = create_device(d3d9, device_window, focus_window, FALSE);
+    device = create_device(d3d9, device_window, focus_window, FALSE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Failed to create a D3D device, skipping tests.\n");
@@ -3252,7 +3253,7 @@ static void test_cursor_pos(void)
             0, 0, 320, 240, NULL, NULL, NULL, NULL);
     ShowWindow(window, SW_SHOW);
 
-    device = create_device(d3d9, window, window, TRUE);
+    device = create_device(d3d9, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Failed to create a D3D device, skipping tests.\n");
@@ -3341,7 +3342,7 @@ static void test_mode_change(void)
     SetRect(&fullscreen_rect, 0, 0, screen_width, screen_height);
     GetWindowRect(focus_window, &focus_rect);
 
-    device = create_device(d3d9, device_window, focus_window, FALSE);
+    device = create_device(d3d9, device_window, focus_window, FALSE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Failed to create a D3D device, skipping tests.\n");
@@ -3440,7 +3441,7 @@ static void test_device_window_reset(void)
     ok(proc == (LONG_PTR)test_proc, "Expected wndproc %#lx, got %#lx.\n",
             (LONG_PTR)test_proc, proc);
 
-    device = create_device(d3d9, NULL, focus_window, FALSE);
+    device = create_device(d3d9, NULL, focus_window, FALSE, D3DCREATE_HARDWARE_VERTEXPROCESSING);
     if (!device)
     {
         skip("Failed to create a D3D device, skipping tests.\n");
@@ -3514,7 +3515,7 @@ static void test_reset_resources(void)
         return;
     }
 
-    if (!(device = create_device(d3d9, window, window, TRUE)))
+    if (!(device = create_device(d3d9, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         goto done;
@@ -3591,7 +3592,7 @@ static void test_set_rt_vp_scissor(void)
 
     window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d9, window, window, TRUE)))
+    if (!(device = create_device(d3d9, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         DestroyWindow(window);
@@ -3703,7 +3704,7 @@ static void test_volume_get_container(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d9, window, window, TRUE)))
+    if (!(device = create_device(d3d9, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d9);
@@ -3789,7 +3790,7 @@ static void test_volume_resource(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d9, window, window, TRUE)))
+    if (!(device = create_device(d3d9, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d9);
@@ -3861,7 +3862,7 @@ static void test_vb_lock_flags(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d9, window, window, TRUE)))
+    if (!(device = create_device(d3d9, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d9);
@@ -3935,7 +3936,7 @@ static void test_vertex_buffer_alignment(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d9, window, window, TRUE)))
+    if (!(device = create_device(d3d9, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d9);
@@ -4009,7 +4010,7 @@ static void test_query_support(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d9, window, window, TRUE)))
+    if (!(device = create_device(d3d9, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d9);
@@ -4063,7 +4064,7 @@ static void test_occlusion_query_states(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d9, window, window, TRUE)))
+    if (!(device = create_device(d3d9, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d9);
@@ -4163,7 +4164,7 @@ static void test_get_set_vertex_shader(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -4229,7 +4230,7 @@ static void test_vertex_shader_constant(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -4293,7 +4294,7 @@ static void test_get_set_pixel_shader(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -4359,7 +4360,7 @@ static void test_pixel_shader_constant(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -4458,7 +4459,7 @@ float4 main(const float4 color : COLOR) : SV_TARGET
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -4510,7 +4511,7 @@ static void test_texture_stage_states(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -4670,7 +4671,7 @@ static void test_cube_textures(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -4746,7 +4747,7 @@ static void test_mipmap_gen(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -4879,7 +4880,7 @@ static void test_filter(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -4954,7 +4955,7 @@ static void test_get_texture(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -4993,7 +4994,7 @@ static void test_lod(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -5043,7 +5044,7 @@ static void test_surface_get_container(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -5117,7 +5118,7 @@ static void test_surface_alignment(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -5222,7 +5223,7 @@ static void test_lockrect_offset(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -5318,7 +5319,7 @@ static void test_lockrect_invalid(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -5408,7 +5409,7 @@ static void test_private_data(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -5525,7 +5526,7 @@ static void test_getdc(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -5596,7 +5597,7 @@ static void test_surface_dimensions(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -5648,7 +5649,7 @@ static void test_surface_format_null(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -5746,7 +5747,7 @@ static void test_surface_double_unlock(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -5837,7 +5838,7 @@ static void test_surface_lockrect_blocks(void)
 
     window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d, window, window, TRUE)))
+    if (!(device = create_device(d3d, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         IDirect3D9_Release(d3d);
@@ -5987,7 +5988,7 @@ static void test_set_palette(void)
 
     window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
             0, 0, 640, 480, 0, 0, 0, 0);
-    if (!(device = create_device(d3d9, window, window, TRUE)))
+    if (!(device = create_device(d3d9, window, window, TRUE, D3DCREATE_HARDWARE_VERTEXPROCESSING)))
     {
         skip("Failed to create a D3D device, skipping tests.\n");
         DestroyWindow(window);
-- 
1.7.12.4




More information about the wine-patches mailing list