1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-24 17:49:52 +01:00

only limit game ticks via unlock if there was never any blt or flip

This commit is contained in:
FunkyFr3sh 2018-11-28 13:40:29 +01:00
parent 8e75c40cc3
commit 14304ff330
2 changed files with 9 additions and 0 deletions

View File

@ -116,6 +116,7 @@ typedef struct IDirectDrawImpl
DWORD ticklength; DWORD ticklength;
BOOL altenter; BOOL altenter;
BOOL hidecursor; BOOL hidecursor;
BOOL limitTicksOnBltOrFlip;
} IDirectDrawImpl; } IDirectDrawImpl;

View File

@ -445,7 +445,10 @@ HRESULT __stdcall ddraw_surface_Blt(IDirectDrawSurfaceImpl *This, LPRECT lpDestR
} }
if (ddraw->ticklength > 0) if (ddraw->ticklength > 0)
{
ddraw->limitTicksOnBltOrFlip = TRUE;
LimitGameTicks(); LimitGameTicks();
}
} }
return DD_OK; return DD_OK;
@ -688,7 +691,10 @@ HRESULT __stdcall ddraw_surface_Flip(IDirectDrawSurfaceImpl *This, LPDIRECTDRAWS
*/ */
if (ddraw->ticklength > 0) if (ddraw->ticklength > 0)
{
ddraw->limitTicksOnBltOrFlip = TRUE;
LimitGameTicks(); LimitGameTicks();
}
} }
return DD_OK; return DD_OK;
@ -955,6 +961,8 @@ HRESULT __stdcall ddraw_surface_Unlock(IDirectDrawSurfaceImpl *This, LPVOID lpRe
InterlockedExchange(&ddraw->render.surfaceUpdated, TRUE); InterlockedExchange(&ddraw->render.surfaceUpdated, TRUE);
ReleaseSemaphore(ddraw->render.sem, 1, NULL); ReleaseSemaphore(ddraw->render.sem, 1, NULL);
if (ddraw->ticklength > 0 && !ddraw->limitTicksOnBltOrFlip)
LimitGameTicks();
} }
return DD_OK; return DD_OK;