[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