use waitable timers for better precision (limit game ticks / flip wait)

This commit is contained in:
FunkyFr3sh 2018-11-29 17:45:10 +01:00
parent 093486ec7f
commit 435854456b
5 changed files with 104 additions and 28 deletions

View file

@ -47,6 +47,15 @@ struct IDirectDrawSurfaceImpl;
extern struct IDirectDrawImpl *ddraw;
typedef struct SpeedLimiter
{
DWORD ticklength;
LONGLONG tickLengthNs;
HANDLE hTimer;
LARGE_INTEGER dueTime;
BOOL useBltOrFlip;
} SpeedLimiter;
typedef struct IDirectDrawImpl
{
struct IDirectDrawImplVtbl *lpVtbl;
@ -113,10 +122,10 @@ typedef struct IDirectDrawImpl
char shader[MAX_PATH];
BOOL wine;
LONG minimized;
DWORD ticklength;
BOOL altenter;
BOOL hidecursor;
BOOL limitTicksOnBltOrFlip;
SpeedLimiter ticksLimiter;
SpeedLimiter flipLimiter;
} IDirectDrawImpl;