diff options
Diffstat (limited to 'backends/graphics/surfacesdl/surfacesdl-graphics.cpp')
-rw-r--r-- | backends/graphics/surfacesdl/surfacesdl-graphics.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp index 304848ed4c..e14471b067 100644 --- a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp +++ b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp @@ -674,12 +674,8 @@ bool SurfaceSdlGraphicsManager::setGraphicsMode(int mode) { return true; } -void SurfaceSdlGraphicsManager::setGraphicsModeIntern() { - Common::StackLock lock(_graphicsMutex); +ScalerProc *SurfaceSdlGraphicsManager::getGraphicsScalerProc(int mode) const { ScalerProc *newScalerProc = 0; - - updateShader(); - switch (_videoMode.mode) { case GFX_NORMAL: newScalerProc = Normal1x; @@ -722,8 +718,19 @@ void SurfaceSdlGraphicsManager::setGraphicsModeIntern() { newScalerProc = DotMatrix; break; #endif // USE_SCALERS + } - default: + return newScalerProc; +} + +void SurfaceSdlGraphicsManager::setGraphicsModeIntern() { + Common::StackLock lock(_graphicsMutex); + + updateShader(); + + ScalerProc *newScalerProc = getGraphicsScalerProc(_videoMode.mode); + + if (!newScalerProc) { error("Unknown gfx mode %d", _videoMode.mode); } |