[Scummvm-git-logs] scummvm master -> f7df393f45a67a4513132556424b8cb25f047956

neuromancer noreply at scummvm.org
Tue Nov 8 20:48:17 UTC 2022


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
f7df393f45 FREESCAPE: use frame limiter to ensure at most 60 fps


Commit: f7df393f45a67a4513132556424b8cb25f047956
    https://github.com/scummvm/scummvm/commit/f7df393f45a67a4513132556424b8cb25f047956
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-11-08T21:49:11+01:00

Commit Message:
FREESCAPE: use frame limiter to ensure at most 60 fps

Changed paths:
    engines/freescape/freescape.cpp
    engines/freescape/freescape.h


diff --git a/engines/freescape/freescape.cpp b/engines/freescape/freescape.cpp
index a3593ffe6d7..6c719049263 100644
--- a/engines/freescape/freescape.cpp
+++ b/engines/freescape/freescape.cpp
@@ -106,6 +106,7 @@ FreescapeEngine::FreescapeEngine(OSystem *syst, const ADGameDescription *gd)
 
 	_timerStarted = false;
 	_countdown = 0;
+	_frameLimiter = nullptr;
 }
 
 FreescapeEngine::~FreescapeEngine() {
@@ -395,6 +396,7 @@ void FreescapeEngine::processInput() {
 }
 
 Common::Error FreescapeEngine::run() {
+	_frameLimiter = new Graphics::FrameLimiter(g_system, ConfMan.getInt("engine_speed"));
 	// Initialize graphics
 	_gfx = createRenderer(_screenW, _screenH, _renderMode);
 	// The following error code will force return to launcher
@@ -454,8 +456,9 @@ Common::Error FreescapeEngine::run() {
 
 		processInput();
 		_gfx->flipBuffer();
+		_frameLimiter->delayBeforeSwap();
 		g_system->updateScreen();
-		g_system->delayMillis(10);
+		_frameLimiter->startFrame();
 		endGame = checkIfGameEnded();
 	}
 
diff --git a/engines/freescape/freescape.h b/engines/freescape/freescape.h
index 95d5df325c6..d444242b449 100644
--- a/engines/freescape/freescape.h
+++ b/engines/freescape/freescape.h
@@ -29,6 +29,7 @@
 #include "audio/decoders/wave.h"
 #include "audio/mixer.h"
 #include "audio/softsynth/pcspk.h"
+#include "graphics/framelimiter.h"
 
 #include "freescape/area.h"
 #include "freescape/gfx.h"
@@ -250,6 +251,7 @@ public:
 	// Rendering
 	int _screenW, _screenH;
 	Renderer *_gfx;
+	Graphics::FrameLimiter *_frameLimiter;
 	Common::RenderMode _renderMode;
 	ColorMap _colorMap;
 	void drawFrame();




More information about the Scummvm-git-logs mailing list