diff options
| author | Johannes Schickel | 2011-03-20 17:29:08 +0100 | 
|---|---|---|
| committer | Johannes Schickel | 2011-03-20 17:29:08 +0100 | 
| commit | 6502e191b939ad836c92dc602a6f0e4e4c75b044 (patch) | |
| tree | d4878261f9aab946bc0fa8b9316f4ac3f7d33cf1 /backends/graphics/openglsdl | |
| parent | 89f9c5a9c35834856bb3692fb30a9eb42606ec91 (diff) | |
| download | scummvm-rg350-6502e191b939ad836c92dc602a6f0e4e4c75b044.tar.gz scummvm-rg350-6502e191b939ad836c92dc602a6f0e4e4c75b044.tar.bz2 scummvm-rg350-6502e191b939ad836c92dc602a6f0e4e4c75b044.zip  | |
OPENGL: Handle aspect ratio correction as flag instead of having a special mode for it.
This partly fixes the OpenGL mode mess, but now OpenGL Normal and OpenGL
Conserve will feature the same semantics when aspect ratio correction is
enabled... That is still something to solve.
Diffstat (limited to 'backends/graphics/openglsdl')
| -rw-r--r-- | backends/graphics/openglsdl/openglsdl-graphics.cpp | 39 | 
1 files changed, 14 insertions, 25 deletions
diff --git a/backends/graphics/openglsdl/openglsdl-graphics.cpp b/backends/graphics/openglsdl/openglsdl-graphics.cpp index de9dba1ab1..b9022af120 100644 --- a/backends/graphics/openglsdl/openglsdl-graphics.cpp +++ b/backends/graphics/openglsdl/openglsdl-graphics.cpp @@ -295,10 +295,6 @@ bool OpenGLSdlGraphicsManager::setupFullscreenMode() {  }  bool OpenGLSdlGraphicsManager::loadGFXMode() { -	// Force 4/3 if feature enabled -	if (getFeatureState(OSystem::kFeatureAspectRatioCorrection)) -		_videoMode.mode = OpenGL::GFX_4_3; -  	// If the screen was resized, do not change its size  	if (!_screenResized) {  		const int scaleFactor = getScale(); @@ -509,10 +505,19 @@ bool OpenGLSdlGraphicsManager::notifyEvent(const Common::Event &event) {  			// Ctrl-Alt-a switch between display modes  			if (event.kbd.keycode == 'a') {  				beginGFXTransaction(); -					switchDisplayMode(-1); +					setFeatureState(OSystem::kFeatureAspectRatioCorrection, !getFeatureState(OSystem::kFeatureAspectRatioCorrection));  				endGFXTransaction();  #ifdef USE_OSD -				displayModeChangedMsg(); +			char buffer[128]; +			if (getFeatureState(OSystem::kFeatureAspectRatioCorrection)) +				sprintf(buffer, "Enabled aspect ratio correction\n%d x %d -> %d x %d", +				        _videoMode.screenWidth, _videoMode.screenHeight, +				        _hwscreen->w, _hwscreen->h); +			else +				sprintf(buffer, "Disabled aspect ratio correction\n%d x %d -> %d x %d", +				        _videoMode.screenWidth, _videoMode.screenHeight, +				        _hwscreen->w, _hwscreen->h); +			displayMessageOnOSD(buffer);  #endif  				internUpdateScreen();  				return true; @@ -561,12 +566,12 @@ bool OpenGLSdlGraphicsManager::notifyEvent(const Common::Event &event) {  				}  			} -			const bool isNormalNumber = (SDLK_1 <= sdlKey && sdlKey <= SDLK_4); -			const bool isKeypadNumber = (SDLK_KP1 <= sdlKey && sdlKey <= SDLK_KP4); +			const bool isNormalNumber = (SDLK_1 <= sdlKey && sdlKey <= SDLK_3); +			const bool isKeypadNumber = (SDLK_KP1 <= sdlKey && sdlKey <= SDLK_KP3);  			// Ctrl-Alt-<number key> will change the GFX mode  			if (isNormalNumber || isKeypadNumber) { -				if (sdlKey - (isNormalNumber ? SDLK_1 : SDLK_KP1) <= 4) { +				if (sdlKey - (isNormalNumber ? SDLK_1 : SDLK_KP1) <= 3) {  #ifdef USE_OSD  					int lastMode = _videoMode.mode;  #endif @@ -576,10 +581,6 @@ bool OpenGLSdlGraphicsManager::notifyEvent(const Common::Event &event) {  					beginGFXTransaction();  						setGraphicsMode(sdlKey - (isNormalNumber ? SDLK_1 : SDLK_KP1));  						setScale(oldScale); -						// TODO: We disable the aspect ratio correction here, -						// we might switch to mode which ignores it... -						// We should really fix this mess up. -						setFeatureState(OSystem::kFeatureAspectRatioCorrection, false);  					endGFXTransaction();  #ifdef USE_OSD  					if (lastMode != _videoMode.mode) @@ -597,18 +598,6 @@ bool OpenGLSdlGraphicsManager::notifyEvent(const Common::Event &event) {  				toggleFullScreen(-1);  				return true;  			} - -			// Ctrl-Shift-a switch backwards between display modes -			if (event.kbd.keycode == 'a') { -				beginGFXTransaction(); -					switchDisplayMode(-2); -				endGFXTransaction(); -#ifdef USE_OSD -				displayModeChangedMsg(); -#endif -				internUpdateScreen(); -				return true; -			}  		}  		break;  	case Common::EVENT_KEYUP:  | 
