[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