mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
Address issue where timers will no longer update after several hours of runtime
git-svn-id: https://svn.eduke32.com/eduke32@6543 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
948fe80304
commit
f97aee59c8
4 changed files with 14 additions and 21 deletions
|
@ -14,8 +14,10 @@ extern BOOL CheckWinVersion(void);
|
||||||
extern void win_allowtaskswitching(int32_t onf);
|
extern void win_allowtaskswitching(int32_t onf);
|
||||||
extern int32_t win_checkinstance(void);
|
extern int32_t win_checkinstance(void);
|
||||||
|
|
||||||
|
#if defined(RENDERTYPEWIN) || SDL_MAJOR_VERSION==1
|
||||||
extern int32_t win_inittimer(void);
|
extern int32_t win_inittimer(void);
|
||||||
extern uint64_t win_getu64ticks(void);
|
extern uint64_t win_getu64ticks(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
extern void win_open(void);
|
extern void win_open(void);
|
||||||
extern void win_init(void);
|
extern void win_init(void);
|
||||||
|
|
|
@ -7160,8 +7160,6 @@ static int32_t loadtables(void)
|
||||||
|
|
||||||
initksqrt();
|
initksqrt();
|
||||||
|
|
||||||
initdivtables();
|
|
||||||
|
|
||||||
for (i=0; i<2048; i++)
|
for (i=0; i<2048; i++)
|
||||||
reciptable[i] = divscale30(2048, i+2048);
|
reciptable[i] = divscale30(2048, i+2048);
|
||||||
|
|
||||||
|
@ -7600,8 +7598,8 @@ static uspritetype tsprite_s[MAXSPRITESONSCREEN];
|
||||||
|
|
||||||
int32_t preinitengine(void)
|
int32_t preinitengine(void)
|
||||||
{
|
{
|
||||||
|
initdivtables();
|
||||||
if (initsystem()) Bexit(9);
|
if (initsystem()) Bexit(9);
|
||||||
|
|
||||||
makeasmwriteable();
|
makeasmwriteable();
|
||||||
|
|
||||||
#ifdef DYNALLOC_ARRAYS
|
#ifdef DYNALLOC_ARRAYS
|
||||||
|
|
|
@ -1005,12 +1005,10 @@ int32_t inittimer(int32_t tickspersecond)
|
||||||
|
|
||||||
// initprintf("Initializing timer\n");
|
// initprintf("Initializing timer\n");
|
||||||
|
|
||||||
#ifdef _WIN32
|
#if defined(_WIN32) && SDL_MAJOR_VERSION==1
|
||||||
{
|
int32_t t = win_inittimer();
|
||||||
int32_t t = win_inittimer();
|
if (t < 0)
|
||||||
if (t < 0)
|
return t;
|
||||||
return t;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
timerfreq = 1000;
|
timerfreq = 1000;
|
||||||
|
@ -1029,14 +1027,10 @@ int32_t inittimer(int32_t tickspersecond)
|
||||||
//
|
//
|
||||||
void uninittimer(void)
|
void uninittimer(void)
|
||||||
{
|
{
|
||||||
if (!timerfreq) return;
|
|
||||||
|
|
||||||
timerfreq=0;
|
timerfreq=0;
|
||||||
|
#if defined(_WIN32) && SDL_MAJOR_VERSION==1
|
||||||
#ifdef _WIN32
|
|
||||||
win_timerfreq=0;
|
win_timerfreq=0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
msperu64tick = 0;
|
msperu64tick = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1045,12 +1039,10 @@ void uninittimer(void)
|
||||||
//
|
//
|
||||||
void sampletimer(void)
|
void sampletimer(void)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
|
||||||
int32_t n;
|
|
||||||
|
|
||||||
if (!timerfreq) return;
|
if (!timerfreq) return;
|
||||||
i = SDL_GetTicks();
|
|
||||||
n = tabledivide32(i * timerticspersec, timerfreq) - timerlastsample;
|
int64_t i = SDL_GetTicks();
|
||||||
|
int32_t n = tabledivide64(i * timerticspersec, timerfreq) - timerlastsample;
|
||||||
|
|
||||||
if (n <= 0) return;
|
if (n <= 0) return;
|
||||||
|
|
||||||
|
@ -1073,7 +1065,7 @@ uint32_t getticks(void)
|
||||||
|
|
||||||
// high-resolution timers for profiling
|
// high-resolution timers for profiling
|
||||||
|
|
||||||
#if SDL_MAJOR_VERSION!=1
|
#if SDL_MAJOR_VERSION != 1
|
||||||
uint64_t getu64ticks(void)
|
uint64_t getu64ticks(void)
|
||||||
{
|
{
|
||||||
return SDL_GetPerformanceCounter();
|
return SDL_GetPerformanceCounter();
|
||||||
|
|
|
@ -150,6 +150,7 @@ int32_t win_checkinstance(void)
|
||||||
//
|
//
|
||||||
// high-resolution timers for profiling
|
// high-resolution timers for profiling
|
||||||
//
|
//
|
||||||
|
#if defined(RENDERTYPEWIN) || SDL_MAJOR_VERSION==1
|
||||||
int32_t win_inittimer(void)
|
int32_t win_inittimer(void)
|
||||||
{
|
{
|
||||||
int64_t t;
|
int64_t t;
|
||||||
|
@ -176,7 +177,7 @@ uint64_t win_getu64ticks(void)
|
||||||
QueryPerformanceCounter((LARGE_INTEGER *)&i);
|
QueryPerformanceCounter((LARGE_INTEGER *)&i);
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static void ToggleDesktopComposition(BOOL compEnable)
|
static void ToggleDesktopComposition(BOOL compEnable)
|
||||||
|
|
Loading…
Reference in a new issue