[Scummvm-git-logs] scummvm master -> 0aed2452c659225ff1910610bbcd5ec73cd65eb9

dreammaster dreammaster at scummvm.org
Tue May 15 01:59:02 CEST 2018


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:
0aed2452c6 XEEN: Refresh screen at a higher rate for more responsive mouse


Commit: 0aed2452c659225ff1910610bbcd5ec73cd65eb9
    https://github.com/scummvm/scummvm/commit/0aed2452c659225ff1910610bbcd5ec73cd65eb9
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2018-05-14T19:58:58-04:00

Commit Message:
XEEN: Refresh screen at a higher rate for more responsive mouse

Changed paths:
    engines/xeen/events.cpp
    engines/xeen/events.h


diff --git a/engines/xeen/events.cpp b/engines/xeen/events.cpp
index 414ba6a..17306a3 100644
--- a/engines/xeen/events.cpp
+++ b/engines/xeen/events.cpp
@@ -31,8 +31,8 @@
 
 namespace Xeen {
 
-EventsManager::EventsManager(XeenEngine *vm) : _vm(vm), _playTime(0),
-		_frameCounter(0), _priorFrameCounterTime(0), _gameCounter(0),
+EventsManager::EventsManager(XeenEngine *vm) : _vm(vm), _playTime(0), _gameCounter(0),
+		_frameCounter(0), _priorFrameCounterTime(0), _priorScreenRefreshTime(0),
 		_mousePressed(false), _sprites("mouse.icn") {
 	Common::fill(&_gameCounters[0], &_gameCounters[6], 0);
 }
@@ -62,7 +62,15 @@ bool EventsManager::isCursorVisible() {
 
 void EventsManager::pollEvents() {
 	uint32 timer = g_system->getMillis();
+
+	if (timer >= (_priorScreenRefreshTime + SCREEN_UPDATE_TIME)) {
+		// Refresh the screen at a higher frame rate than the game's own frame rate
+		// to allow for more responsive mouse movement
+		_priorScreenRefreshTime = timer;
+		g_vm->_screen->update();
+	}
 	if (timer >= (_priorFrameCounterTime + GAME_FRAME_TIME)) {
+		// Time to build up next game frame
 		_priorFrameCounterTime = timer;
 		nextFrame();
 	}
diff --git a/engines/xeen/events.h b/engines/xeen/events.h
index 6775b95..9913b2f 100644
--- a/engines/xeen/events.h
+++ b/engines/xeen/events.h
@@ -32,6 +32,7 @@ namespace Xeen {
 
 #define GAME_FRAME_RATE (1000 / 50)
 #define GAME_FRAME_TIME 50
+#define SCREEN_UPDATE_TIME 10
 #define MAX_PENDING_EVENTS 5
 
 class XeenEngine;
@@ -61,6 +62,7 @@ private:
 	XeenEngine *_vm;
 	uint32 _frameCounter;
 	uint32 _priorFrameCounterTime;
+	uint32 _priorScreenRefreshTime;
 	uint32 _gameCounter;
 	uint32 _gameCounters[6];
 	uint32 _playTime;





More information about the Scummvm-git-logs mailing list