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

remove accuratetimers setting

This commit is contained in:
FunkyFr3sh 2023-08-01 13:47:27 +02:00
parent caf376801a
commit 02dcfd96b6
3 changed files with 10 additions and 17 deletions

View File

@ -141,7 +141,6 @@ typedef struct CNCDDRAW
int show_cursor_count; int show_cursor_count;
BOOL allow_wmactivate; BOOL allow_wmactivate;
BOOL opengl_core; BOOL opengl_core;
BOOL accurate_timers;
BOOL resizable; BOOL resizable;
BOOL toggle_borderless; BOOL toggle_borderless;
BOOL nonexclusive; BOOL nonexclusive;

View File

@ -33,7 +33,6 @@ void cfg_load()
g_ddraw->vsync = cfg_get_bool("vsync", FALSE); g_ddraw->vsync = cfg_get_bool("vsync", FALSE);
g_ddraw->noactivateapp = cfg_get_bool("noactivateapp", FALSE); g_ddraw->noactivateapp = cfg_get_bool("noactivateapp", FALSE);
g_ddraw->vhack = cfg_get_bool("vhack", FALSE); g_ddraw->vhack = cfg_get_bool("vhack", FALSE);
g_ddraw->accurate_timers = cfg_get_bool("accuratetimers", FALSE);
g_ddraw->resizable = cfg_get_bool("resizable", TRUE); g_ddraw->resizable = cfg_get_bool("resizable", TRUE);
g_ddraw->toggle_borderless = cfg_get_bool("toggle_borderless", FALSE); g_ddraw->toggle_borderless = cfg_get_bool("toggle_borderless", FALSE);
g_ddraw->nonexclusive = cfg_get_bool("nonexclusive", FALSE); g_ddraw->nonexclusive = cfg_get_bool("nonexclusive", FALSE);
@ -94,15 +93,13 @@ void cfg_load()
} }
/* can't fully set it up here due to missing g_ddraw->mode.dmDisplayFrequency */ /* can't fully set it up here due to missing g_ddraw->mode.dmDisplayFrequency */
if (g_ddraw->accurate_timers || g_ddraw->vsync) g_fpsl.htimer = CreateWaitableTimer(NULL, TRUE, NULL);
g_fpsl.htimer = CreateWaitableTimer(NULL, TRUE, NULL);
g_ddraw->maxgameticks = cfg_get_int("maxgameticks", 0); g_ddraw->maxgameticks = cfg_get_int("maxgameticks", 0);
if (g_ddraw->maxgameticks > 0 && g_ddraw->maxgameticks <= 1000) if (g_ddraw->maxgameticks > 0 && g_ddraw->maxgameticks <= 1000)
{ {
if (g_ddraw->accurate_timers) g_ddraw->ticks_limiter.htimer = CreateWaitableTimer(NULL, TRUE, NULL);
g_ddraw->ticks_limiter.htimer = CreateWaitableTimer(NULL, TRUE, NULL);
float len = 1000.0f / g_ddraw->maxgameticks; float len = 1000.0f / g_ddraw->maxgameticks;
g_ddraw->ticks_limiter.tick_length_ns = (LONGLONG)(len * 10000); g_ddraw->ticks_limiter.tick_length_ns = (LONGLONG)(len * 10000);
@ -112,8 +109,7 @@ void cfg_load()
if (g_ddraw->maxgameticks >= 0 || g_ddraw->maxgameticks == -2) if (g_ddraw->maxgameticks >= 0 || g_ddraw->maxgameticks == -2)
{ {
/* always using 60 fps for flip... */ /* always using 60 fps for flip... */
if (g_ddraw->accurate_timers) g_ddraw->flip_limiter.htimer = CreateWaitableTimer(NULL, TRUE, NULL);
g_ddraw->flip_limiter.htimer = CreateWaitableTimer(NULL, TRUE, NULL);
float flip_len = 1000.0f / 60; float flip_len = 1000.0f / 60;
g_ddraw->flip_limiter.tick_length_ns = (LONGLONG)(flip_len * 10000); g_ddraw->flip_limiter.tick_length_ns = (LONGLONG)(flip_len * 10000);
@ -351,7 +347,6 @@ static void cfg_create_ini()
"max_resolutions=0\n" "max_resolutions=0\n"
"limit_bltfast=false\n" "limit_bltfast=false\n"
"game_handles_close=false\n" "game_handles_close=false\n"
"accuratetimers=false\n"
"fixpitch=true\n" "fixpitch=true\n"
"fixnotresponding=false\n" "fixnotresponding=false\n"
"lock_surfaces=false\n" "lock_surfaces=false\n"

View File

@ -1030,21 +1030,20 @@ HRESULT dd_WaitForVerticalBlank(DWORD dwFlags, HANDLE hEvent)
if (g_ddraw->flip_limiter.htimer) if (g_ddraw->flip_limiter.htimer)
{ {
FILETIME last_flip_ft = { 0 }; FILETIME ft = { 0 };
GetSystemTimeAsFileTime(&last_flip_ft); GetSystemTimeAsFileTime(&ft);
if (!g_ddraw->flip_limiter.due_time.QuadPart) if (CompareFileTime((FILETIME*)&g_ddraw->flip_limiter.due_time, &ft) == -1)
{ {
memcpy(&g_ddraw->flip_limiter.due_time, &last_flip_ft, sizeof(LARGE_INTEGER)); memcpy(&g_ddraw->flip_limiter.due_time, &ft, sizeof(LARGE_INTEGER));
} }
else else
{ {
while (CompareFileTime((FILETIME*)&g_ddraw->flip_limiter.due_time, &last_flip_ft) == -1)
g_ddraw->flip_limiter.due_time.QuadPart += g_ddraw->flip_limiter.tick_length_ns;
SetWaitableTimer(g_ddraw->flip_limiter.htimer, &g_ddraw->flip_limiter.due_time, 0, NULL, NULL, FALSE);
WaitForSingleObject(g_ddraw->flip_limiter.htimer, g_ddraw->flip_limiter.tick_length * 2); WaitForSingleObject(g_ddraw->flip_limiter.htimer, g_ddraw->flip_limiter.tick_length * 2);
} }
g_ddraw->flip_limiter.due_time.QuadPart += g_ddraw->flip_limiter.tick_length_ns;
SetWaitableTimer(g_ddraw->flip_limiter.htimer, &g_ddraw->flip_limiter.due_time, 0, NULL, NULL, FALSE);
} }
else else
{ {