[PATCH 4/5] d3d9/tests: Extend focus loss tests.
Stefan Dösinger
stefan at codeweavers.com
Tue Sep 23 05:57:17 CDT 2014
---
dlls/d3d9/tests/d3d9ex.c | 38 ++++++++++++++++++++++++++++++++++++++
dlls/d3d9/tests/device.c | 46 +++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 83 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d9/tests/d3d9ex.c b/dlls/d3d9/tests/d3d9ex.c
index 0309013..1cb14a0 100644
--- a/dlls/d3d9/tests/d3d9ex.c
+++ b/dlls/d3d9/tests/d3d9ex.c
@@ -1201,6 +1201,12 @@ static void test_lost_device(void)
HWND window;
HRESULT hr;
BOOL ret;
+ DEVMODEA mode, orig_mode;
+
+ memset(&orig_mode, 0, sizeof(orig_mode));
+ orig_mode.dmSize = sizeof(orig_mode);
+ ret = pEnumDisplaySettingsExA(NULL, ENUM_CURRENT_SETTINGS, &orig_mode, 0);
+ ok(ret, "Failed to query display settings.\n");
window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, NULL, NULL, NULL, NULL);
@@ -1221,6 +1227,13 @@ static void test_lost_device(void)
hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
ok(hr == S_PRESENT_OCCLUDED, "Got unexpected hr %#x.\n", hr);
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
+ ret = pEnumDisplaySettingsExA(NULL, ENUM_CURRENT_SETTINGS, &mode, 0);
+ ok(ret, "Failed to get display mode.\n");
+ ok(mode.dmPelsWidth == 640 && mode.dmPelsHeight == 480,
+ "Got unexpected mode %ux%u, expected 640x480.\n", mode.dmPelsWidth, mode.dmPelsHeight);
+
ret = SetForegroundWindow(GetDesktopWindow());
ok(ret, "Failed to set foreground window.\n");
hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
@@ -1234,6 +1247,15 @@ static void test_lost_device(void)
hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
+ ret = pEnumDisplaySettingsExA(NULL, ENUM_CURRENT_SETTINGS, &mode, 0);
+ ok(ret, "Failed to get display mode.\n");
+ ok(mode.dmPelsWidth == orig_mode.dmPelsWidth && mode.dmPelsHeight == orig_mode.dmPelsHeight,
+ "Got unexpected mode %ux%u, expected %ux%u.\n", mode.dmPelsWidth, mode.dmPelsHeight,
+ orig_mode.dmPelsWidth, orig_mode.dmPelsHeight);
+ ok(!IsIconic(window), "Expected window not to be iconic.\n");
+
ret = SetForegroundWindow(window);
ok(ret, "Failed to set foreground window.\n");
hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
@@ -1247,6 +1269,14 @@ static void test_lost_device(void)
hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
ok(hr == S_PRESENT_OCCLUDED, "Got unexpected hr %#x.\n", hr);
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
+ ret = pEnumDisplaySettingsExA(NULL, ENUM_CURRENT_SETTINGS, &mode, 0);
+ ok(ret, "Failed to get display mode.\n");
+ ok(mode.dmPelsWidth == 640 && mode.dmPelsHeight == 480,
+ "Got unexpected mode %ux%u, expected 640x480.\n", mode.dmPelsWidth, mode.dmPelsHeight);
+ ok(!IsIconic(window), "Expected window not to be iconic.\n");
+
hr = reset_device(device, window, FALSE);
ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
@@ -1260,6 +1290,14 @@ static void test_lost_device(void)
hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
ok(hr == S_PRESENT_OCCLUDED, "Got unexpected hr %#x.\n", hr);
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
+ ret = pEnumDisplaySettingsExA(NULL, ENUM_CURRENT_SETTINGS, &mode, 0);
+ ok(ret, "Failed to get display mode.\n");
+ ok(mode.dmPelsWidth == 1024 && mode.dmPelsHeight == 768,
+ "Got unexpected mode %ux%u, expected 1024x768.\n", mode.dmPelsWidth, mode.dmPelsHeight);
+ ok(!IsIconic(window), "Expected window not to be iconic.\n");
+
hr = reset_device(device, window, TRUE);
ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c
index f3771d9..0dbef33 100644
--- a/dlls/d3d9/tests/device.c
+++ b/dlls/d3d9/tests/device.c
@@ -8911,12 +8911,22 @@ static void test_lost_device(void)
HWND window;
HRESULT hr;
BOOL ret;
+ DEVMODEW mode;
+ D3DPRESENT_PARAMETERS present_parameters = {0};
window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
0, 0, 640, 480, NULL, NULL, NULL, NULL);
d3d = Direct3DCreate9(D3D_SDK_VERSION);
ok(!!d3d, "Failed to create a D3D object.\n");
- if (!(device = create_device(d3d, window, window, FALSE)))
+
+ present_parameters.Windowed = FALSE;
+ present_parameters.hDeviceWindow = window;
+ present_parameters.SwapEffect = D3DSWAPEFFECT_DISCARD;
+ present_parameters.BackBufferWidth = 640;
+ present_parameters.BackBufferHeight = 480;
+ present_parameters.BackBufferFormat = D3DFMT_A8R8G8B8;
+ if (FAILED(IDirect3D9_CreateDevice(d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, window,
+ D3DCREATE_SOFTWARE_VERTEXPROCESSING, &present_parameters, &device)))
{
skip("Failed to create a D3D device, skipping tests.\n");
goto done;
@@ -8927,6 +8937,13 @@ static void test_lost_device(void)
hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
+ ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &mode);
+ ok(ret, "Failed to get display mode.\n");
+ ok(mode.dmPelsWidth == 640 && mode.dmPelsHeight == 480,
+ "Got unexpected mode %ux%u, expected 640x480.\n", mode.dmPelsWidth, mode.dmPelsHeight);
+
ret = SetForegroundWindow(GetDesktopWindow());
ok(ret, "Failed to set foreground window.\n");
hr = IDirect3DDevice9_TestCooperativeLevel(device);
@@ -8934,6 +8951,15 @@ static void test_lost_device(void)
hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
ok(hr == D3DERR_DEVICELOST, "Got unexpected hr %#x.\n", hr);
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
+ ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &mode);
+ ok(ret, "Failed to get display mode.\n");
+ ok(mode.dmPelsWidth == screen_width && mode.dmPelsHeight == screen_height,
+ "Got unexpected mode %ux%u, expected %ux%u.\n", mode.dmPelsWidth, mode.dmPelsHeight,
+ screen_width, screen_height);
+ ok(IsIconic(window), "Expected window to be iconic.\n");
+
ret = ShowWindow(window, SW_RESTORE);
ok(ret, "Failed to restore window.\n");
ret = SetForegroundWindow(window);
@@ -8943,6 +8969,15 @@ static void test_lost_device(void)
hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
ok(hr == D3DERR_DEVICELOST, "Got unexpected hr %#x.\n", hr);
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
+ ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &mode);
+ ok(ret, "Failed to get display mode.\n");
+ ok(mode.dmPelsWidth == screen_width && mode.dmPelsHeight == screen_height,
+ "Got unexpected mode %ux%u, expected %ux%u.\n", mode.dmPelsWidth, mode.dmPelsHeight,
+ screen_width, screen_height);
+ ok(!IsIconic(window), "Expected window not to be iconic.\n");
+
hr = reset_device(device, window, FALSE);
ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
hr = IDirect3DDevice9_TestCooperativeLevel(device);
@@ -8950,6 +8985,15 @@ static void test_lost_device(void)
hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
+ ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &mode);
+ ok(ret, "Failed to get display mode.\n");
+ ok(mode.dmPelsWidth == screen_width && mode.dmPelsHeight == screen_height,
+ "Got unexpected mode %ux%u, expected %ux%u.\n", mode.dmPelsWidth, mode.dmPelsHeight,
+ screen_width, screen_height);
+ ok(!IsIconic(window), "Expected window not to be iconic.\n");
+
hr = reset_device(device, window, TRUE);
ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
hr = IDirect3DDevice9_TestCooperativeLevel(device);
--
1.8.5.5
More information about the wine-patches
mailing list