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")) {
|
||||
_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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue