1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 22:14:49 +01:00

don't emulate 60hz vblank on 60hz monitor

This commit is contained in:
FunkyFr3sh 2024-10-02 16:47:17 +02:00
parent f9fa3b0fa2
commit 95a5f7231e
2 changed files with 10 additions and 1 deletions
inc
src

@ -176,6 +176,7 @@ typedef struct CNCDDRAW
DWORD gui_thread_id; DWORD gui_thread_id;
BOOL show_driver_warning; BOOL show_driver_warning;
BOOL windowed_hack; BOOL windowed_hack;
BOOL wait_for_real_vblank;
struct struct
{ {

@ -701,6 +701,14 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
g_config.fullscreen = FALSE; g_config.fullscreen = FALSE;
} }
} }
else if (g_config.maxgameticks == 0)
{
// no need to emulate 60hz vblank if we got a 60hz monitor
if (g_ddraw.mode.dmDisplayFrequency == 60 || g_ddraw.mode.dmDisplayFrequency == 59)
{
g_ddraw.wait_for_real_vblank = TRUE;
}
}
} }
BOOL zooming = g_ddraw.zoom.enabled; BOOL zooming = g_ddraw.zoom.enabled;
@ -1544,7 +1552,7 @@ HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags)
HRESULT dd_WaitForVerticalBlank(DWORD dwFlags, HANDLE hEvent) HRESULT dd_WaitForVerticalBlank(DWORD dwFlags, HANDLE hEvent)
{ {
if (g_config.maxgameticks == -2) if (g_config.maxgameticks == -2 || g_ddraw.wait_for_real_vblank)
{ {
/* Workaround for DwmFlush() freeze (e.g. slow alt+tab) issue on windows 7 SP1 */ /* Workaround for DwmFlush() freeze (e.g. slow alt+tab) issue on windows 7 SP1 */
if (g_ddraw.renderer == ogl_render_main && !IsWine() && !IsWindows8OrGreater()) if (g_ddraw.renderer == ogl_render_main && !IsWine() && !IsWindows8OrGreater())