1
0
mirror of https://github.com/rwengine/openrw.git synced 2024-11-25 11:52:40 +01:00

Fixed: accumulated time during pauses, caused terrible framerate

This commit is contained in:
husho 2018-05-26 19:15:56 +03:00
parent b7d657b9ab
commit 74df3c7e38

View File

@ -423,14 +423,16 @@ int RWGame::run() {
chrono::duration<float>(currentFrame - lastFrame).count(); chrono::duration<float>(currentFrame - lastFrame).count();
lastFrame = currentFrame; lastFrame = currentFrame;
if (!world->isPaused()) {
accumulatedTime += frameTime;
// Clamp frameTime, so we won't freeze completely // Clamp frameTime, so we won't freeze completely
if (frameTime > 0.1f) { if (frameTime > 0.1f) {
frameTime = 0.1f; frameTime = 0.1f;
} }
accumulatedTime += frameTime; auto deltaTimeWithTimeScale =
deltaTime * world->state->basic.timeScale;
auto deltaTimeWithTimeScale = deltaTime * world->state->basic.timeScale;
RW_PROFILE_BEGIN("Update"); RW_PROFILE_BEGIN("Update");
while (accumulatedTime >= deltaTime && !world->isPaused()) { while (accumulatedTime >= deltaTime && !world->isPaused()) {
@ -456,6 +458,7 @@ int RWGame::run() {
accumulatedTime -= deltaTime; accumulatedTime -= deltaTime;
} }
RW_PROFILE_END(); RW_PROFILE_END();
}
RW_PROFILE_BEGIN("Render"); RW_PROFILE_BEGIN("Render");
RW_PROFILE_BEGIN("engine"); RW_PROFILE_BEGIN("engine");