aboutsummaryrefslogtreecommitdiff
path: root/graphics/macgui/macwindowmanager.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2019-10-04 22:32:24 +0200
committerEugene Sandulenko2019-10-04 22:32:24 +0200
commitc17800cfc4f09cebcfb90aea07f94c8f107b3e9d (patch)
treea83d7befbd266cb2270802e37e86d9d7a0816646 /graphics/macgui/macwindowmanager.cpp
parent15ac5da3a3a080c084bc72e376c68a88797a4f06 (diff)
downloadscummvm-rg350-c17800cfc4f09cebcfb90aea07f94c8f107b3e9d.tar.gz
scummvm-rg350-c17800cfc4f09cebcfb90aea07f94c8f107b3e9d.tar.bz2
scummvm-rg350-c17800cfc4f09cebcfb90aea07f94c8f107b3e9d.zip
GRAPHICS: MACGUI: Add possibility to setup engine redraw callback
Diffstat (limited to 'graphics/macgui/macwindowmanager.cpp')
-rw-r--r--graphics/macgui/macwindowmanager.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index 65a5da5322..1e8a4bac77 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -160,8 +160,10 @@ MacWindowManager::MacWindowManager() {
_menuDelay = 0;
_menuTimerActive = false;
- _engine = nullptr;
+ _engineP = nullptr;
+ _engineR = nullptr;
_pauseEngineCallback = nullptr;
+ _redrawEngineCallback = nullptr;
_colorBlack = 0;
_colorWhite = 2;
@@ -319,8 +321,13 @@ void MacWindowManager::draw() {
removeMarked();
- if (_fullRefresh && !(_mode & kWMModeNoDesktop))
- drawDesktop();
+ if (_fullRefresh) {
+ if (!(_mode & kWMModeNoDesktop))
+ drawDesktop();
+
+ if (_redrawEngineCallback != nullptr)
+ _redrawEngineCallback(_engineR);
+ }
for (Common::List<BaseMacWindow *>::const_iterator it = _windowStack.begin(); it != _windowStack.end(); it++) {
BaseMacWindow *w = *it;
@@ -525,14 +532,19 @@ void MacWindowManager::passPalette(const byte *pal, uint size) {
}
void MacWindowManager::pauseEngine(bool pause) {
- if (_engine && _pauseEngineCallback) {
- _pauseEngineCallback(_engine, pause);
+ if (_engineP && _pauseEngineCallback) {
+ _pauseEngineCallback(_engineP, pause);
}
}
void MacWindowManager::setEnginePauseCallback(void *engine, void (*pauseCallback)(void *, bool)) {
- _engine = engine;
+ _engineP = engine;
_pauseEngineCallback = pauseCallback;
}
+void MacWindowManager::setEngineRedrawCallback(void *engine, void (*redrawCallback)(void *)) {
+ _engineR = engine;
+ _redrawEngineCallback = redrawCallback;
+}
+
} // End of namespace Graphics