From 93319d4c836dcd5f90bedb40184672d00bca21dd Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Thu, 26 Dec 2024 02:24:05 +0100 Subject: [PATCH] add support for limiting game speed of GDI games --- src/winapi_hooks.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c index 0d2f981..7637d49 100644 --- a/src/winapi_hooks.c +++ b/src/winapi_hooks.c @@ -1032,6 +1032,11 @@ BOOL WINAPI fake_StretchBlt( { HWND hwnd = WindowFromDC(hdcDest); + if (g_ddraw.ref && g_ddraw.hwnd && hwnd == g_ddraw.hwnd && !g_ddraw.primary) + { + InterlockedExchange(&g_ddraw.render.screen_updated, TRUE); + } + char class_name[MAX_PATH] = { 0 }; if (g_ddraw.ref && g_ddraw.hwnd && hwnd && hwnd != g_ddraw.hwnd) @@ -1140,6 +1145,11 @@ BOOL WINAPI fake_BitBlt( { HWND hwnd = WindowFromDC(hdc); + if (g_ddraw.ref && g_ddraw.hwnd && hwnd == g_ddraw.hwnd && !g_ddraw.primary) + { + InterlockedExchange(&g_ddraw.render.screen_updated, TRUE); + } + char class_name[MAX_PATH] = { 0 }; if (g_ddraw.ref && g_ddraw.hwnd && hwnd && hwnd != g_ddraw.hwnd) @@ -1236,6 +1246,11 @@ int WINAPI fake_SetDIBitsToDevice( { HWND hwnd = WindowFromDC(hdc); + if (g_ddraw.ref && g_ddraw.hwnd && hwnd == g_ddraw.hwnd && !g_ddraw.primary) + { + InterlockedExchange(&g_ddraw.render.screen_updated, TRUE); + } + char class_name[MAX_PATH] = { 0 }; if (g_ddraw.ref && g_ddraw.hwnd && hwnd && hwnd != g_ddraw.hwnd) @@ -1326,6 +1341,11 @@ int WINAPI fake_StretchDIBits( { HWND hwnd = WindowFromDC(hdc); + if (g_ddraw.ref && g_ddraw.hwnd && hwnd == g_ddraw.hwnd && !g_ddraw.primary) + { + InterlockedExchange(&g_ddraw.render.screen_updated, TRUE); + } + char class_name[MAX_PATH] = { 0 }; if (g_ddraw.ref && g_ddraw.hwnd && hwnd && hwnd != g_ddraw.hwnd)