GUI: Allow shaders to be selected for individual targets
This commit is contained in:
parent
626c200d03
commit
7488e17c0a
21 changed files with 149 additions and 31 deletions
|
@ -222,6 +222,7 @@ void registerDefaults() {
|
||||||
ConfMan.registerDefault("render_mode", "default");
|
ConfMan.registerDefault("render_mode", "default");
|
||||||
ConfMan.registerDefault("desired_screen_aspect_ratio", "auto");
|
ConfMan.registerDefault("desired_screen_aspect_ratio", "auto");
|
||||||
ConfMan.registerDefault("stretch_mode", "default");
|
ConfMan.registerDefault("stretch_mode", "default");
|
||||||
|
ConfMan.registerDefault("shader", 0);
|
||||||
|
|
||||||
// Sound & Music
|
// Sound & Music
|
||||||
ConfMan.registerDefault("music_volume", 192);
|
ConfMan.registerDefault("music_volume", 192);
|
||||||
|
|
|
@ -339,6 +339,8 @@ static void setupGraphics(OSystem &system) {
|
||||||
system.setFeatureState(OSystem::kFeatureFilteringMode, ConfMan.getBool("filtering"));
|
system.setFeatureState(OSystem::kFeatureFilteringMode, ConfMan.getBool("filtering"));
|
||||||
if (ConfMan.hasKey("stretch_mode"))
|
if (ConfMan.hasKey("stretch_mode"))
|
||||||
system.setStretchMode(ConfMan.get("stretch_mode").c_str());
|
system.setStretchMode(ConfMan.get("stretch_mode").c_str());
|
||||||
|
if (ConfMan.hasKey("shader"))
|
||||||
|
system.setShader(ConfMan.getInt("shader"));
|
||||||
system.endGFXTransaction();
|
system.endGFXTransaction();
|
||||||
|
|
||||||
// When starting up launcher for the first time, the user might have specified
|
// When starting up launcher for the first time, the user might have specified
|
||||||
|
|
|
@ -215,6 +215,9 @@ void initCommonGFX() {
|
||||||
|
|
||||||
if (gameDomain->contains("stretch_mode"))
|
if (gameDomain->contains("stretch_mode"))
|
||||||
g_system->setStretchMode(ConfMan.get("stretch_mode").c_str());
|
g_system->setStretchMode(ConfMan.get("stretch_mode").c_str());
|
||||||
|
|
||||||
|
if (gameDomain->contains("shader"))
|
||||||
|
g_system->setShader(ConfMan.getInt("shader"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
#include "graphics/pixelformat.h"
|
#include "graphics/pixelformat.h"
|
||||||
|
|
||||||
|
|
||||||
#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.34"
|
#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.35"
|
||||||
|
|
||||||
class OSystem;
|
class OSystem;
|
||||||
|
|
||||||
|
|
|
@ -64,6 +64,7 @@ enum {
|
||||||
kSearchClearCmd = 'SRCL',
|
kSearchClearCmd = 'SRCL',
|
||||||
|
|
||||||
kCmdGlobalGraphicsOverride = 'OGFX',
|
kCmdGlobalGraphicsOverride = 'OGFX',
|
||||||
|
kCmdGlobalShaderOverride = 'OSHD',
|
||||||
kCmdGlobalAudioOverride = 'OSFX',
|
kCmdGlobalAudioOverride = 'OSFX',
|
||||||
kCmdGlobalMIDIOverride = 'OMID',
|
kCmdGlobalMIDIOverride = 'OMID',
|
||||||
kCmdGlobalMT32Override = 'OM32',
|
kCmdGlobalMT32Override = 'OM32',
|
||||||
|
@ -197,6 +198,22 @@ EditGameDialog::EditGameDialog(const String &domain)
|
||||||
|
|
||||||
addGraphicControls(graphicsContainer, "GameOptions_Graphics_Container.");
|
addGraphicControls(graphicsContainer, "GameOptions_Graphics_Container.");
|
||||||
|
|
||||||
|
//
|
||||||
|
// The shader tab (currently visible only for Vita platform), visibility checking by features
|
||||||
|
//
|
||||||
|
|
||||||
|
_globalShaderOverride = nullptr;
|
||||||
|
if (g_system->hasFeature(OSystem::kFeatureShader)) {
|
||||||
|
tab->addTab(_("Shader"), "GameOptions_Shader");
|
||||||
|
|
||||||
|
if (g_system->getOverlayWidth() > 320)
|
||||||
|
_globalShaderOverride = new CheckboxWidget(tab, "GameOptions_Shader.EnableTabCheckbox", _("Override global shader settings"), nullptr, kCmdGlobalShaderOverride);
|
||||||
|
else
|
||||||
|
_globalShaderOverride = new CheckboxWidget(tab, "GameOptions_Shader.EnableTabCheckbox", _c("Override global shader settings", "lowres"), nullptr, kCmdGlobalShaderOverride);
|
||||||
|
|
||||||
|
addShaderControls(tab, "GameOptions_Shader.");
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// The Keymap tab
|
// The Keymap tab
|
||||||
//
|
//
|
||||||
|
@ -344,6 +361,11 @@ void EditGameDialog::open() {
|
||||||
ConfMan.hasKey("aspect_ratio", _domain);
|
ConfMan.hasKey("aspect_ratio", _domain);
|
||||||
_globalGraphicsOverride->setState(e);
|
_globalGraphicsOverride->setState(e);
|
||||||
|
|
||||||
|
if (g_system->hasFeature(OSystem::kFeatureShader)) {
|
||||||
|
e = ConfMan.hasKey("shader", _domain);
|
||||||
|
_globalShaderOverride->setState(e);
|
||||||
|
}
|
||||||
|
|
||||||
e = ConfMan.hasKey("music_driver", _domain) ||
|
e = ConfMan.hasKey("music_driver", _domain) ||
|
||||||
ConfMan.hasKey("output_rate", _domain) ||
|
ConfMan.hasKey("output_rate", _domain) ||
|
||||||
ConfMan.hasKey("opl_driver", _domain) ||
|
ConfMan.hasKey("opl_driver", _domain) ||
|
||||||
|
@ -451,6 +473,10 @@ void EditGameDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 dat
|
||||||
setGraphicSettingsState(data != 0);
|
setGraphicSettingsState(data != 0);
|
||||||
g_gui.scheduleTopDialogRedraw();
|
g_gui.scheduleTopDialogRedraw();
|
||||||
break;
|
break;
|
||||||
|
case kCmdGlobalShaderOverride:
|
||||||
|
setShaderSettingsState(data != 0);
|
||||||
|
g_gui.scheduleTopDialogRedraw();
|
||||||
|
break;
|
||||||
case kCmdGlobalAudioOverride:
|
case kCmdGlobalAudioOverride:
|
||||||
setAudioSettingsState(data != 0);
|
setAudioSettingsState(data != 0);
|
||||||
setSubtitleSettingsState(data != 0);
|
setSubtitleSettingsState(data != 0);
|
||||||
|
|
|
@ -84,6 +84,7 @@ protected:
|
||||||
PopUpWidget *_platformPopUp;
|
PopUpWidget *_platformPopUp;
|
||||||
|
|
||||||
CheckboxWidget *_globalGraphicsOverride;
|
CheckboxWidget *_globalGraphicsOverride;
|
||||||
|
CheckboxWidget *_globalShaderOverride;
|
||||||
CheckboxWidget *_globalAudioOverride;
|
CheckboxWidget *_globalAudioOverride;
|
||||||
CheckboxWidget *_globalMIDIOverride;
|
CheckboxWidget *_globalMIDIOverride;
|
||||||
CheckboxWidget *_globalMT32Override;
|
CheckboxWidget *_globalMT32Override;
|
||||||
|
|
|
@ -348,10 +348,15 @@ void OptionsDialog::build() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shader options
|
// Shader options
|
||||||
if (g_system->hasFeature(OSystem::kFeatureShader)) {
|
|
||||||
if (_shaderPopUp) {
|
if (_shaderPopUp) {
|
||||||
int value = ConfMan.getInt("shader", _domain);
|
_shaderPopUp->setSelected(0);
|
||||||
_shaderPopUp->setSelected(value);
|
|
||||||
|
if (g_system->hasFeature(OSystem::kFeatureShader)) {
|
||||||
|
// TODO: Consider storing the name of the shader instead of the ID.
|
||||||
|
_shaderPopUp->setSelected(ConfMan.getInt("shader", _domain));
|
||||||
|
} else {
|
||||||
|
_shaderPopUpDesc->setVisible(false);
|
||||||
|
_shaderPopUp->setVisible(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -534,6 +539,19 @@ void OptionsDialog::apply() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Shader options
|
||||||
|
if (_shaderPopUp) {
|
||||||
|
if (_enableShaderSettings) {
|
||||||
|
if (ConfMan.getInt("shader", _domain) != (int32)_shaderPopUp->getSelectedTag())
|
||||||
|
graphicsModeChanged = true;
|
||||||
|
|
||||||
|
// TODO: Consider storing the name of the shader instead of the ID.
|
||||||
|
ConfMan.setInt("shader", _shaderPopUp->getSelectedTag(), _domain);
|
||||||
|
} else {
|
||||||
|
ConfMan.removeKey("shader", _domain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Setup graphics again if needed
|
// Setup graphics again if needed
|
||||||
if (_domain == Common::ConfigManager::kApplicationDomain && graphicsModeChanged) {
|
if (_domain == Common::ConfigManager::kApplicationDomain && graphicsModeChanged) {
|
||||||
g_system->beginGFXTransaction();
|
g_system->beginGFXTransaction();
|
||||||
|
@ -547,6 +565,8 @@ void OptionsDialog::apply() {
|
||||||
g_system->setFeatureState(OSystem::kFeatureFullscreenMode, ConfMan.getBool("fullscreen", _domain));
|
g_system->setFeatureState(OSystem::kFeatureFullscreenMode, ConfMan.getBool("fullscreen", _domain));
|
||||||
if (ConfMan.hasKey("filtering"))
|
if (ConfMan.hasKey("filtering"))
|
||||||
g_system->setFeatureState(OSystem::kFeatureFilteringMode, ConfMan.getBool("filtering", _domain));
|
g_system->setFeatureState(OSystem::kFeatureFilteringMode, ConfMan.getBool("filtering", _domain));
|
||||||
|
if (ConfMan.hasKey("shader"))
|
||||||
|
g_system->setShader(ConfMan.getInt("shader", _domain));
|
||||||
|
|
||||||
OSystem::TransactionError gfxError = g_system->endGFXTransaction();
|
OSystem::TransactionError gfxError = g_system->endGFXTransaction();
|
||||||
|
|
||||||
|
@ -616,18 +636,6 @@ void OptionsDialog::apply() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shader options
|
|
||||||
if (_enableShaderSettings) {
|
|
||||||
if (g_system->hasFeature(OSystem::kFeatureShader)) {
|
|
||||||
if (_shaderPopUp) {
|
|
||||||
if (ConfMan.getInt("shader", _domain) != (int32)_shaderPopUp->getSelectedTag()) {
|
|
||||||
ConfMan.setInt("shader", _shaderPopUp->getSelectedTag(), _domain);
|
|
||||||
g_system->setShader(_shaderPopUp->getSelectedTag());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_keymapperWidget) {
|
if (_keymapperWidget) {
|
||||||
bool changes = _keymapperWidget->save();
|
bool changes = _keymapperWidget->save();
|
||||||
if (changes) {
|
if (changes) {
|
||||||
|
@ -909,6 +917,13 @@ void OptionsDialog::setGraphicSettingsState(bool enabled) {
|
||||||
_aspectCheckbox->setEnabled(enabled);
|
_aspectCheckbox->setEnabled(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OptionsDialog::setShaderSettingsState(bool enabled) {
|
||||||
|
_enableShaderSettings = enabled;
|
||||||
|
|
||||||
|
_shaderPopUpDesc->setEnabled(enabled);
|
||||||
|
_shaderPopUp->setEnabled(enabled);
|
||||||
|
}
|
||||||
|
|
||||||
void OptionsDialog::setAudioSettingsState(bool enabled) {
|
void OptionsDialog::setAudioSettingsState(bool enabled) {
|
||||||
_enableAudioSettings = enabled;
|
_enableAudioSettings = enabled;
|
||||||
_midiPopUpDesc->setEnabled(enabled);
|
_midiPopUpDesc->setEnabled(enabled);
|
||||||
|
@ -1068,7 +1083,6 @@ void OptionsDialog::addKeyMapperControls(GuiObject *boss, const Common::String &
|
||||||
|
|
||||||
void OptionsDialog::addShaderControls(GuiObject *boss, const Common::String &prefix) {
|
void OptionsDialog::addShaderControls(GuiObject *boss, const Common::String &prefix) {
|
||||||
// Shader selector
|
// Shader selector
|
||||||
if (g_system->hasFeature(OSystem::kFeatureShader)) {
|
|
||||||
if (g_system->getOverlayWidth() > 320)
|
if (g_system->getOverlayWidth() > 320)
|
||||||
_shaderPopUpDesc = new StaticTextWidget(boss, prefix + "grShaderPopUpDesc", _("HW Shader:"), _("Different hardware shaders give different visual effects"));
|
_shaderPopUpDesc = new StaticTextWidget(boss, prefix + "grShaderPopUpDesc", _("HW Shader:"), _("Different hardware shaders give different visual effects"));
|
||||||
else
|
else
|
||||||
|
@ -1079,7 +1093,7 @@ void OptionsDialog::addShaderControls(GuiObject *boss, const Common::String &pre
|
||||||
_shaderPopUp->appendEntry(p->name, p->id);
|
_shaderPopUp->appendEntry(p->name, p->id);
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
_enableShaderSettings = true;
|
_enableShaderSettings = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -107,6 +107,7 @@ protected:
|
||||||
void addEngineControls(GuiObject *boss, const Common::String &prefix, const ExtraGuiOptions &engineOptions);
|
void addEngineControls(GuiObject *boss, const Common::String &prefix, const ExtraGuiOptions &engineOptions);
|
||||||
|
|
||||||
void setGraphicSettingsState(bool enabled);
|
void setGraphicSettingsState(bool enabled);
|
||||||
|
void setShaderSettingsState(bool enabled);
|
||||||
void setAudioSettingsState(bool enabled);
|
void setAudioSettingsState(bool enabled);
|
||||||
void setMIDISettingsState(bool enabled);
|
void setMIDISettingsState(bool enabled);
|
||||||
void setMT32SettingsState(bool enabled);
|
void setMT32SettingsState(bool enabled);
|
||||||
|
|
|
@ -1857,6 +1857,14 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
|
||||||
"<import layout='Dialog.GlobalOptions_Graphics_Container' />"
|
"<import layout='Dialog.GlobalOptions_Graphics_Container' />"
|
||||||
"</layout>"
|
"</layout>"
|
||||||
"</dialog>"
|
"</dialog>"
|
||||||
|
"<dialog name='GameOptions_Shader' overlays='Dialog.GameOptions.TabWidget'>"
|
||||||
|
"<layout type='vertical' padding='16,16,16,16' spacing='8'>"
|
||||||
|
"<widget name='EnableTabCheckbox' "
|
||||||
|
"type='Checkbox' "
|
||||||
|
"/>"
|
||||||
|
"<import layout='Dialog.GlobalOptions_Shader' />"
|
||||||
|
"</layout>"
|
||||||
|
"</dialog>"
|
||||||
"<dialog name='GameOptions_Audio' overlays='Dialog.GameOptions.TabWidget'>"
|
"<dialog name='GameOptions_Audio' overlays='Dialog.GameOptions.TabWidget'>"
|
||||||
"<layout type='vertical' padding='16,16,16,16' spacing='8'>"
|
"<layout type='vertical' padding='16,16,16,16' spacing='8'>"
|
||||||
"<widget name='EnableTabCheckbox' "
|
"<widget name='EnableTabCheckbox' "
|
||||||
|
@ -3643,6 +3651,14 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
|
||||||
"<import layout='Dialog.GlobalOptions_Graphics_Container' />"
|
"<import layout='Dialog.GlobalOptions_Graphics_Container' />"
|
||||||
"</layout>"
|
"</layout>"
|
||||||
"</dialog>"
|
"</dialog>"
|
||||||
|
"<dialog name='GameOptions_Shader' overlays='Dialog.GameOptions.TabWidget'>"
|
||||||
|
"<layout type='vertical' padding='8,8,8,8' spacing='6'>"
|
||||||
|
"<widget name='EnableTabCheckbox' "
|
||||||
|
"type='Checkbox' "
|
||||||
|
"/>"
|
||||||
|
"<import layout='Dialog.GlobalOptions_Shader' />"
|
||||||
|
"</layout>"
|
||||||
|
"</dialog>"
|
||||||
"<dialog name='GameOptions_Audio' overlays='Dialog.GameOptions.TabWidget'>"
|
"<dialog name='GameOptions_Audio' overlays='Dialog.GameOptions.TabWidget'>"
|
||||||
"<layout type='vertical' padding='8,8,8,8' spacing='6'>"
|
"<layout type='vertical' padding='8,8,8,8' spacing='6'>"
|
||||||
"<widget name='EnableTabCheckbox' "
|
"<widget name='EnableTabCheckbox' "
|
||||||
|
|
Binary file not shown.
|
@ -1 +1 @@
|
||||||
[SCUMMVM_STX0.8.34:ScummVM Classic Theme:No Author]
|
[SCUMMVM_STX0.8.35:ScummVM Classic Theme:No Author]
|
||||||
|
|
|
@ -1005,6 +1005,15 @@
|
||||||
</layout>
|
</layout>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
|
<dialog name = 'GameOptions_Shader' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
|
<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
|
||||||
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
type = 'Checkbox'
|
||||||
|
/>
|
||||||
|
<import layout = 'Dialog.GlobalOptions_Shader' />
|
||||||
|
</layout>
|
||||||
|
</dialog>
|
||||||
|
|
||||||
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
|
<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
|
||||||
<widget name = 'EnableTabCheckbox'
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
|
|
@ -1006,6 +1006,15 @@
|
||||||
</layout>
|
</layout>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
|
<dialog name = 'GameOptions_Shader' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
|
<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
|
||||||
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
type = 'Checkbox'
|
||||||
|
/>
|
||||||
|
<import layout = 'Dialog.GlobalOptions_Shader' />
|
||||||
|
</layout>
|
||||||
|
</dialog>
|
||||||
|
|
||||||
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
|
<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
|
||||||
<widget name = 'EnableTabCheckbox'
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
|
Binary file not shown.
|
@ -1 +1 @@
|
||||||
[SCUMMVM_STX0.8.34:ScummVM Modern Theme:No Author]
|
[SCUMMVM_STX0.8.35:ScummVM Modern Theme:No Author]
|
||||||
|
|
|
@ -1018,6 +1018,15 @@
|
||||||
</layout>
|
</layout>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
|
<dialog name = 'GameOptions_Shader' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
|
<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
|
||||||
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
type = 'Checkbox'
|
||||||
|
/>
|
||||||
|
<import layout = 'Dialog.GlobalOptions_Shader' />
|
||||||
|
</layout>
|
||||||
|
</dialog>
|
||||||
|
|
||||||
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
|
<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
|
||||||
<widget name = 'EnableTabCheckbox'
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
|
|
@ -1005,6 +1005,15 @@
|
||||||
</layout>
|
</layout>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
|
<dialog name = 'GameOptions_Shader' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
|
<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
|
||||||
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
type = 'Checkbox'
|
||||||
|
/>
|
||||||
|
<import layout = 'Dialog.GlobalOptions_Shader' />
|
||||||
|
</layout>
|
||||||
|
</dialog>
|
||||||
|
|
||||||
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
|
<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
|
||||||
<widget name = 'EnableTabCheckbox'
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
|
Binary file not shown.
|
@ -1 +1 @@
|
||||||
[SCUMMVM_STX0.8.34:ScummVM Modern Theme Remastered:No Author]
|
[SCUMMVM_STX0.8.35:ScummVM Modern Theme Remastered:No Author]
|
||||||
|
|
|
@ -1018,6 +1018,15 @@
|
||||||
</layout>
|
</layout>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
|
<dialog name = 'GameOptions_Shader' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
|
<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
|
||||||
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
type = 'Checkbox'
|
||||||
|
/>
|
||||||
|
<import layout = 'Dialog.GlobalOptions_Shader' />
|
||||||
|
</layout>
|
||||||
|
</dialog>
|
||||||
|
|
||||||
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
|
<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
|
||||||
<widget name = 'EnableTabCheckbox'
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
|
|
@ -1005,6 +1005,15 @@
|
||||||
</layout>
|
</layout>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
|
<dialog name = 'GameOptions_Shader' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
|
<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
|
||||||
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
type = 'Checkbox'
|
||||||
|
/>
|
||||||
|
<import layout = 'Dialog.GlobalOptions_Shader' />
|
||||||
|
</layout>
|
||||||
|
</dialog>
|
||||||
|
|
||||||
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GameOptions.TabWidget'>
|
||||||
<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
|
<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
|
||||||
<widget name = 'EnableTabCheckbox'
|
<widget name = 'EnableTabCheckbox'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue