aboutsummaryrefslogtreecommitdiff
path: root/backends/graphics/dinguxsdl
diff options
context:
space:
mode:
authorCameron Cawley2019-07-27 14:40:50 +0100
committerFilippos Karapetis2019-08-15 02:01:21 +0300
commit1feb86ee97eaaaf326918d4945cdaa0a2f61d33f (patch)
treeee051b4732b9d65bb57940af07e3d4cf91aba7f5 /backends/graphics/dinguxsdl
parent0bf74e590d6da396ae10793191fad92f4424ae6d (diff)
downloadscummvm-rg350-1feb86ee97eaaaf326918d4945cdaa0a2f61d33f.tar.gz
scummvm-rg350-1feb86ee97eaaaf326918d4945cdaa0a2f61d33f.tar.bz2
scummvm-rg350-1feb86ee97eaaaf326918d4945cdaa0a2f61d33f.zip
BACKENDS: Handle screen shaking in WindowedGraphicsManager
Diffstat (limited to 'backends/graphics/dinguxsdl')
-rw-r--r--backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp b/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp
index 0b0d9a3a7a..a7dbed18c8 100644
--- a/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp
+++ b/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp
@@ -86,6 +86,8 @@ ScalerProc *DINGUXSdlGraphicsManager::getGraphicsScalerProc(int mode) const {
void DINGUXSdlGraphicsManager::initSize(uint w, uint h, const Graphics::PixelFormat *format) {
assert(_transactionMode == kTransactionActive);
+ _gameScreenShakeOffset = 0;
+
#ifdef USE_RGB_COLOR
// Avoid redundant format changes
Graphics::PixelFormat newFormat;
@@ -216,16 +218,16 @@ void DINGUXSdlGraphicsManager::internUpdateScreen() {
#endif
// If the shake position changed, fill the dirty area with blackness
- if (_currentShakePos != _newShakePos ||
+ if (_currentShakePos != _gameScreenShakeOffset ||
(_cursorNeedsRedraw && _mouseBackup.y <= _currentShakePos)) {
- SDL_Rect blackrect = {0, 0, (Uint16)(_videoMode.screenWidth * _videoMode.scaleFactor), (Uint16)(_newShakePos * _videoMode.scaleFactor)};
+ SDL_Rect blackrect = {0, 0, (Uint16)(_videoMode.screenWidth * _videoMode.scaleFactor), (Uint16)(_gameScreenShakeOffset * _videoMode.scaleFactor)};
if (_videoMode.aspectRatioCorrection && !_overlayVisible)
blackrect.h = real2Aspect(blackrect.h - 1) + 1;
SDL_FillRect(_hwScreen, &blackrect, 0);
- _currentShakePos = _newShakePos;
+ _currentShakePos = _gameScreenShakeOffset;
_forceRedraw = true;
}