GUI: Allow game gfx override to specify no shader.
This commit is contained in:
parent
118d310b51
commit
026479d30a
1 changed files with 15 additions and 20 deletions
|
@ -425,7 +425,7 @@ void OptionsDialog::build() {
|
||||||
if (ConfMan.isKeyTemporary("shader")) {
|
if (ConfMan.isKeyTemporary("shader")) {
|
||||||
_shader->setFontColor(ThemeEngine::FontColor::kFontColorOverride);
|
_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"));
|
_shader->setLabel(_c("None", "shader"));
|
||||||
_shaderClearButton->setEnabled(false);
|
_shaderClearButton->setEnabled(false);
|
||||||
} else {
|
} else {
|
||||||
|
@ -710,26 +710,17 @@ void OptionsDialog::apply() {
|
||||||
|
|
||||||
// Shader options
|
// Shader options
|
||||||
if (_shader) {
|
if (_shader) {
|
||||||
bool isSet;
|
|
||||||
|
|
||||||
if (ConfMan.hasKey("shader", _domain) && !ConfMan.get("shader", _domain).empty())
|
if (ConfMan.hasKey("shader", _domain) && !ConfMan.get("shader", _domain).empty())
|
||||||
previousShader = ConfMan.get("shader", _domain);
|
previousShader = ConfMan.get("shader", _domain);
|
||||||
|
|
||||||
Common::U32String shader(_shader->getLabel());
|
Common::U32String shader(_shader->getLabel());
|
||||||
if (shader.empty() || (shader == _c("None", "shader")))
|
|
||||||
isSet = false;
|
|
||||||
else
|
|
||||||
isSet = true;
|
|
||||||
|
|
||||||
if (isSet) {
|
if (shader == _c("None", "shader"))
|
||||||
if (!ConfMan.hasKey("shader", _domain) || shader != ConfMan.get("shader", _domain))
|
shader = "default";
|
||||||
graphicsModeChanged = true;
|
|
||||||
ConfMan.set("shader", shader.encode(), _domain);
|
if (!ConfMan.hasKey("shader", _domain) || shader != ConfMan.get("shader", _domain))
|
||||||
} else {
|
graphicsModeChanged = true;
|
||||||
if (ConfMan.hasKey("shader", _domain) && !ConfMan.get("shader", _domain).empty())
|
ConfMan.set("shader", shader.encode(), _domain);
|
||||||
graphicsModeChanged = true;
|
|
||||||
ConfMan.removeKey("shader", _domain);
|
|
||||||
}
|
|
||||||
|
|
||||||
_shader->setFontColor(ThemeEngine::FontColor::kFontColorNormal);
|
_shader->setFontColor(ThemeEngine::FontColor::kFontColorNormal);
|
||||||
}
|
}
|
||||||
|
@ -812,12 +803,14 @@ void OptionsDialog::apply() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gfxError & OSystem::kTransactionShaderChangeFailed) {
|
if (gfxError & OSystem::kTransactionShaderChangeFailed) {
|
||||||
|
if (previousShader == _c("None", "shader"))
|
||||||
|
previousShader = "default";
|
||||||
|
|
||||||
|
ConfMan.set("shader", previousShader.encode(), _domain);
|
||||||
if (previousShader.empty()) {
|
if (previousShader.empty()) {
|
||||||
ConfMan.removeKey("shader", _domain);
|
|
||||||
_shader->setLabel(_c("None", "shader"));
|
_shader->setLabel(_c("None", "shader"));
|
||||||
_shaderClearButton->setEnabled(false);
|
_shaderClearButton->setEnabled(false);
|
||||||
} else {
|
} else {
|
||||||
ConfMan.set("shader", previousShader.encode(), _domain);
|
|
||||||
_shader->setLabel(previousShader);
|
_shader->setLabel(previousShader);
|
||||||
_shaderClearButton->setEnabled(true);
|
_shaderClearButton->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
@ -838,12 +831,14 @@ void OptionsDialog::apply() {
|
||||||
// If shader was changed, show the test dialog
|
// If shader was changed, show the test dialog
|
||||||
if (previousShader != shader && !shader.empty()) {
|
if (previousShader != shader && !shader.empty()) {
|
||||||
if (!testGraphicsSettings()) {
|
if (!testGraphicsSettings()) {
|
||||||
|
if (previousShader == _c("None", "shader"))
|
||||||
|
previousShader = "default";
|
||||||
|
|
||||||
|
ConfMan.set("shader", previousShader.encode(), _domain);
|
||||||
if (previousShader.empty()) {
|
if (previousShader.empty()) {
|
||||||
ConfMan.removeKey("shader", _domain);
|
|
||||||
_shader->setLabel(_c("None", "shader"));
|
_shader->setLabel(_c("None", "shader"));
|
||||||
_shaderClearButton->setEnabled(false);
|
_shaderClearButton->setEnabled(false);
|
||||||
} else {
|
} else {
|
||||||
ConfMan.set("shader", previousShader.encode(), _domain);
|
|
||||||
_shader->setLabel(previousShader);
|
_shader->setLabel(previousShader);
|
||||||
_shaderClearButton->setEnabled(true);
|
_shaderClearButton->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue