diff options
-rw-r--r-- | src/client.cpp | 37 | ||||
-rw-r--r-- | src/graphicsmanager.cpp | 40 | ||||
-rw-r--r-- | src/graphicsmanager.h | 2 |
3 files changed, 43 insertions, 36 deletions
diff --git a/src/client.cpp b/src/client.cpp index d3a11b369..05860592b 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -514,44 +514,9 @@ void Client::gameInit() runCounters = config.getBoolValue("packetcounters"); - const int width = config.getIntValue("screenwidth"); - const int height = config.getIntValue("screenheight"); - const int bpp = 0; - const bool fullscreen = config.getBoolValue("screen"); - const bool hwaccel = config.getBoolValue("hwaccel"); - const bool enableResize = config.getBoolValue("enableresize"); - const bool noFrame = config.getBoolValue("noframe"); - applyVSync(); - // Try to set the desired video mode - if (!mainGraphics->setVideoMode(width, height, bpp, - fullscreen, hwaccel, enableResize, noFrame)) - { - logger->log(strprintf("Couldn't set %dx%dx%d video mode: %s", - width, height, bpp, SDL_GetError())); - - const int oldWidth = config.getValueInt("oldscreenwidth", -1); - const int oldHeight = config.getValueInt("oldscreenheight", -1); - const int oldFullscreen = config.getValueInt("oldscreen", -1); - if (oldWidth != -1 && oldHeight != -1 && oldFullscreen != -1) - { - config.deleteKey("oldscreenwidth"); - config.deleteKey("oldscreenheight"); - config.deleteKey("oldscreen"); - - config.setValueInt("screenwidth", oldWidth); - config.setValueInt("screenheight", oldHeight); - config.setValue("screen", oldFullscreen == 1); - if (!mainGraphics->setVideoMode(oldWidth, oldHeight, bpp, - oldFullscreen, hwaccel, enableResize, noFrame)) - { - logger->safeError(strprintf("Couldn't restore %dx%dx%d " - "video mode: %s", oldWidth, oldHeight, bpp, - SDL_GetError())); - } - } - } + graphicsManager.setVideoMode(); applyGrabMode(); applyGamma(); diff --git a/src/graphicsmanager.cpp b/src/graphicsmanager.cpp index 5beede539..83439b03e 100644 --- a/src/graphicsmanager.cpp +++ b/src/graphicsmanager.cpp @@ -142,3 +142,43 @@ void GraphicsManager::logString(const char *format, int num) logger->log(format, str); #endif } + +void GraphicsManager::setVideoMode() +{ + const int width = config.getIntValue("screenwidth"); + const int height = config.getIntValue("screenheight"); + const int bpp = 0; + const bool fullscreen = config.getBoolValue("screen"); + const bool hwaccel = config.getBoolValue("hwaccel"); + const bool enableResize = config.getBoolValue("enableresize"); + const bool noFrame = config.getBoolValue("noframe"); + + // Try to set the desired video mode + if (!mainGraphics->setVideoMode(width, height, bpp, + fullscreen, hwaccel, enableResize, noFrame)) + { + logger->log(strprintf("Couldn't set %dx%dx%d video mode: %s", + width, height, bpp, SDL_GetError())); + + const int oldWidth = config.getValueInt("oldscreenwidth", -1); + const int oldHeight = config.getValueInt("oldscreenheight", -1); + const int oldFullscreen = config.getValueInt("oldscreen", -1); + if (oldWidth != -1 && oldHeight != -1 && oldFullscreen != -1) + { + config.deleteKey("oldscreenwidth"); + config.deleteKey("oldscreenheight"); + config.deleteKey("oldscreen"); + + config.setValueInt("screenwidth", oldWidth); + config.setValueInt("screenheight", oldHeight); + config.setValue("screen", oldFullscreen == 1); + if (!mainGraphics->setVideoMode(oldWidth, oldHeight, bpp, + oldFullscreen, hwaccel, enableResize, noFrame)) + { + logger->safeError(strprintf("Couldn't restore %dx%dx%d " + "video mode: %s", oldWidth, oldHeight, bpp, + SDL_GetError())); + } + } + } +}
\ No newline at end of file diff --git a/src/graphicsmanager.h b/src/graphicsmanager.h index bd5288ed7..95657a2e8 100644 --- a/src/graphicsmanager.h +++ b/src/graphicsmanager.h @@ -43,6 +43,8 @@ class GraphicsManager void logString(const char *format, int num); + void setVideoMode(); + private: std::set<std::string> mExtensions; }; |