diff options
Diffstat (limited to 'backends/platform')
| -rw-r--r-- | backends/platform/sdl/sdl.cpp | 22 | 
1 files changed, 7 insertions, 15 deletions
| diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index 620d3c58ee..113e77937e 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -172,26 +172,18 @@ void OSystem_SDL::initBackend() {  	if (_graphicsManager == 0) {  #ifdef USE_OPENGL  		if (ConfMan.hasKey("gfx_mode")) { +			// If the gfx_mode is from OpenGL, create the OpenGL graphics manager  			Common::String gfxMode(ConfMan.get("gfx_mode")); -			bool use_opengl = false; -			const OSystem::GraphicsMode *mode = OpenGLSdlGraphicsManager::supportedGraphicsModes(); -			int i = 0; -			while (mode->name) { -				if (scumm_stricmp(mode->name, gfxMode.c_str()) == 0) { -					_graphicsMode = i + _firstGLMode; -					use_opengl = true; +			for (uint i = _firstGLMode; i < _graphicsModeIds.size(); ++i) { +				if (!scumm_stricmp(_graphicsModes[i].name, gfxMode.c_str())) { +					_graphicsManager = new OpenGLSdlGraphicsManager(_desktopWidth, _desktopHeight, _eventSource); +					_graphicsMode = i; +					break;  				} - -				mode++; -				++i; -			} - -			// If the gfx_mode is from OpenGL, create the OpenGL graphics manager -			if (use_opengl) { -				_graphicsManager = new OpenGLSdlGraphicsManager(_desktopWidth, _desktopHeight, _eventSource);  			}  		}  #endif +  		if (_graphicsManager == 0) {  			_graphicsManager = new SurfaceSdlGraphicsManager(_eventSource);  		} | 
