[Scummvm-git-logs] scummvm master -> 03e8f0ed2d03f21a62481314e87d03b6f801e600

aquadran aquadran at gmail.com
Wed Oct 14 05:49:31 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
03e8f0ed2d ENGINES: Remove code for toggling fullscreen mode (#2523)


Commit: 03e8f0ed2d03f21a62481314e87d03b6f801e600
    https://github.com/scummvm/scummvm/commit/03e8f0ed2d03f21a62481314e87d03b6f801e600
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2020-10-14T07:49:28+02:00

Commit Message:
ENGINES: Remove code for toggling fullscreen mode (#2523)

* GRIM: Remove code for toggling fullscreen mode

* MYST3: Remove code for toggling fullscreen mode

* STARK: Remove code for toggling fullscreen mode

* ENGINES: Remove the fullscreen argument from initGraphics3d()

Changed paths:
    engines/engine.cpp
    engines/grim/gfx_base.h
    engines/grim/gfx_opengl.cpp
    engines/grim/gfx_opengl.h
    engines/grim/gfx_opengl_shaders.cpp
    engines/grim/gfx_opengl_shaders.h
    engines/grim/gfx_tinygl.cpp
    engines/grim/gfx_tinygl.h
    engines/grim/grim.cpp
    engines/grim/grim.h
    engines/grim/grim_controls.cpp
    engines/myst3/gfx.cpp
    engines/myst3/gfx.h
    engines/myst3/myst3.cpp
    engines/stark/gfx/driver.cpp
    engines/stark/gfx/driver.h
    engines/stark/stark.cpp
    engines/util.h
    engines/wintermute/base/base_game.cpp
    engines/wintermute/wintermute.cpp


diff --git a/engines/engine.cpp b/engines/engine.cpp
index 1fa94edba3..4722d190d6 100644
--- a/engines/engine.cpp
+++ b/engines/engine.cpp
@@ -395,11 +395,11 @@ void initGraphics(int width, int height) {
 	initGraphics(width, height, &format);
 }
 
-void initGraphics3d(int width, int height, bool fullscreen) {
+void initGraphics3d(int width, int height) {
 	g_system->beginGFXTransaction();
 		g_system->setGraphicsMode(0, OSystem::kGfxModeRender3d);
 		g_system->initSize(width, height);
-		g_system->setFeatureState(OSystem::kFeatureFullscreenMode, fullscreen);
+		g_system->setFeatureState(OSystem::kFeatureFullscreenMode, ConfMan.getBool("fullscreen")); // TODO: Replace this with initCommonGFX()
 	g_system->endGFXTransaction();
 }
 
diff --git a/engines/grim/gfx_base.h b/engines/grim/gfx_base.h
index ea10fdd1ef..cd18cf4029 100644
--- a/engines/grim/gfx_base.h
+++ b/engines/grim/gfx_base.h
@@ -80,7 +80,7 @@ public:
 	 * @param screenH       the height of the context
 	 * @param fullscreen    true if fullscreen is desired, false otherwise.
 	 */
-	virtual void setupScreen(int screenW, int screenH, bool fullscreen) = 0;
+	virtual void setupScreen(int screenW, int screenH) = 0;
 
 	/**
 	 * Query whether the current context is hardware-accelerated
diff --git a/engines/grim/gfx_opengl.cpp b/engines/grim/gfx_opengl.cpp
index 3ede494b83..960492bbd0 100644
--- a/engines/grim/gfx_opengl.cpp
+++ b/engines/grim/gfx_opengl.cpp
@@ -124,7 +124,7 @@ GfxOpenGL::~GfxOpenGL() {
 	}
 }
 
-void GfxOpenGL::setupScreen(int screenW, int screenH, bool fullscreen) {
+void GfxOpenGL::setupScreen(int screenW, int screenH) {
 	_screenWidth = screenW;
 	_screenHeight = screenH;
 	_scaleW = _screenWidth / (float)_gameWidth;
@@ -136,7 +136,7 @@ void GfxOpenGL::setupScreen(int screenW, int screenH, bool fullscreen) {
 	_useDepthShader = false;
 	_useDimShader = false;
 
-	g_system->showMouse(!fullscreen);
+	g_system->showMouse(false);
 
 	int screenSize = _screenWidth * _screenHeight * 4;
 	_storedDisplay = new byte[screenSize];
diff --git a/engines/grim/gfx_opengl.h b/engines/grim/gfx_opengl.h
index 907884586e..257e0a9d9c 100644
--- a/engines/grim/gfx_opengl.h
+++ b/engines/grim/gfx_opengl.h
@@ -47,7 +47,7 @@ public:
 	GfxOpenGL();
 	virtual ~GfxOpenGL();
 
-	void setupScreen(int screenW, int screenH, bool fullscreen) override;
+	void setupScreen(int screenW, int screenH) override;
 
 	const char *getVideoDeviceName() override;
 
diff --git a/engines/grim/gfx_opengl_shaders.cpp b/engines/grim/gfx_opengl_shaders.cpp
index 5056853f9b..437deac72c 100644
--- a/engines/grim/gfx_opengl_shaders.cpp
+++ b/engines/grim/gfx_opengl_shaders.cpp
@@ -400,7 +400,7 @@ void GfxOpenGLS::setupShaders() {
 	}
 }
 
-void GfxOpenGLS::setupScreen(int screenW, int screenH, bool fullscreen) {
+void GfxOpenGLS::setupScreen(int screenW, int screenH) {
 	_screenWidth = screenW;
 	_screenHeight = screenH;
 	_scaleW = _screenWidth / (float)_gameWidth;
diff --git a/engines/grim/gfx_opengl_shaders.h b/engines/grim/gfx_opengl_shaders.h
index 35f832c3f1..de7b1e189f 100644
--- a/engines/grim/gfx_opengl_shaders.h
+++ b/engines/grim/gfx_opengl_shaders.h
@@ -41,9 +41,8 @@ public:
 	 *
 	 * @param screenW		the width of the context
 	 * @param screenH		the height of the context
-	 * @param fullscreen	true if fullscreen is desired, false otherwise.
 	 */
-	virtual void setupScreen(int screenW, int screenH, bool fullscreen) override;
+	virtual void setupScreen(int screenW, int screenH) override;
 
 	/**
 	 * Query whether the current context is hardware-accelerated
diff --git a/engines/grim/gfx_tinygl.cpp b/engines/grim/gfx_tinygl.cpp
index 19685aa77f..be392da19c 100644
--- a/engines/grim/gfx_tinygl.cpp
+++ b/engines/grim/gfx_tinygl.cpp
@@ -77,13 +77,13 @@ GfxTinyGL::~GfxTinyGL() {
 	}
 }
 
-void GfxTinyGL::setupScreen(int screenW, int screenH, bool fullscreen) {
+void GfxTinyGL::setupScreen(int screenW, int screenH) {
 	_screenWidth = screenW;
 	_screenHeight = screenH;
 	_scaleW = _screenWidth / (float)_gameWidth;
 	_scaleH = _screenHeight / (float)_gameHeight;
 
-	g_system->showMouse(!fullscreen);
+	g_system->showMouse(false);
 
 	_pixelFormat = g_system->getScreenFormat();
 	debug("INFO: TinyGL front buffer pixel format: %s", _pixelFormat.toString().c_str());
diff --git a/engines/grim/gfx_tinygl.h b/engines/grim/gfx_tinygl.h
index 0e470d1ce7..a880180da4 100644
--- a/engines/grim/gfx_tinygl.h
+++ b/engines/grim/gfx_tinygl.h
@@ -39,7 +39,7 @@ public:
 	GfxTinyGL();
 	virtual ~GfxTinyGL();
 
-	void setupScreen(int screenW, int screenH, bool fullscreen) override;
+	void setupScreen(int screenW, int screenH) override;
 
 	const char *getVideoDeviceName() override;
 
diff --git a/engines/grim/grim.cpp b/engines/grim/grim.cpp
index 0a52767ba0..8ece967933 100644
--- a/engines/grim/grim.cpp
+++ b/engines/grim/grim.cpp
@@ -263,14 +263,14 @@ LuaBase *GrimEngine::createLua() {
 	}
 }
 
-GfxBase *GrimEngine::createRenderer(int screenW, int screenH, bool fullscreen) {
+GfxBase *GrimEngine::createRenderer(int screenW, int screenH) {
 	Common::String rendererConfig = ConfMan.get("renderer");
 	Graphics::RendererType desiredRendererType = Graphics::parseRendererTypeCode(rendererConfig);
 	Graphics::RendererType matchingRendererType = Graphics::getBestMatchingAvailableRendererType(desiredRendererType);
 
 	_softRenderer = matchingRendererType == Graphics::kRendererTypeTinyGL;
 	if (!_softRenderer) {
-		initGraphics3d(screenW, screenH, fullscreen);
+		initGraphics3d(screenW, screenH);
 	} else {
 		initGraphics(screenW, screenH, nullptr);
 	}
@@ -306,7 +306,7 @@ GfxBase *GrimEngine::createRenderer(int screenW, int screenH, bool fullscreen) {
 		error("Unable to create a '%s' renderer", rendererConfig.c_str());
 	}
 
-	renderer->setupScreen(screenW, screenH, fullscreen);
+	renderer->setupScreen(screenW, screenH);
 	renderer->loadEmergFont();
 	return renderer;
 }
@@ -379,11 +379,10 @@ Common::Error GrimEngine::run() {
 	}
 	g_sound = new SoundPlayer();
 
-	bool fullscreen = ConfMan.getBool("fullscreen");
 	if (getGameType() == GType_GRIM && (g_grim->getGameFlags() & ADGF_REMASTERED)) {
-		g_driver = createRenderer(1600, 900, fullscreen);
+		g_driver = createRenderer(1600, 900);
 	} else {
-		g_driver = createRenderer(640, 480, fullscreen);
+		g_driver = createRenderer(640, 480);
 	}
 
 	if (getGameType() == GType_MONKEY4 && SearchMan.hasFile("AMWI.m4b")) {
@@ -970,7 +969,6 @@ void GrimEngine::mainLoop() {
 	_shortFrame = false;
 	bool resetShortFrame = false;
 	_changeHardwareState = false;
-	_changeFullscreenState = false;
 	_setupChanged = true;
 
 	for (;;) {
@@ -992,25 +990,11 @@ void GrimEngine::mainLoop() {
 			savegameSave();
 		}
 
-		// If the backend can keep the OpenGL context when switching to fullscreen,
-		// just toggle the fullscreen feature (SDL2 path).
-		if (_changeFullscreenState &&
-				_system->hasFeature(OSystem::kFeatureFullscreenToggleKeepsContext)) {
-			bool fullscreen = _system->getFeatureState(OSystem::kFeatureFullscreenMode);
-			_system->setFeatureState(OSystem::kFeatureFullscreenMode, !fullscreen);
-			_changeFullscreenState = false;
-		}
-
 		// If the backend destroys the OpenGL context or the user switched to a different
-		// renderer, the GFX driver needs to be recreated (SDL1 path).
-		if (_changeHardwareState || _changeFullscreenState) {
+		// renderer, the GFX driver needs to be recreated.
+		if (_changeHardwareState) {
 			_changeHardwareState = false;
 
-			bool fullscreen = _system->getFeatureState(OSystem::kFeatureFullscreenMode);
-			if (_changeFullscreenState) {
-				fullscreen = !fullscreen;
-			}
-
 			uint screenWidth = g_driver->getScreenWidth();
 			uint screenHeight = g_driver->getScreenHeight();
 
@@ -1021,7 +1005,7 @@ void GrimEngine::mainLoop() {
 			clearPools();
 
 			delete g_driver;
-			g_driver = createRenderer(screenWidth, screenHeight, fullscreen);
+			g_driver = createRenderer(screenWidth, screenHeight);
 			savegameRestore();
 
 			if (mode == DrawMode) {
@@ -1031,7 +1015,6 @@ void GrimEngine::mainLoop() {
 				g_driver->dimScreen();
 			}
 			setMode(mode);
-			_changeFullscreenState = false;
 		}
 
 		g_sound->flushTracks();
diff --git a/engines/grim/grim.h b/engines/grim/grim.h
index d4c9016dc8..da387007a5 100644
--- a/engines/grim/grim.h
+++ b/engines/grim/grim.h
@@ -208,7 +208,7 @@ protected:
 	void cameraPostChangeHandle(int num);
 	void buildActiveActorsList();
 	void savegameCallback();
-	GfxBase *createRenderer(int screenW, int screenH, bool fullscreen);
+	GfxBase *createRenderer(int screenW, int screenH);
 	void playAspyrLogo();
 	virtual LuaBase *createLua();
 	virtual void updateNormalMode();
@@ -255,7 +255,6 @@ protected:
 	float *_joyAxisPosition;
 
 	bool _changeHardwareState;
-	bool _changeFullscreenState;
 
 	Actor *_selectedActor;
 	Iris *_iris;
diff --git a/engines/grim/grim_controls.cpp b/engines/grim/grim_controls.cpp
index dd8707070c..8651947572 100644
--- a/engines/grim/grim_controls.cpp
+++ b/engines/grim/grim_controls.cpp
@@ -291,12 +291,6 @@ void GrimEngine::handleChars(Common::EventType operation, const Common::KeyState
 }
 
 void GrimEngine::handleControls(Common::EventType operation, const Common::KeyState &key) {
-	// Might also want to support keypad-enter?
-	if (key.hasFlags(Common::KBD_ALT) && key.keycode == Common::KEYCODE_RETURN && operation == Common::EVENT_KEYDOWN) {
-		_changeFullscreenState = true;
-		return;
-	}
-
 	// If we're not supposed to handle the key then don't
 	if (!_controlsEnabled[key.keycode])
 		return;
diff --git a/engines/myst3/gfx.cpp b/engines/myst3/gfx.cpp
index 3fc35f3764..482f1265d5 100644
--- a/engines/myst3/gfx.cpp
+++ b/engines/myst3/gfx.cpp
@@ -193,7 +193,6 @@ Renderer *createRenderer(OSystem *system) {
 	Graphics::RendererType desiredRendererType = Graphics::parseRendererTypeCode(rendererConfig);
 	Graphics::RendererType matchingRendererType = Graphics::getBestMatchingAvailableRendererType(desiredRendererType);
 
-	bool fullscreen = ConfMan.getBool("fullscreen");
 	bool isAccelerated = matchingRendererType != Graphics::kRendererTypeTinyGL;
 
 	uint width;
@@ -205,7 +204,7 @@ Renderer *createRenderer(OSystem *system) {
 	}
 
 	if (isAccelerated) {
-		initGraphics3d(width, height, fullscreen);
+		initGraphics3d(width, height);
 	} else {
 		initGraphics(width, height, nullptr);
 	}
@@ -239,16 +238,6 @@ Renderer *createRenderer(OSystem *system) {
 	error("Unable to create a '%s' renderer", rendererConfig.c_str());
 }
 
-void Renderer::toggleFullscreen() {
-	if (!_system->hasFeature(OSystem::kFeatureFullscreenToggleKeepsContext)) {
-		warning("Unable to toggle the fullscreen state because the current backend would destroy the graphics context");
-		return;
-	}
-
-	bool oldFullscreen = _system->getFeatureState(OSystem::kFeatureFullscreenMode);
-	_system->setFeatureState(OSystem::kFeatureFullscreenMode, !oldFullscreen);
-}
-
 void Renderer::renderDrawable(Drawable *drawable, Window *window) {
 	if (drawable->isConstrainedToWindow()) {
 		selectTargetWindow(window, drawable->is3D(), drawable->isScaled());
diff --git a/engines/myst3/gfx.h b/engines/myst3/gfx.h
index cef27571e0..622feb655d 100644
--- a/engines/myst3/gfx.h
+++ b/engines/myst3/gfx.h
@@ -113,7 +113,6 @@ public:
 
 	virtual void init() = 0;
 	virtual void clear() = 0;
-	void toggleFullscreen();
 
 	/**
 	 *  Swap the buffers, making the drawn screen visible
diff --git a/engines/myst3/myst3.cpp b/engines/myst3/myst3.cpp
index 3b32b75e83..34360442ee 100644
--- a/engines/myst3/myst3.cpp
+++ b/engines/myst3/myst3.cpp
@@ -495,11 +495,7 @@ void Myst3Engine::processInput(bool interactive) {
 				break;
 			case Common::KEYCODE_RETURN:
 			case Common::KEYCODE_KP_ENTER:
-				if (event.kbd.hasFlags(Common::KBD_ALT)) {
-					_gfx->toggleFullscreen();
-				} else {
-					shouldInteractWithHoveredElement = true;
-				}
+				shouldInteractWithHoveredElement = true;
 				break;
 			case Common::KEYCODE_F5:
 				// Open main menu
diff --git a/engines/stark/gfx/driver.cpp b/engines/stark/gfx/driver.cpp
index 789742c27f..f20ef35abd 100644
--- a/engines/stark/gfx/driver.cpp
+++ b/engines/stark/gfx/driver.cpp
@@ -37,8 +37,7 @@ namespace Gfx {
 
 Driver *Driver::create() {
 #if defined(USE_GLES2) || defined(USE_OPENGL_SHADERS)
-	bool fullscreen = ConfMan.getBool("fullscreen");
-	initGraphics3d(kOriginalWidth, kOriginalHeight, fullscreen);
+	initGraphics3d(kOriginalWidth, kOriginalHeight);
 
 	if (OpenGLContext.shadersSupported) {
 		return new OpenGLSDriver();
@@ -58,16 +57,6 @@ const Graphics::PixelFormat Driver::getRGBAPixelFormat() {
 #endif
 }
 
-void Driver::toggleFullscreen() const {
-	if (!g_system->hasFeature(OSystem::kFeatureFullscreenToggleKeepsContext)) {
-		warning("Unable to toggle the fullscreen state because the current backend would destroy the graphics context");
-		return;
-	}
-
-	bool oldFullscreen = g_system->getFeatureState(OSystem::kFeatureFullscreenMode);
-	g_system->setFeatureState(OSystem::kFeatureFullscreenMode, !oldFullscreen);
-}
-
 bool Driver::computeScreenViewport() {
 	int32 screenWidth = g_system->getWidth();
 	int32 screenHeight = g_system->getHeight();
diff --git a/engines/stark/gfx/driver.h b/engines/stark/gfx/driver.h
index ac51e7f905..3c4053a2ec 100644
--- a/engines/stark/gfx/driver.h
+++ b/engines/stark/gfx/driver.h
@@ -49,11 +49,6 @@ public:
 
 	virtual void init() = 0;
 
-	/**
-	 * Toggle between windowed mode and fullscreen when spported by the backend.
-	 */
-	void toggleFullscreen() const;
-
 	bool computeScreenViewport();
 	virtual void setScreenViewport(bool noScaling) = 0; // deprecated
 
diff --git a/engines/stark/stark.cpp b/engines/stark/stark.cpp
index c70a556706..893745d66a 100644
--- a/engines/stark/stark.cpp
+++ b/engines/stark/stark.cpp
@@ -197,10 +197,7 @@ void StarkEngine::processEvents() {
 				continue;
 			}
 
-			if ((e.kbd.keycode == Common::KEYCODE_RETURN || e.kbd.keycode == Common::KEYCODE_KP_ENTER)
-						&& e.kbd.hasFlags(Common::KBD_ALT)) {
-					StarkGfx->toggleFullscreen();
-			} else if (e.kbd.keycode == Common::KEYCODE_p) {
+			if (e.kbd.keycode == Common::KEYCODE_p) {
 				if (StarkUserInterface->isInGameScreen()) {
 					_gamePauseToken = pauseEngine();
 					debug("The game is paused");
diff --git a/engines/util.h b/engines/util.h
index b144762d32..d70ceb1c02 100644
--- a/engines/util.h
+++ b/engines/util.h
@@ -60,6 +60,6 @@ void initGraphicsModes(const Graphics::ModeList &modes);
 void initGraphics(int width, int height);
 void initGraphics(int width, int height, const Graphics::PixelFormat *format);
 void initGraphics(int width, int height, const Common::List<Graphics::PixelFormat> &formatList);
-void initGraphics3d(int width, int height, bool fullscreen);
+void initGraphics3d(int width, int height);
 
 #endif
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index b97f59f339..887e5fa6a2 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -499,8 +499,7 @@ bool BaseGame::initialize1() {
 //////////////////////////////////////////////////////////////////////
 bool BaseGame::initialize2() { // we know whether we are going to be accelerated
 #ifdef ENABLE_WME3D
-	bool fullscreen = ConfMan.getBool("fullscreen");
-	initGraphics3d(_settings->getResWidth(), _settings->getResHeight(), fullscreen);
+	initGraphics3d(_settings->getResWidth(), _settings->getResHeight());
 
 	Common::String rendererConfig = ConfMan.get("renderer");
 	Graphics::RendererType desiredRendererType = Graphics::parseRendererTypeCode(rendererConfig);
diff --git a/engines/wintermute/wintermute.cpp b/engines/wintermute/wintermute.cpp
index ad20d549e4..7037495383 100644
--- a/engines/wintermute/wintermute.cpp
+++ b/engines/wintermute/wintermute.cpp
@@ -129,7 +129,7 @@ Common::Error WintermuteEngine::run() {
 		return Common::kUnsupportedColorMode;
 	}
 #else
-	initGraphics3d(800, 600, ConfMan.getBool("fullscreen"));
+	initGraphics3d(800, 600);
 #endif
 
 	// Create debugger console. It requires GFX to be initialized




More information about the Scummvm-git-logs mailing list