From 4c620b224ffa79cb3dd387ff31218b25a1c8f080 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Tue, 15 Aug 2023 08:59:26 +0200 Subject: [PATCH] retry until device was reset --- src/render_d3d9.c | 3 +++ src/wndproc.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/render_d3d9.c b/src/render_d3d9.c index d461edb..bbffb0c 100644 --- a/src/render_d3d9.c +++ b/src/render_d3d9.c @@ -553,6 +553,9 @@ DWORD WINAPI d3d9_render_main(void) { DWORD_PTR result; SendMessageTimeout(g_ddraw->hwnd, WM_D3D9DEVICELOST, 0, 0, 0, 1000, &result); + + ReleaseSemaphore(g_ddraw->render.sem, 1, NULL); + Sleep(50); } #if _DEBUG diff --git a/src/wndproc.c b/src/wndproc.c index 4a7bd09..1d70959 100644 --- a/src/wndproc.c +++ b/src/wndproc.c @@ -20,7 +20,8 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam #ifdef _DEBUG if (uMsg != WM_MOUSEMOVE && uMsg != WM_NCMOUSEMOVE && uMsg != WM_NCHITTEST && uMsg != WM_SETCURSOR && uMsg != WM_KEYUP && uMsg != WM_KEYDOWN && uMsg != WM_CHAR && uMsg != WM_DEADCHAR && uMsg != WM_INPUT && - uMsg != WM_UNICHAR && uMsg != WM_IME_CHAR && uMsg != WM_IME_KEYDOWN && uMsg != WM_IME_KEYUP && uMsg != WM_TIMER) + uMsg != WM_UNICHAR && uMsg != WM_IME_CHAR && uMsg != WM_IME_KEYDOWN && uMsg != WM_IME_KEYUP && uMsg != WM_TIMER && + uMsg != WM_D3D9DEVICELOST) { TRACE( " uMsg = %s (%d), wParam = %08X (%d), lParam = %08X (%d)\n",