[Scummvm-git-logs] scummvm master -> 026479d30a33c3a85eec4f6b1db54fe9e48b84fe

sev- noreply at scummvm.org
Sat Oct 22 16:16:53 UTC 2022


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

Summary:
118d310b51 GUI: Fix Shader controls for Game Options
026479d30a GUI: Allow game gfx override to specify no shader.


Commit: 118d310b510f6fecb8b334b6095651d3c6060bf3
    https://github.com/scummvm/scummvm/commit/118d310b510f6fecb8b334b6095651d3c6060bf3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2022-10-22T18:16:30+02:00

Commit Message:
GUI: Fix Shader controls for Game Options

Changed paths:
    gui/options.cpp


diff --git a/gui/options.cpp b/gui/options.cpp
index c5534839cc9..9d6b4b20c34 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -1132,6 +1132,22 @@ void OptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data
 		updateScaleFactors(data);
 		g_gui.scheduleTopDialogRedraw();
 		break;
+	case kChooseShaderCmd: {
+		BrowserDialog browser(_("Select shader"), false);
+		if (browser.runModal() > 0) {
+			// User made his choice...
+			Common::FSNode file(browser.getResult());
+			_shader->setLabel(file.getPath());
+
+			if (!file.getPath().empty() && (file.getPath().decode() != _c("None", "path")))
+				_shaderClearButton->setEnabled(true);
+			else
+				_shaderClearButton->setEnabled(false);
+
+			g_gui.scheduleTopDialogRedraw();
+		}
+		break;
+	}
 	case kApplyCmd:
 		apply();
 		break;
@@ -1199,7 +1215,7 @@ void OptionsDialog::setGraphicSettingsState(bool enabled) {
 		_shader->setEnabled(enabled);
 		_shaderClearButton->setEnabled(enabled);
 	} else {
-		// Happens when we switch to backend that deosn't support shaders
+		// Happens when we switch to backend that doesn't support shaders
 		if (_shader) {
 			_shaderButton->setEnabled(false);
 			_shader->setEnabled(false);
@@ -3064,22 +3080,6 @@ void GlobalOptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint3
 		break;
 #endif
 #endif
-	case kChooseShaderCmd: {
-		BrowserDialog browser(_("Select shader"), false);
-		if (browser.runModal() > 0) {
-			// User made his choice...
-			Common::FSNode file(browser.getResult());
-			_shader->setLabel(file.getPath());
-
-			if (!file.getPath().empty() && (file.getPath().decode() != _c("None", "path")))
-				_shaderClearButton->setEnabled(true);
-			else
-				_shaderClearButton->setEnabled(false);
-
-			g_gui.scheduleTopDialogRedraw();
-		}
-		break;
-	}
 	case kChooseSoundFontCmd: {
 		BrowserDialog browser(_("Select SoundFont"), false);
 		if (browser.runModal() > 0) {


Commit: 026479d30a33c3a85eec4f6b1db54fe9e48b84fe
    https://github.com/scummvm/scummvm/commit/026479d30a33c3a85eec4f6b1db54fe9e48b84fe
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2022-10-22T18:16:30+02:00

Commit Message:
GUI: Allow game gfx override to specify no shader.

Changed paths:
    gui/options.cpp


diff --git a/gui/options.cpp b/gui/options.cpp
index 9d6b4b20c34..fda3ab280e5 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -425,7 +425,7 @@ void OptionsDialog::build() {
 			if (ConfMan.isKeyTemporary("shader")) {
 				_shader->setFontColor(ThemeEngine::FontColor::kFontColorOverride);
 			}
-			if (shader.empty() || !ConfMan.hasKey("shader", _domain)) {
+			if (shader.empty() || shader == "default" || !ConfMan.hasKey("shader", _domain)) {
 				_shader->setLabel(_c("None", "shader"));
 				_shaderClearButton->setEnabled(false);
 			} else {
@@ -710,26 +710,17 @@ void OptionsDialog::apply() {
 
 	// Shader options
 	if (_shader) {
-		bool isSet;
-
 		if (ConfMan.hasKey("shader", _domain) && !ConfMan.get("shader", _domain).empty())
 			previousShader = ConfMan.get("shader", _domain);
 
 		Common::U32String shader(_shader->getLabel());
-		if (shader.empty() || (shader == _c("None", "shader")))
-			isSet = false;
-		else
-			isSet = true;
 
-		if (isSet) {
-			if (!ConfMan.hasKey("shader", _domain) || shader != ConfMan.get("shader", _domain))
-				graphicsModeChanged = true;
-			ConfMan.set("shader", shader.encode(), _domain);
-		} else {
-			if (ConfMan.hasKey("shader", _domain) && !ConfMan.get("shader", _domain).empty())
-				graphicsModeChanged = true;
-			ConfMan.removeKey("shader", _domain);
-		}
+		if (shader == _c("None", "shader"))
+			shader = "default";
+
+		if (!ConfMan.hasKey("shader", _domain) || shader != ConfMan.get("shader", _domain))
+			graphicsModeChanged = true;
+		ConfMan.set("shader", shader.encode(), _domain);
 
 		_shader->setFontColor(ThemeEngine::FontColor::kFontColorNormal);
 	}
@@ -812,12 +803,14 @@ void OptionsDialog::apply() {
 			}
 
 			if (gfxError & OSystem::kTransactionShaderChangeFailed) {
+				if (previousShader == _c("None", "shader"))
+					previousShader = "default";
+
+				ConfMan.set("shader", previousShader.encode(), _domain);
 				if (previousShader.empty()) {
-					ConfMan.removeKey("shader", _domain);
 					_shader->setLabel(_c("None", "shader"));
 					_shaderClearButton->setEnabled(false);
 				} else {
-					ConfMan.set("shader", previousShader.encode(), _domain);
 					_shader->setLabel(previousShader);
 					_shaderClearButton->setEnabled(true);
 				}
@@ -838,12 +831,14 @@ void OptionsDialog::apply() {
 			// If shader was changed, show the test dialog
 			if (previousShader != shader && !shader.empty()) {
 				if (!testGraphicsSettings()) {
+					if (previousShader == _c("None", "shader"))
+						previousShader = "default";
+
+					ConfMan.set("shader", previousShader.encode(), _domain);
 					if (previousShader.empty()) {
-						ConfMan.removeKey("shader", _domain);
 						_shader->setLabel(_c("None", "shader"));
 						_shaderClearButton->setEnabled(false);
 					} else {
-						ConfMan.set("shader", previousShader.encode(), _domain);
 						_shader->setLabel(previousShader);
 						_shaderClearButton->setEnabled(true);
 					}




More information about the Scummvm-git-logs mailing list