1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-26 02:19:24 +01:00

optional wait_for_vblank on flip

This commit is contained in:
FunkyFr3sh 2021-02-22 09:09:21 +01:00
parent 2784f83ddc
commit a6af34fbff
3 changed files with 18 additions and 15 deletions

View File

@ -53,7 +53,7 @@ typedef struct fps_limiter
extern fps_limiter g_fpsl; extern fps_limiter g_fpsl;
void fpsl_init(); void fpsl_init();
BOOL fpsl_wait_for_vblank(); BOOL fpsl_wait_for_vblank(BOOL open_adapter);
BOOL fpsl_dwm_flush(); BOOL fpsl_dwm_flush();
BOOL fpsl_dwm_is_enabled(); BOOL fpsl_dwm_is_enabled();
void fpsl_frame_start(); void fpsl_frame_start();

View File

@ -706,7 +706,7 @@ HRESULT dd_WaitForVerticalBlank(DWORD dwFlags, HANDLE h)
{ {
if (g_ddraw->maxgameticks == -2) if (g_ddraw->maxgameticks == -2)
{ {
if (fpsl_dwm_flush()) if (fpsl_dwm_flush() || fpsl_wait_for_vblank(FALSE))
return DD_OK; return DD_OK;
} }

View File

@ -76,9 +76,11 @@ void fpsl_init()
g_fpsl.initialized = TRUE; g_fpsl.initialized = TRUE;
} }
BOOL fpsl_wait_for_vblank() BOOL fpsl_wait_for_vblank(BOOL open_adapter)
{ {
if (g_fpsl.initialized && g_fpsl.D3DKMTOpenAdapterFromHdc && !g_fpsl.got_adapter) if (g_fpsl.initialized)
{
if (open_adapter && g_fpsl.D3DKMTOpenAdapterFromHdc && !g_fpsl.got_adapter)
{ {
g_fpsl.adapter.hDc = g_ddraw->render.hdc; g_fpsl.adapter.hDc = g_ddraw->render.hdc;
@ -93,6 +95,7 @@ BOOL fpsl_wait_for_vblank()
{ {
return g_fpsl.D3DKMTWaitForVerticalBlankEvent(&g_fpsl.vblank_event) == 0; return g_fpsl.D3DKMTWaitForVerticalBlankEvent(&g_fpsl.vblank_event) == 0;
} }
}
return FALSE; return FALSE;
} }
@ -122,7 +125,7 @@ void fpsl_frame_end()
{ {
if (g_ddraw->render.maxfps < 0 || g_ddraw->vsync) if (g_ddraw->render.maxfps < 0 || g_ddraw->vsync)
{ {
if (fpsl_dwm_flush() || fpsl_wait_for_vblank()) if (fpsl_dwm_flush() || fpsl_wait_for_vblank(TRUE))
return; return;
} }