diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-05-27 21:47:06 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-05-27 21:47:06 +0300 |
commit | 0c6cc36b806f1ef2cb75b650ed93210d446e3af6 (patch) | |
tree | c12988de642db84d6cf6108668310536390fdc5e /src/client.cpp | |
parent | a1b59326cb4cd70bb2347e9776965a2a0d4895fd (diff) | |
download | mv-0c6cc36b806f1ef2cb75b650ed93210d446e3af6.tar.gz mv-0c6cc36b806f1ef2cb75b650ed93210d446e3af6.tar.bz2 mv-0c6cc36b806f1ef2cb75b650ed93210d446e3af6.tar.xz mv-0c6cc36b806f1ef2cb75b650ed93210d446e3af6.zip |
Refactor a bit video system initialisation.
Diffstat (limited to 'src/client.cpp')
-rw-r--r-- | src/client.cpp | 85 |
1 files changed, 39 insertions, 46 deletions
diff --git a/src/client.cpp b/src/client.cpp index 2af0eb84d..86f0d2f20 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -175,7 +175,6 @@ KeyboardConfig keyboard; UserPalette *userPalette = nullptr; SoundManager soundManager; -RenderType openGLMode = RENDER_SOFTWARE; volatile bool runCounters; bool isSafeMode = false; @@ -364,35 +363,30 @@ void Client::gameInit() #ifdef WIN32 extractDataDir(); mountDataDir(); +#endif + setIcon(); checkConfigVersion(); logVars(); Cpu::detect(); +#if defined(USE_OPENGL) +#if !defined(ANDROID) && !defined(__APPLE__) && !defined(__native_client__) + if (!mOptions.safeMode && mOptions.test.empty() + && !config.getBoolValue("videodetected")) + { + graphicsManager.detectVideoSettings(); + } +#endif +#endif + updateEnv(); initGraphics(); -#else - setIcon(); - checkConfigVersion(); - logVars(); - Cpu::detect(); - initGraphics(); + +#ifndef WIN32 extractDataDir(); mountDataDir(); #endif - if (mOptions.dataPath.empty() - && !branding.getStringValue("dataPath").empty()) - { - if (isRealPath(branding.getStringValue("dataPath"))) - { - mOptions.dataPath = branding.getStringValue("dataPath"); - } - else - { - mOptions.dataPath = branding.getDirectory().append(dirSeparator) - + branding.getStringValue("dataPath"); - } - mOptions.skipUpdate = true; - } + updateDataPath(); // Add the main data directories to our PhysicsFS search path if (!mOptions.dataPath.empty()) @@ -541,18 +535,8 @@ void Client::createWindows() didYouKnowWindow->postInit(); } -void Client::initGraphics() +void Client::updateEnv() { -#if defined(USE_OPENGL) -#if !defined(ANDROID) && !defined(__APPLE__) && !defined(__native_client__) - if (!mOptions.safeMode && mOptions.test.empty() - && !config.getBoolValue("videodetected")) - { - graphicsManager.detectVideoSettings(); - } -#endif -#endif - #if defined(WIN32) || defined(__APPLE__) if (config.getBoolValue("centerwindow")) setEnv("SDL_VIDEO_CENTERED", "1"); @@ -564,21 +548,30 @@ void Client::initGraphics() setEnv("SDL_VIDEO_ALLOW_SCREENSAVER", "1"); else setEnv("SDL_VIDEO_ALLOW_SCREENSAVER", "0"); +} + +void Client::updateDataPath() +{ + if (mOptions.dataPath.empty() + && !branding.getStringValue("dataPath").empty()) + { + if (isRealPath(branding.getStringValue("dataPath"))) + { + mOptions.dataPath = branding.getStringValue("dataPath"); + } + else + { + mOptions.dataPath = branding.getDirectory().append(dirSeparator) + + branding.getStringValue("dataPath"); + } + mOptions.skipUpdate = true; + } +} + +void Client::initGraphics() +{ + graphicsManager.initGraphics(mOptions.noOpenGL); - openGLMode = intToRenderType(config.getIntValue("opengl")); -#ifdef USE_OPENGL - OpenGLImageHelper::setBlur(config.getBoolValue("blur")); - SurfaceImageHelper::SDLSetEnableAlphaCache( - config.getBoolValue("alphaCache") && !openGLMode); - ImageHelper::setEnableAlpha(config.getFloatValue("guialpha") != 1.0F - || openGLMode); -#else - SurfaceImageHelper::SDLSetEnableAlphaCache( - config.getBoolValue("alphaCache")); - ImageHelper::setEnableAlpha(config.getFloatValue("guialpha") != 1.0F); -#endif - graphicsManager.createRenderers(mOptions.noOpenGL); - graphicsManager.detectPixelSize(); runCounters = config.getBoolValue("packetcounters"); applyVSync(); graphicsManager.setVideoMode(); |