ddraw/tests: Verify that creating a ddraw object works before running any real tests.

This commit is contained in:
Henri Verbeet 2014-03-06 11:06:06 +01:00 committed by Alexandre Julliard
parent ae63dee517
commit 0b547ee750
4 changed files with 320 additions and 785 deletions

View File

@ -443,12 +443,8 @@ static void test_coop_level_create_device_window(void)
focus_window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(focus_window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, NULL, DDSCL_NORMAL);
ok(hr == DD_OK, "Got unexpected hr %#x.\n", hr);
@ -571,12 +567,8 @@ static void test_clipper_blt(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
10, 10, 640, 480, 0, 0, 0, 0);
ShowWindow(window, SW_SHOW);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
ret = GetClientRect(window, &client_rect);
ok(ret, "Failed to get client rect.\n");
@ -739,12 +731,8 @@ static void test_coop_level_d3d_state(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -815,13 +803,8 @@ static void test_surface_interface_mismatch(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
goto cleanup;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -904,11 +887,8 @@ static void test_coop_level_threaded(void)
IDirectDraw *ddraw;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
create_window_thread(&p);
hr = IDirectDraw_SetCooperativeLevel(ddraw, p.window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
@ -938,13 +918,10 @@ static void test_viewport(void)
IDirect3DDevice *device;
HWND window;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1070,12 +1047,8 @@ static void test_zenable(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1195,12 +1168,8 @@ static void test_ck_rgba(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1362,13 +1331,8 @@ static void test_ck_default(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1522,14 +1486,10 @@ static void test_ck_complex(void)
HWND window;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1753,12 +1713,8 @@ static void test_surface_qi(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
/* Try to create a D3D device to see if the ddraw implementation supports
* D3D. 64-bit ddraw in particular doesn't seem to support D3D, and
* doesn't support e.g. the IDirect3DTexture interfaces. */
@ -1842,12 +1798,8 @@ static void test_device_qi(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1884,11 +1836,8 @@ static void test_wndproc(void)
};
/* DDSCL_EXCLUSIVE replaces the window's window proc. */
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = test_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
@ -2001,12 +1950,8 @@ static void test_window_style(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
style = GetWindowLongA(window, GWL_STYLE);
exstyle = GetWindowLongA(window, GWL_EXSTYLE);
@ -2052,12 +1997,8 @@ static void test_redundant_mode_set(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
@ -2133,11 +2074,8 @@ static void test_coop_level_mode_set(void)
0,
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = mode_set_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
@ -2567,14 +2505,10 @@ static void test_coop_level_mode_set_multi(void)
HRESULT hr;
ULONG ref;
if (!(ddraw1 = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
ddraw1 = create_ddraw();
ok(!!ddraw1, "Failed to create a ddraw object.\n");
orig_w = GetSystemMetrics(SM_CXSCREEN);
orig_h = GetSystemMetrics(SM_CYSCREEN);
@ -2763,11 +2697,8 @@ static void test_initialize(void)
IDirect3D *d3d;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_Initialize(ddraw, NULL);
ok(hr == DDERR_ALREADYINITIALIZED, "Initialize returned hr %#x.\n", hr);
@ -2809,11 +2740,8 @@ static void test_coop_level_surf_create(void)
DDSURFACEDESC ddsd;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
memset(&ddsd, 0, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
@ -2835,13 +2763,8 @@ static void test_coop_level_multi_window(void)
0, 0, 640, 480, 0, 0, 0, 0);
window2 = CreateWindowA("static", "ddraw_test2", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window2);
DestroyWindow(window1);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window1, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -2869,12 +2792,8 @@ static void test_clear_rect_count(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -2955,11 +2874,8 @@ static void test_coop_level_activateapp(void)
DDSURFACEDESC ddsd;
IDirectDrawSurface *surface;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = activateapp_test_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
@ -3113,12 +3029,8 @@ static void test_unsupported_formats(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -3352,14 +3264,10 @@ static void test_rt_caps(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -3555,14 +3463,10 @@ static void test_primary_caps(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
for (i = 0; i < sizeof(test_data) / sizeof(*test_data); ++i)
{
@ -3645,14 +3549,10 @@ static void test_surface_lock(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -3727,12 +3627,8 @@ static void test_surface_discard(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -3812,14 +3708,10 @@ static void test_flip(void)
DDBLTFX fx;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = set_display_mode(ddraw, 640, 480);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
@ -3994,14 +3886,10 @@ static void test_sysmem_overlay(void)
IDirectDrawSurface *surface;
ULONG ref;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -4039,18 +3927,13 @@ static void test_primary_palette(void)
HWND window;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
hr = IDirectDraw_SetDisplayMode(ddraw, 640, 480, 8);
if (hr == E_NOTIMPL)
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (FAILED(hr = IDirectDraw_SetDisplayMode(ddraw, 640, 480, 8)))
{
win_skip("changing display mode is not supported (8bpp)\n");
win_skip("Failed to set 8 bpp display mode, skipping test.\n");
IDirectDraw_Release(ddraw);
DestroyWindow(window);
return;
@ -4151,14 +4034,10 @@ static void test_surface_attachment(void)
HWND window;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -4447,11 +4326,7 @@ static void test_pixel_format(void)
}
ddraw = create_ddraw();
if (!ddraw)
{
skip("Failed to create ddraw object\n");
goto cleanup;
}
ok(!!ddraw, "Failed to create a ddraw object.\n");
test_format = GetPixelFormat(hdc);
ok(test_format == format, "window has pixel format %d, expected %d\n", test_format, format);
@ -4577,14 +4452,10 @@ static void test_create_surface_pitch(void)
};
DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -4634,6 +4505,15 @@ static void test_create_surface_pitch(void)
START_TEST(ddraw1)
{
IDirectDraw *ddraw;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping tests.\n");
return;
}
IDirectDraw_Release(ddraw);
test_coop_level_create_device_window();
test_clipper_blt();
test_coop_level_d3d_state();

View File

@ -391,12 +391,8 @@ static void test_coop_level_create_device_window(void)
focus_window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(focus_window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_SetCooperativeLevel(ddraw, NULL, DDSCL_NORMAL);
ok(hr == DD_OK, "Got unexpected hr %#x.\n", hr);
@ -519,12 +515,8 @@ static void test_clipper_blt(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
10, 10, 640, 480, 0, 0, 0, 0);
ShowWindow(window, SW_SHOW);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
ret = GetClientRect(window, &client_rect);
ok(ret, "Failed to get client rect.\n");
@ -688,12 +680,8 @@ static void test_coop_level_d3d_state(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -779,13 +767,8 @@ static void test_surface_interface_mismatch(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
goto cleanup;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -875,11 +858,8 @@ static void test_coop_level_threaded(void)
IDirectDraw2 *ddraw;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
create_window_thread(&p);
hr = IDirectDraw2_SetCooperativeLevel(ddraw, p.window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
@ -922,12 +902,8 @@ static void test_depth_blit(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1076,11 +1052,8 @@ static void test_texture_load_ckey(void)
HRESULT hr;
DDCOLORKEY ckey;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_SetCooperativeLevel(ddraw, NULL, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -1185,13 +1158,10 @@ static void test_viewport(void)
IDirect3DDevice2 *device;
HWND window;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1378,12 +1348,8 @@ static void test_zenable(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1483,12 +1449,8 @@ static void test_ck_rgba(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1625,13 +1587,8 @@ static void test_ck_default(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1733,14 +1690,10 @@ static void test_ck_complex(void)
HWND window;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -1964,12 +1917,8 @@ static void test_surface_qi(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
/* Try to create a D3D device to see if the ddraw implementation supports
* D3D. 64-bit ddraw in particular doesn't seem to support D3D, and
* doesn't support e.g. the IDirect3DTexture interfaces. */
@ -2052,12 +2001,8 @@ static void test_device_qi(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -2094,11 +2039,8 @@ static void test_wndproc(void)
};
/* DDSCL_EXCLUSIVE replaces the window's window proc. */
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = test_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
@ -2211,12 +2153,8 @@ static void test_window_style(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
style = GetWindowLongA(window, GWL_STYLE);
exstyle = GetWindowLongA(window, GWL_EXSTYLE);
@ -2262,12 +2200,8 @@ static void test_redundant_mode_set(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
@ -2354,11 +2288,9 @@ static void test_coop_level_mode_set(void)
0,
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = mode_set_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
ok(RegisterClassA(&wc), "Failed to register window class.\n");
@ -2881,14 +2813,10 @@ static void test_coop_level_mode_set_multi(void)
HRESULT hr;
ULONG ref;
if (!(ddraw1 = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
ddraw1 = create_ddraw();
ok(!!ddraw1, "Failed to create a ddraw object.\n");
orig_w = GetSystemMetrics(SM_CXSCREEN);
orig_h = GetSystemMetrics(SM_CYSCREEN);
@ -3076,11 +3004,8 @@ static void test_initialize(void)
IDirectDraw2 *ddraw;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_Initialize(ddraw, NULL);
ok(hr == DDERR_ALREADYINITIALIZED, "Initialize returned hr %#x.\n", hr);
@ -3104,11 +3029,8 @@ static void test_coop_level_surf_create(void)
DDSURFACEDESC ddsd;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
memset(&ddsd, 0, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
@ -3130,13 +3052,8 @@ static void test_coop_level_multi_window(void)
0, 0, 640, 480, 0, 0, 0, 0);
window2 = CreateWindowA("static", "ddraw_test2", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window2);
DestroyWindow(window1);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window1, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -3164,12 +3081,8 @@ static void test_clear_rect_count(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -3257,8 +3170,8 @@ static void test_coop_level_versions(void)
window = CreateWindowA("static", "ddraw_test1", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw2 = create_ddraw()))
goto done;
ddraw2 = create_ddraw();
ok(!!ddraw2, "Failed to create a ddraw object.\n");
/* Newly created ddraw objects restore the mode on ddraw2+::SetCooperativeLevel(NORMAL) */
restored = test_mode_restored(ddraw2, window);
ok(restored, "Display mode not restored in new ddraw object\n");
@ -3281,8 +3194,8 @@ static void test_coop_level_versions(void)
IDirectDraw_Release(ddraw);
IDirectDraw2_Release(ddraw2);
if (!(ddraw2 = create_ddraw()))
goto done;
ddraw2 = create_ddraw();
ok(!!ddraw2, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_QueryInterface(ddraw2, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3295,8 +3208,8 @@ static void test_coop_level_versions(void)
IDirectDraw2_Release(ddraw2);
/* A failing call does not restore the ddraw2+ behavior */
if (!(ddraw2 = create_ddraw()))
goto done;
ddraw2 = create_ddraw();
ok(!!ddraw2, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_QueryInterface(ddraw2, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3311,8 +3224,8 @@ static void test_coop_level_versions(void)
IDirectDraw2_Release(ddraw2);
/* Neither does a sequence of successful calls with the new interface */
if (!(ddraw2 = create_ddraw()))
goto done;
ddraw2 = create_ddraw();
ok(!!ddraw2, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_QueryInterface(ddraw2, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3329,8 +3242,8 @@ static void test_coop_level_versions(void)
IDirectDraw2_Release(ddraw2);
/* ddraw1::CreateSurface does not triger the ddraw1 behavior */
if (!(ddraw2 = create_ddraw()))
goto done;
ddraw2 = create_ddraw();
ok(!!ddraw2, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_QueryInterface(ddraw2, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3350,8 +3263,6 @@ static void test_coop_level_versions(void)
IDirectDraw_Release(ddraw);
IDirectDraw2_Release(ddraw2);
done:
DestroyWindow(window);
}
@ -3436,12 +3347,8 @@ static void test_lighting_interface_versions(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -3553,11 +3460,8 @@ static void test_coop_level_activateapp(void)
DDSURFACEDESC ddsd;
IDirectDrawSurface *surface;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = activateapp_test_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
@ -3711,12 +3615,8 @@ static void test_unsupported_formats(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -3993,14 +3893,10 @@ static void test_rt_caps(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -4261,14 +4157,10 @@ static void test_primary_caps(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
for (i = 0; i < sizeof(test_data) / sizeof(*test_data); ++i)
{
@ -4351,14 +4243,10 @@ static void test_surface_lock(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (!(device = create_device(ddraw, window, DDSCL_NORMAL)))
{
skip("Failed to create a 3D device, skipping test.\n");
@ -4433,12 +4321,8 @@ static void test_surface_discard(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -4518,14 +4402,10 @@ static void test_flip(void)
DDBLTFX fx;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = set_display_mode(ddraw, 640, 480);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
@ -4721,15 +4601,10 @@ static void test_set_surface_desc(void)
{DDSCAPS_PRIMARYSURFACE | DDSCAPS_SYSTEMMEMORY, FALSE, "systemmemory primary"},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5020,14 +4895,10 @@ static void test_user_memory_getdc(void)
HDC dc;
unsigned int x, y;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5119,14 +4990,10 @@ static void test_sysmem_overlay(void)
IDirectDrawSurface *surface;
ULONG ref;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5163,18 +5030,13 @@ static void test_primary_palette(void)
HWND window;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
hr = IDirectDraw2_SetDisplayMode(ddraw, 640, 480, 8, 0, 0);
if (hr == E_NOTIMPL)
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (FAILED(hr = IDirectDraw2_SetDisplayMode(ddraw, 640, 480, 8, 0, 0)))
{
win_skip("changing display mode is not supported (8bpp)\n");
win_skip("Failed to set 8 bpp display mode, skipping test.\n");
IDirectDraw2_Release(ddraw);
DestroyWindow(window);
return;
@ -5275,14 +5137,10 @@ static void test_surface_attachment(void)
HWND window;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5571,11 +5429,7 @@ static void test_pixel_format(void)
}
ddraw = create_ddraw();
if (!ddraw)
{
skip("Failed to create ddraw object\n");
goto cleanup;
}
ok(!!ddraw, "Failed to create a ddraw object.\n");
test_format = GetPixelFormat(hdc);
ok(test_format == format, "window has pixel format %d, expected %d\n", test_format, format);
@ -5701,14 +5555,10 @@ static void test_create_surface_pitch(void)
};
DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5758,6 +5608,15 @@ static void test_create_surface_pitch(void)
START_TEST(ddraw2)
{
IDirectDraw2 *ddraw;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping tests.\n");
return;
}
IDirectDraw2_Release(ddraw);
test_coop_level_create_device_window();
test_clipper_blt();
test_coop_level_d3d_state();

View File

@ -583,12 +583,8 @@ static void test_coop_level_create_device_window(void)
focus_window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(focus_window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, NULL, DDSCL_NORMAL);
ok(hr == DD_OK, "Got unexpected hr %#x.\n", hr);
@ -711,12 +707,8 @@ static void test_clipper_blt(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
10, 10, 640, 480, 0, 0, 0, 0);
ShowWindow(window, SW_SHOW);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
ret = GetClientRect(window, &client_rect);
ok(ret, "Failed to get client rect.\n");
@ -955,13 +947,8 @@ static void test_surface_interface_mismatch(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
goto cleanup;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -1042,11 +1029,8 @@ static void test_coop_level_threaded(void)
IDirectDraw4 *ddraw;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
create_window_thread(&p);
hr = IDirectDraw4_SetCooperativeLevel(ddraw, p.window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
@ -1242,11 +1226,8 @@ static void test_texture_load_ckey(void)
HRESULT hr;
DDCOLORKEY ckey;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, NULL, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -2108,12 +2089,8 @@ static void test_surface_qi(void)
return;
}
IDirect3DDevice_Release(device);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -2220,11 +2197,8 @@ static void test_wndproc(void)
};
/* DDSCL_EXCLUSIVE replaces the window's window proc. */
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = test_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
@ -2337,12 +2311,8 @@ static void test_window_style(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
style = GetWindowLongA(window, GWL_STYLE);
exstyle = GetWindowLongA(window, GWL_EXSTYLE);
@ -2388,12 +2358,8 @@ static void test_redundant_mode_set(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
@ -2480,11 +2446,8 @@ static void test_coop_level_mode_set(void)
0,
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = mode_set_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
@ -3000,14 +2963,10 @@ static void test_coop_level_mode_set_multi(void)
HRESULT hr;
ULONG ref;
if (!(ddraw1 = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
ddraw1 = create_ddraw();
ok(!!ddraw1, "Failed to create a ddraw object.\n");
orig_w = GetSystemMetrics(SM_CXSCREEN);
orig_h = GetSystemMetrics(SM_CYSCREEN);
@ -3188,11 +3147,8 @@ static void test_initialize(void)
IDirectDraw4 *ddraw;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_Initialize(ddraw, NULL);
ok(hr == DDERR_ALREADYINITIALIZED, "Initialize returned hr %#x.\n", hr);
@ -3216,11 +3172,8 @@ static void test_coop_level_surf_create(void)
DDSURFACEDESC2 ddsd;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
memset(&ddsd, 0, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
@ -3321,13 +3274,8 @@ static void test_coop_level_multi_window(void)
0, 0, 640, 480, 0, 0, 0, 0);
window2 = CreateWindowA("static", "ddraw_test2", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window2);
DestroyWindow(window1);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window1, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -3493,8 +3441,8 @@ static void test_coop_level_versions(void)
window = CreateWindowA("static", "ddraw_test1", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw4 = create_ddraw()))
goto done;
ddraw4 = create_ddraw();
ok(!!ddraw4, "Failed to create a ddraw object.\n");
/* Newly created ddraw objects restore the mode on ddraw2+::SetCooperativeLevel(NORMAL) */
restored = test_mode_restored(ddraw4, window);
ok(restored, "Display mode not restored in new ddraw object\n");
@ -3517,8 +3465,8 @@ static void test_coop_level_versions(void)
IDirectDraw_Release(ddraw);
IDirectDraw4_Release(ddraw4);
if (!(ddraw4 = create_ddraw()))
goto done;
ddraw4 = create_ddraw();
ok(!!ddraw4, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_QueryInterface(ddraw4, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3531,8 +3479,8 @@ static void test_coop_level_versions(void)
IDirectDraw4_Release(ddraw4);
/* A failing call does not restore the ddraw2+ behavior */
if (!(ddraw4 = create_ddraw()))
goto done;
ddraw4 = create_ddraw();
ok(!!ddraw4, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_QueryInterface(ddraw4, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3547,8 +3495,8 @@ static void test_coop_level_versions(void)
IDirectDraw4_Release(ddraw4);
/* Neither does a sequence of successful calls with the new interface */
if (!(ddraw4 = create_ddraw()))
goto done;
ddraw4 = create_ddraw();
ok(!!ddraw4, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_QueryInterface(ddraw4, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3565,8 +3513,8 @@ static void test_coop_level_versions(void)
IDirectDraw4_Release(ddraw4);
/* ddraw1::CreateSurface does not triger the ddraw1 behavior */
if (!(ddraw4 = create_ddraw()))
goto done;
ddraw4 = create_ddraw();
ok(!!ddraw4, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_QueryInterface(ddraw4, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3586,8 +3534,6 @@ static void test_coop_level_versions(void)
IDirectDraw_Release(ddraw);
IDirectDraw4_Release(ddraw4);
done:
DestroyWindow(window);
}
@ -3838,11 +3784,8 @@ static void test_coop_level_activateapp(void)
DDSURFACEDESC2 ddsd;
IDirectDrawSurface4 *surface;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = activateapp_test_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
@ -3992,12 +3935,8 @@ static void test_texturemanage(void)
DDSCAPS_SYSTEMMEMORY, 0},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, NULL, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -4581,14 +4520,10 @@ static void test_rt_caps(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -4829,14 +4764,10 @@ static void test_primary_caps(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
for (i = 0; i < sizeof(test_data) / sizeof(*test_data); ++i)
{
@ -4952,14 +4883,10 @@ static void test_surface_lock(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5133,14 +5060,10 @@ static void test_flip(void)
DDBLTFX fx;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = set_display_mode(ddraw, 640, 480);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
@ -5337,15 +5260,10 @@ static void test_set_surface_desc(void)
{DDSCAPS_PRIMARYSURFACE | DDSCAPS_SYSTEMMEMORY, 0, FALSE, "systemmemory primary"},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5632,14 +5550,10 @@ static void test_user_memory_getdc(void)
HDC dc;
unsigned int x, y;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5727,14 +5641,10 @@ static void test_sysmem_overlay(void)
IDirectDrawSurface4 *surface;
ULONG ref;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5771,18 +5681,13 @@ static void test_primary_palette(void)
HWND window;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
hr = IDirectDraw4_SetDisplayMode(ddraw, 640, 480, 8, 0, 0);
if (hr == E_NOTIMPL)
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
if (FAILED(hr = IDirectDraw4_SetDisplayMode(ddraw, 640, 480, 8, 0, 0)))
{
win_skip("changing display mode is not supported (8bpp)\n");
win_skip("Failed to set 8 bpp display mode, skipping test.\n");
IDirectDraw4_Release(ddraw);
DestroyWindow(window);
return;
@ -5884,14 +5789,10 @@ static void test_surface_attachment(void)
HWND window;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -6145,14 +6046,10 @@ static void test_private_data(void)
HRESULT hr;
HWND window;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -6290,11 +6187,7 @@ static void test_pixel_format(void)
}
ddraw = create_ddraw();
if (!ddraw)
{
skip("Failed to create ddraw object\n");
goto cleanup;
}
ok(!!ddraw, "Failed to create a ddraw object.\n");
test_format = GetPixelFormat(hdc);
ok(test_format == format, "window has pixel format %d, expected %d\n", test_format, format);
@ -6424,14 +6317,10 @@ static void test_create_surface_pitch(void)
};
DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -6481,6 +6370,15 @@ static void test_create_surface_pitch(void)
START_TEST(ddraw4)
{
IDirectDraw4 *ddraw;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping tests.\n");
return;
}
IDirectDraw4_Release(ddraw);
test_process_vertices();
test_coop_level_create_device_window();
test_clipper_blt();

View File

@ -557,12 +557,8 @@ static void test_coop_level_create_device_window(void)
focus_window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(focus_window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetCooperativeLevel(ddraw, NULL, DDSCL_NORMAL);
ok(hr == DD_OK, "Got unexpected hr %#x.\n", hr);
@ -685,12 +681,8 @@ static void test_clipper_blt(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
10, 10, 640, 480, 0, 0, 0, 0);
ShowWindow(window, SW_SHOW);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
ret = GetClientRect(window, &client_rect);
ok(ret, "Failed to get client rect.\n");
@ -922,13 +914,8 @@ static void test_surface_interface_mismatch(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
goto cleanup;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -1005,11 +992,8 @@ static void test_coop_level_threaded(void)
IDirectDraw7 *ddraw;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
create_window_thread(&p);
hr = IDirectDraw7_SetCooperativeLevel(ddraw, p.window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
@ -1834,12 +1818,8 @@ static void test_surface_qi(void)
return;
}
IDirect3DDevice_Release(device);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -1946,11 +1926,8 @@ static void test_wndproc(void)
};
/* DDSCL_EXCLUSIVE replaces the window's window proc. */
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = test_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
@ -2063,12 +2040,8 @@ static void test_window_style(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
style = GetWindowLongA(window, GWL_STYLE);
exstyle = GetWindowLongA(window, GWL_EXSTYLE);
@ -2114,13 +2087,8 @@ static void test_redundant_mode_set(void)
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
@ -2206,11 +2174,8 @@ static void test_coop_level_mode_set(void)
0,
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = mode_set_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
@ -2726,14 +2691,10 @@ static void test_coop_level_mode_set_multi(void)
HRESULT hr;
ULONG ref;
if (!(ddraw1 = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 100, 100, 0, 0, 0, 0);
ddraw1 = create_ddraw();
ok(!!ddraw1, "Failed to create a ddraw object.\n");
orig_w = GetSystemMetrics(SM_CXSCREEN);
orig_h = GetSystemMetrics(SM_CYSCREEN);
@ -2914,11 +2875,8 @@ static void test_initialize(void)
IDirectDraw7 *ddraw;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_Initialize(ddraw, NULL);
ok(hr == DDERR_ALREADYINITIALIZED, "Initialize returned hr %#x.\n", hr);
@ -2942,11 +2900,8 @@ static void test_coop_level_surf_create(void)
DDSURFACEDESC2 ddsd;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
memset(&ddsd, 0, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
@ -3047,13 +3002,8 @@ static void test_coop_level_multi_window(void)
0, 0, 640, 480, 0, 0, 0, 0);
window2 = CreateWindowA("static", "ddraw_test2", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
DestroyWindow(window2);
DestroyWindow(window1);
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window1, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -3216,8 +3166,8 @@ static void test_coop_level_versions(void)
window = CreateWindowA("static", "ddraw_test1", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
if (!(ddraw7 = create_ddraw()))
goto done;
ddraw7 = create_ddraw();
ok(!!ddraw7, "Failed to create a ddraw object.\n");
/* Newly created ddraw objects restore the mode on ddraw2+::SetCooperativeLevel(NORMAL) */
restored = test_mode_restored(ddraw7, window);
ok(restored, "Display mode not restored in new ddraw object\n");
@ -3240,8 +3190,8 @@ static void test_coop_level_versions(void)
IDirectDraw_Release(ddraw);
IDirectDraw7_Release(ddraw7);
if (!(ddraw7 = create_ddraw()))
goto done;
ddraw7 = create_ddraw();
ok(!!ddraw7, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_QueryInterface(ddraw7, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3254,8 +3204,8 @@ static void test_coop_level_versions(void)
IDirectDraw7_Release(ddraw7);
/* A failing call does not restore the ddraw2+ behavior */
if (!(ddraw7 = create_ddraw()))
goto done;
ddraw7 = create_ddraw();
ok(!!ddraw7, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_QueryInterface(ddraw7, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3270,8 +3220,8 @@ static void test_coop_level_versions(void)
IDirectDraw7_Release(ddraw7);
/* Neither does a sequence of successful calls with the new interface */
if (!(ddraw7 = create_ddraw()))
goto done;
ddraw7 = create_ddraw();
ok(!!ddraw7, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_QueryInterface(ddraw7, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3288,8 +3238,8 @@ static void test_coop_level_versions(void)
IDirectDraw7_Release(ddraw7);
/* ddraw1::CreateSurface does not triger the ddraw1 behavior */
if (!(ddraw7 = create_ddraw()))
goto done;
ddraw7 = create_ddraw();
ok(!!ddraw7, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_QueryInterface(ddraw7, &IID_IDirectDraw, (void **)&ddraw);
ok(SUCCEEDED(hr), "QueryInterface failed, hr %#x.\n", hr);
@ -3309,8 +3259,6 @@ static void test_coop_level_versions(void)
IDirectDraw_Release(ddraw);
IDirectDraw7_Release(ddraw7);
done:
DestroyWindow(window);
}
@ -3643,11 +3591,8 @@ static void test_coop_level_activateapp(void)
DDSURFACEDESC2 ddsd;
IDirectDrawSurface7 *surface;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
wc.lpfnWndProc = activateapp_test_proc;
wc.lpszClassName = "ddraw_test_wndproc_wc";
@ -3797,12 +3742,8 @@ static void test_texturemanage(void)
DDSCAPS_SYSTEMMEMORY, 0},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetCooperativeLevel(ddraw, NULL, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -4388,14 +4329,10 @@ static void test_rt_caps(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -4641,14 +4578,10 @@ static void test_primary_caps(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
for (i = 0; i < sizeof(test_data) / sizeof(*test_data); ++i)
{
@ -4804,14 +4737,10 @@ static void test_surface_lock(void)
},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5011,14 +4940,10 @@ static void test_flip(void)
DDBLTFX fx;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = set_display_mode(ddraw, 640, 480);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
@ -5215,15 +5140,10 @@ static void test_set_surface_desc(void)
{DDSCAPS_PRIMARYSURFACE | DDSCAPS_SYSTEMMEMORY, 0, FALSE, "systemmemory primary"},
};
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5511,15 +5431,10 @@ static void test_user_memory_getdc(void)
HDC dc;
unsigned int x, y;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5606,15 +5521,10 @@ static void test_sysmem_overlay(void)
IDirectDrawSurface7 *surface;
ULONG ref;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5650,14 +5560,10 @@ static void test_primary_palette(void)
HWND window;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw7_SetDisplayMode(ddraw, 640, 480, 8, 0, 0);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
@ -5756,14 +5662,10 @@ static void test_surface_attachment(void)
HWND window;
HRESULT hr;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -5999,14 +5901,10 @@ static void test_private_data(void)
HRESULT hr;
HWND window;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -6144,11 +6042,7 @@ static void test_pixel_format(void)
}
ddraw = create_ddraw();
if (!ddraw)
{
skip("Failed to create ddraw object\n");
goto cleanup;
}
ok(!!ddraw, "Failed to create a ddraw object.\n");
test_format = GetPixelFormat(hdc);
ok(test_format == format, "window has pixel format %d, expected %d\n", test_format, format);
@ -6278,14 +6172,10 @@ static void test_create_surface_pitch(void)
};
DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE;
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping test.\n");
return;
}
window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, 0, 0, 0, 0);
ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n");
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -6336,6 +6226,7 @@ static void test_create_surface_pitch(void)
START_TEST(ddraw7)
{
HMODULE module = GetModuleHandleA("ddraw.dll");
IDirectDraw7 *ddraw;
if (!(pDirectDrawCreateEx = (void *)GetProcAddress(module, "DirectDrawCreateEx")))
{
@ -6343,6 +6234,13 @@ START_TEST(ddraw7)
return;
}
if (!(ddraw = create_ddraw()))
{
skip("Failed to create a ddraw object, skipping tests.\n");
return;
}
IDirectDraw7_Release(ddraw);
test_process_vertices();
test_coop_level_create_device_window();
test_clipper_blt();