Paul Gofman : d3d9/tests: Add more tests for fullscreen window size reset.

Alexandre Julliard julliard at winehq.org
Tue Nov 30 16:18:51 CST 2021


Module: wine
Branch: master
Commit: 78533e9e94d4fcae06dd44d29dbed4755d4ac1f4
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=78533e9e94d4fcae06dd44d29dbed4755d4ac1f4

Author: Paul Gofman <pgofman at codeweavers.com>
Date:   Mon Nov 29 22:27:37 2021 +0300

d3d9/tests: Add more tests for fullscreen window size reset.

Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/d3d9/tests/device.c | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c
index 3ef9361886d..c480a9d163e 100644
--- a/dlls/d3d9/tests/device.c
+++ b/dlls/d3d9/tests/device.c
@@ -14572,10 +14572,10 @@ static void test_window_position(void)
 {
     unsigned int adapter_idx, adapter_count;
     struct device_desc device_desc;
+    RECT window_rect, new_rect;
     IDirect3DDevice9 *device;
     MONITORINFO monitor_info;
     HMONITOR monitor;
-    RECT window_rect;
     IDirect3D9 *d3d;
     HWND window;
     HRESULT hr;
@@ -14612,6 +14612,42 @@ static void test_window_position(void)
                 "Adapter %u: Expect window rect %s, got %s.\n", adapter_idx,
                 wine_dbgstr_rect(&monitor_info.rcMonitor), wine_dbgstr_rect(&window_rect));
 
+        new_rect = window_rect;
+        --new_rect.right;
+        --new_rect.bottom;
+
+        ret = MoveWindow(window, new_rect.left, new_rect.top, new_rect.right - new_rect.left,
+                new_rect.bottom - new_rect.top, TRUE);
+        ok(ret, "Got unexpected ret %#x, error %#x, Adapter %u.\n", ret, GetLastError(), adapter_idx);
+        ret = GetWindowRect(window, &window_rect);
+        ok(ret, "Got unexpected ret %#x, error %#x, Adapter %u.\n", ret, GetLastError(), adapter_idx);
+        ok(EqualRect(&window_rect, &new_rect),
+                "Adapter %u: Expect window rect %s, got %s.\n", adapter_idx,
+                wine_dbgstr_rect(&monitor_info.rcMonitor), wine_dbgstr_rect(&window_rect));
+        /* After processing window events window rectangle gets restored. But only once, the size set
+         * on the second resize remains. */
+        flush_events();
+        ret = GetWindowRect(window, &window_rect);
+        ok(ret, "Got unexpected ret %#x, error %#x, Adapter %u.\n", ret, GetLastError(), adapter_idx);
+        todo_wine ok(EqualRect(&window_rect, &monitor_info.rcMonitor),
+                "Adapter %u: Expect window rect %s, got %s.\n", adapter_idx,
+                wine_dbgstr_rect(&monitor_info.rcMonitor), wine_dbgstr_rect(&window_rect));
+
+        ret = MoveWindow(window, new_rect.left, new_rect.top, new_rect.right - new_rect.left,
+                new_rect.bottom - new_rect.top, TRUE);
+        ok(ret, "Got unexpected ret %#x, error %#x, Adapter %u.\n", ret, GetLastError(), adapter_idx);
+        ret = GetWindowRect(window, &window_rect);
+        ok(ret, "Got unexpected ret %#x, error %#x, Adapter %u.\n", ret, GetLastError(), adapter_idx);
+        ok(EqualRect(&window_rect, &new_rect),
+                "Adapter %u: Expect window rect %s, got %s.\n", adapter_idx,
+                wine_dbgstr_rect(&monitor_info.rcMonitor), wine_dbgstr_rect(&window_rect));
+        flush_events();
+        ret = GetWindowRect(window, &window_rect);
+        ok(ret, "Got unexpected ret %#x, error %#x, Adapter %u.\n", ret, GetLastError(), adapter_idx);
+        ok(EqualRect(&window_rect, &new_rect),
+                "Adapter %u: Expect window rect %s, got %s.\n", adapter_idx,
+                wine_dbgstr_rect(&monitor_info.rcMonitor), wine_dbgstr_rect(&window_rect));
+
         /* Device resets should restore the window rectangle to fit the whole monitor */
         ret = SetWindowPos(window, 0, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOSIZE);
         ok(ret, "Adapter %u: SetWindowPos failed, error %#x.\n", adapter_idx, GetLastError());




More information about the wine-cvs mailing list