[Scummvm-git-logs] scummvm master -> e39ad8730d5a9fe80ec44b3ea8b5fc87f7010735
aquadran
noreply at scummvm.org
Wed Jul 23 22:12:01 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
e39ad8730d WINTERMUTE: Replace loop delay with FrameLimiter
Commit: e39ad8730d5a9fe80ec44b3ea8b5fc87f7010735
https://github.com/scummvm/scummvm/commit/e39ad8730d5a9fe80ec44b3ea8b5fc87f7010735
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-07-24T00:11:56+02:00
Commit Message:
WINTERMUTE: Replace loop delay with FrameLimiter
Changed paths:
engines/wintermute/wintermute.cpp
diff --git a/engines/wintermute/wintermute.cpp b/engines/wintermute/wintermute.cpp
index aa239d09ecd..9f436a4d5c9 100644
--- a/engines/wintermute/wintermute.cpp
+++ b/engines/wintermute/wintermute.cpp
@@ -30,6 +30,8 @@
#include "common/tokenizer.h"
#include "common/translation.h"
+#include "graphics/framelimiter.h"
+
#include "engines/wintermute/ad/ad_game.h"
#include "engines/wintermute/wintermute.h"
#include "engines/wintermute/debugger.h"
@@ -280,13 +282,11 @@ int WintermuteEngine::init() {
int WintermuteEngine::messageLoop() {
bool done = false;
+ uint32 maxFPS = ConfMan.getInt("engine_speed");
+ if (maxFPS == 0)
+ maxFPS = 60;
+ Graphics::FrameLimiter limiter(g_system, maxFPS);
- uint32 prevTime = _system->getMillis();
- uint32 time = _system->getMillis();
- uint32 diff = 0;
-
- const uint32 maxFPS = 60;
- const uint32 frameTime = 2 * (uint32)((1.0 / maxFPS) * 1000);
while (!done) {
if (!_game) {
break;
@@ -303,20 +303,15 @@ int WintermuteEngine::messageLoop() {
_game->displayDebugInfo();
- time = _system->getMillis();
- diff = time - prevTime;
- if (frameTime > diff) { // Avoid overflows
- _system->delayMillis(frameTime - diff);
- }
-
// ***** flip
+ limiter.delayBeforeSwap();
if (!_game->getSuspendedRendering()) {
_game->_renderer->flip();
}
+ limiter.startFrame();
if (_game->getIsLoading()) {
_game->loadGame(_game->_scheduledLoadSlot);
}
- prevTime = time;
}
if (shouldQuit()) {
break;
More information about the Scummvm-git-logs
mailing list