1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-25 01:57:47 +01:00

Reapply "don't emulate 60hz vblank on 60hz monitor"

This reverts commit d3f78bad950b97110d43f5cd1934958b4dd28529.
This commit is contained in:
FunkyFr3sh 2024-11-02 17:44:02 +01:00
parent 498e2f45e2
commit b23700a9b7
2 changed files with 10 additions and 1 deletions

View File

@ -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
{ {

View File

@ -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;
@ -1558,7 +1566,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())