- Set frame-time as close to the buffer swap as possible, and calculate smoothratio for Duke/SW as late as possible.

* Micro-optimisation, but was getting a very occasional jitter in Duke 3D that seems to have gone with this.
This commit is contained in:
Mitchell Richters 2020-08-28 15:27:16 +10:00
parent 0c55c3983c
commit 97feb483ab
4 changed files with 4 additions and 5 deletions

View File

@ -2724,6 +2724,7 @@ void videoNextPage(void)
{
g_beforeSwapTime = I_msTimeF();
videoShowFrame(0);
I_SetFrameTime();
omdtims = mdtims;
mdtims = I_msTime();

View File

@ -941,7 +941,6 @@ void app_loop()
TickSubsystems();
twod->SetSize(screen->GetWidth(), screen->GetHeight());
twodpsp.SetSize(screen->GetWidth(), screen->GetHeight());
I_SetFrameTime();
handleevents();
updatePauseStatus();

View File

@ -353,8 +353,6 @@ bool GameTicker()
}
}
double const smoothRatio = playrunning() ? I_GetTimeFrac() * MaxSmoothRatio : MaxSmoothRatio;
gameupdatetime.Unclock();
if (ps[myconnectindex].gm & (MODE_EOL | MODE_RESTART))
@ -370,6 +368,7 @@ bool GameTicker()
drawtime.Reset();
drawtime.Clock();
S_Update();
double const smoothRatio = playrunning() ? I_GetTimeFrac() * MaxSmoothRatio : MaxSmoothRatio;
displayrooms(screenpeek, smoothRatio);
displayrest(smoothRatio);
drawtime.Unclock();

View File

@ -788,11 +788,11 @@ void GameTicker(void)
MoveTicker();
}
smoothratio = I_GetTimeFrac() * MaxSmoothRatio;
// Get input again to update q16ang/q16horiz.
if (!PedanticMode)
getinput(&loc, TRUE);
smoothratio = I_GetTimeFrac() * MaxSmoothRatio;
}
drawscreen(Player + screenpeek, smoothratio);