From d0dbb16b9bb0901af998f7f9b83e0076047d42d3 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Mon, 3 Jun 2024 03:15:16 +0200 Subject: [PATCH] ignore WM_PAINT and WM_ERASEBKGND if there's no primary surface --- src/wndproc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/wndproc.c b/src/wndproc.c index b2ebd71..81c1b30 100644 --- a/src/wndproc.c +++ b/src/wndproc.c @@ -968,12 +968,16 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam RedrawWindow(hWnd, NULL, NULL, RDW_INVALIDATE | RDW_ALLCHILDREN); } - ReleaseSemaphore(g_ddraw.render.sem, 1, NULL); + if (g_ddraw.primary) + { + ReleaseSemaphore(g_ddraw.render.sem, 1, NULL); + } + break; } case WM_ERASEBKGND: { - if (g_ddraw.render.viewport.x != 0 || g_ddraw.render.viewport.y != 0) + if (g_ddraw.primary && (g_ddraw.render.viewport.x != 0 || g_ddraw.render.viewport.y != 0)) { InterlockedExchange(&g_ddraw.render.clear_screen, TRUE); ReleaseSemaphore(g_ddraw.render.sem, 1, NULL);