diff options
Diffstat (limited to 'backends/graphics')
-rw-r--r-- | backends/graphics/openglsdl/openglsdl-graphics.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/backends/graphics/openglsdl/openglsdl-graphics.cpp b/backends/graphics/openglsdl/openglsdl-graphics.cpp index da51de7c9b..e4881a105e 100644 --- a/backends/graphics/openglsdl/openglsdl-graphics.cpp +++ b/backends/graphics/openglsdl/openglsdl-graphics.cpp @@ -433,6 +433,13 @@ bool OpenGLSdlGraphicsManager::handleScalerHotkeys(Common::KeyCode key) { int factor = _videoMode.scaleFactor; factor += (sdlKey == SDLK_MINUS || sdlKey == SDLK_KP_MINUS) ? -1 : +1; if (0 < factor && factor < 4) { + // Check if the desktop resolution has been detected + if (_desktopWidth > 0 && _desktopHeight > 0) + // If the new scale factor is too big, do not scale + if (_videoMode.screenWidth * factor > _desktopWidth || + _videoMode.screenHeight * factor > _desktopHeight) + return false; + beginGFXTransaction(); setScale(factor); endGFXTransaction(); |