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:
parent
8e75c40cc3
commit
14304ff330
@ -116,6 +116,7 @@ typedef struct IDirectDrawImpl
|
|||||||
DWORD ticklength;
|
DWORD ticklength;
|
||||||
BOOL altenter;
|
BOOL altenter;
|
||||||
BOOL hidecursor;
|
BOOL hidecursor;
|
||||||
|
BOOL limitTicksOnBltOrFlip;
|
||||||
|
|
||||||
} IDirectDrawImpl;
|
} IDirectDrawImpl;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user