From: Anton Baskanov baskanov@gmail.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57599 --- dlls/ddraw/surface.c | 3 +++ dlls/ddraw/tests/ddraw1.c | 8 ++++---- dlls/ddraw/tests/ddraw2.c | 8 ++++---- dlls/ddraw/tests/ddraw4.c | 8 ++++---- dlls/ddraw/tests/ddraw7.c | 8 ++++---- 5 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 8cdaa48b753..8bf3d64f234 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -639,6 +639,9 @@ static ULONG ddraw_surface_release_iface(struct ddraw_surface *This) wined3d_mutex_unlock(); return iface_count; } + if ((This->surface_desc.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) + && (This->ddraw->flags & DDRAW_RESTORE_MODE) && This->ddraw->swapchain_window) + RedrawWindow(This->ddraw->swapchain_window, NULL, NULL, RDW_INVALIDATE | RDW_ERASE | RDW_FRAME); ddraw_surface_cleanup(This); wined3d_mutex_unlock();
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c index d7ead313166..eb7ab7e08af 100644 --- a/dlls/ddraw/tests/ddraw1.c +++ b/dlls/ddraw/tests/ddraw1.c @@ -3129,7 +3129,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -3401,7 +3401,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -3591,7 +3591,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -3713,7 +3713,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
hr = IDirectDraw_RestoreDisplayMode(ddraw); diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c index 8d8d03861d2..914ad6f632f 100644 --- a/dlls/ddraw/tests/ddraw2.c +++ b/dlls/ddraw/tests/ddraw2.c @@ -3226,7 +3226,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -3498,7 +3498,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -3688,7 +3688,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -3858,7 +3858,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
hr = IDirectDraw2_RestoreDisplayMode(ddraw); diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c index 1190b213490..e3851144a1f 100644 --- a/dlls/ddraw/tests/ddraw4.c +++ b/dlls/ddraw/tests/ddraw4.c @@ -3466,7 +3466,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface4_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -3734,7 +3734,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface4_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -3924,7 +3924,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface4_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -4094,7 +4094,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface4_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
hr = IDirectDraw4_RestoreDisplayMode(ddraw); diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c index e99270e2427..d12d326a2af 100644 --- a/dlls/ddraw/tests/ddraw7.c +++ b/dlls/ddraw/tests/ddraw7.c @@ -3238,7 +3238,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface7_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -3506,7 +3506,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface7_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -3696,7 +3696,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface7_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); @@ -3866,7 +3866,7 @@ static void test_coop_level_mode_set(void) expect_messages = release_messages; IDirectDrawSurface7_Release(primary); flush_events(); - todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); expect_messages = NULL;
hr = IDirectDraw7_RestoreDisplayMode(ddraw);