diff --git a/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.cpp b/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.cpp index 2105bd84d82..a087c957054 100644 --- a/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.cpp +++ b/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.cpp @@ -88,7 +88,8 @@ ScalerProc *LinuxmotoSdlGraphicsManager::getGraphicsScalerProc(int mode) const { void LinuxmotoSdlGraphicsManager::initSize(uint w, uint h, const Graphics::PixelFormat *format) { assert(_transactionMode == kTransactionActive); - _gameScreenShakeOffset = 0; + _gameScreenShakeXOffset = 0; + _gameScreenShakeYOffset = 0; #ifdef USE_RGB_COLOR // Avoid redundant format changes @@ -197,7 +198,7 @@ void LinuxmotoSdlGraphicsManager::drawMouse() { // scaling, shake position and aspect ratio correction manually. if (!_overlayVisible) { - dst.y += _currentShakePos; + dst.y += _currentShakeYOffset; } if (_videoMode.aspectRatioCorrection && !_overlayVisible) @@ -249,16 +250,16 @@ void LinuxmotoSdlGraphicsManager::internUpdateScreen() { #endif // If the shake position changed, fill the dirty area with blackness - if (_currentShakePos != _gameScreenShakeOffset || - (_cursorNeedsRedraw && _mouseBackup.y <= _currentShakePos)) { - SDL_Rect blackrect = {0, 0, (Uint16)(_videoMode.screenWidth * _videoMode.scaleFactor), (Uint16)(_gameScreenShakeOffset * _videoMode.scaleFactor)}; + if (_currentShakeYOffset != _gameScreenShakeYOffset || + (_cursorNeedsRedraw && _mouseBackup.y <= _currentShakeYOffset)) { + SDL_Rect blackrect = {0, 0, (Uint16)(_videoMode.screenWidth * _videoMode.scaleFactor), (Uint16)(_gameScreenShakeYOffset * _videoMode.scaleFactor)}; if (_videoMode.aspectRatioCorrection && !_overlayVisible) blackrect.h = real2Aspect(blackrect.h - 1) + 1; SDL_FillRect(_hwscreen, &blackrect, 0); - _currentShakePos = _gameScreenShakeOffset; + _currentShakeYOffset = _gameScreenShakeYOffset; _forceFull = true; } @@ -332,7 +333,7 @@ void LinuxmotoSdlGraphicsManager::internUpdateScreen() { dstPitch = _hwscreen->pitch; for (r = _dirtyRectList; r != lastRect; ++r) { - int dst_y = r->y + _currentShakePos; + int dst_y = r->y + _currentShakeYOffset; int dst_h = 0; int dst_w = r->w; int orig_dst_y = 0;