mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-11 23:32:02 +00:00
- removed I_MSTime entirely after checking how the wipe code actually works.
Since this calls I_WaitVBL, which resets the frame time, it was essentially just like calling a real-time timer anyway and nothing in it required a specific 0-timepoint. The same applies to the ZScript interface. All it needs is a millisecond-precise timer with no semantics attached.
This commit is contained in:
parent
2c65f08011
commit
96e9eadd97
4 changed files with 5 additions and 32 deletions
|
@ -945,7 +945,7 @@ void D_Display ()
|
|||
I_FreezeTime(true);
|
||||
screen->WipeEndScreen ();
|
||||
|
||||
wipestart = I_MSTime();
|
||||
wipestart = I_FPSTime();
|
||||
NetUpdate(); // send out any new accumulation
|
||||
|
||||
do
|
||||
|
@ -953,7 +953,7 @@ void D_Display ()
|
|||
do
|
||||
{
|
||||
I_WaitVBL(2);
|
||||
nowtime = I_MSTime();
|
||||
nowtime = I_FPSTime();
|
||||
diff = (nowtime - wipestart) * 40 / 1000; // Using 35 here feels too slow.
|
||||
} while (diff < 1);
|
||||
wipestart = nowtime;
|
||||
|
|
|
@ -615,7 +615,7 @@ void DObject::CheckIfSerialized () const
|
|||
|
||||
DEFINE_ACTION_FUNCTION(DObject, MSTime)
|
||||
{
|
||||
ACTION_RETURN_INT(I_MSTime());
|
||||
ACTION_RETURN_INT(I_FPSTime());
|
||||
}
|
||||
|
||||
void *DObject::ScriptVar(FName field, PType *type)
|
||||
|
|
|
@ -80,7 +80,7 @@ void I_SetFrameTime()
|
|||
// Must only be called once per frame/swapbuffers.
|
||||
//
|
||||
// Caches all timing information for the current rendered frame so that any
|
||||
// calls to I_FPSTime, I_MSTime, I_GetTime or I_GetTimeFrac will return
|
||||
// calls to I_GetTime or I_GetTimeFrac will return
|
||||
// the same time.
|
||||
|
||||
if (FreezeTime == 0)
|
||||
|
@ -120,36 +120,11 @@ int I_WaitForTic(int prevtic)
|
|||
return time;
|
||||
}
|
||||
|
||||
uint64_t I_NSTime()
|
||||
{
|
||||
if (FreezeTime == 0)
|
||||
{
|
||||
return CurrentFrameStartTime - FirstFrameStartTime;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (FirstFrameStartTime == 0)
|
||||
{
|
||||
FirstFrameStartTime = GetClockTimeNS();
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return GetClockTimeNS() - FirstFrameStartTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint64_t I_FPSTimeNS()
|
||||
{
|
||||
return GetClockTimeNS();
|
||||
}
|
||||
|
||||
unsigned int I_MSTime()
|
||||
{
|
||||
return NSToMS(I_NSTime());
|
||||
}
|
||||
|
||||
unsigned int I_FPSTime()
|
||||
{
|
||||
return NSToMS(I_FPSTimeNS());
|
||||
|
|
|
@ -14,15 +14,13 @@ double I_GetTimeFrac(uint32_t *ms);
|
|||
int I_WaitForTic(int);
|
||||
|
||||
// Freezes tic counting temporarily. While frozen, calls to I_GetTime()
|
||||
// will always return the same value. This does not affect I_MSTime().
|
||||
// will always return the same value.
|
||||
// You must also not call I_WaitForTic() while freezing time, since the
|
||||
// tic will never arrive (unless it's the current one).
|
||||
void I_FreezeTime(bool frozen);
|
||||
|
||||
// [RH] Returns millisecond-accurate time
|
||||
unsigned int I_MSTime();
|
||||
unsigned int I_FPSTime();
|
||||
|
||||
// Nanosecond-accurate time
|
||||
uint64_t I_NSTime();
|
||||
uint64_t I_FPSTimeNS();
|
||||
|
|
Loading…
Reference in a new issue