Qt: Add shader loading screen options to the settings dialog

This commit is contained in:
Megamouse 2018-10-01 22:33:25 +02:00
parent 1456678316
commit c9adb52f63
4 changed files with 88 additions and 0 deletions

View File

@ -83,6 +83,11 @@
"perfOverlayMarginY": "Sets the vertical distance to the screen border relative to the screen quadrant (measured in pixels).",
"perfOverlayCenterX": "Centers the performance overlay horizontally and overrides the horizontal margin.",
"perfOverlayCenterY": "Centers the performance overlay vertically and overrides the vertical margin."
},
"shaderLoadingScreen": {
"shaderLoadBgEnabled": "Shows a background image during the native shader loading dialog/loading screen.\nBy default the used image will be <gamedir>/PS3_GAME/PIC1.PNG or <gamedir>/PS3_GAME/PIC0.PNG.",
"shaderLoadBgDarkening": "Changes the background image darkening effect strength of the native shader loading dialog.\nThis may be used to improve readability and/or aesthetics.",
"shaderLoadBgBlur": "Changes the background image blur effect strength of the native shader loading dialog.\nThis may be used to improve readability and/or aesthetics."
}
},
"gpu": {

View File

@ -90,6 +90,11 @@ public:
PerfOverlayCenterX,
PerfOverlayCenterY,
// Shader Loading Dialog
ShaderLoadBgEnabled,
ShaderLoadBgDarkening,
ShaderLoadBgBlur,
// Audio
AudioRenderer,
DumpToFile,
@ -284,6 +289,11 @@ private:
{ PerfOverlayCenterX, { "Video", "Performance Overlay", "Center Horizontally" } },
{ PerfOverlayCenterY, { "Video", "Performance Overlay", "Center Vertically" } },
// Shader Loading Dialog
{ ShaderLoadBgEnabled, { "Video", "Shader Loading Dialog", "Allow custom background" } },
{ ShaderLoadBgDarkening, { "Video", "Shader Loading Dialog", "Darkening effect strength" } },
{ ShaderLoadBgBlur, { "Video", "Shader Loading Dialog", "Blur effect strength" } },
// Audio
{ AudioRenderer, { "Audio", "Renderer"}},
{ DumpToFile, { "Audio", "Dump to file"}},

View File

@ -91,6 +91,7 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
QJsonObject json_emu = json_obj.value("emulator").toObject();
QJsonObject json_emu_misc = json_emu.value("misc").toObject();
QJsonObject json_emu_overlay = json_emu.value("overlay").toObject();
QJsonObject json_emu_shaders = json_emu.value("shaderLoadingScreen").toObject();
QJsonObject json_gui = json_obj.value("gui").toObject();
@ -860,6 +861,18 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
EnablePerfOverlayOptions(ui->perfOverlayEnabled->isChecked());
connect(ui->perfOverlayEnabled, &QCheckBox::clicked, EnablePerfOverlayOptions);
xemu_settings->EnhanceCheckBox(ui->shaderLoadBgEnabled, emu_settings::ShaderLoadBgEnabled);
SubscribeTooltip(ui->shaderLoadBgEnabled, json_emu_shaders["shaderLoadBgEnabled"].toString());
auto EnableShaderLoaderOptions = [this](bool enabled)
{
ui->label_shaderLoadBgDarkening->setEnabled(enabled);
ui->label_shaderLoadBgBlur->setEnabled(enabled);
ui->shaderLoadBgDarkening->setEnabled(enabled);
ui->shaderLoadBgBlur->setEnabled(enabled);
};
EnableShaderLoaderOptions(ui->shaderLoadBgEnabled->isChecked());
connect(ui->shaderLoadBgEnabled, &QCheckBox::clicked, EnableShaderLoaderOptions);
// Sliders
xemu_settings->EnhanceSlider(ui->perfOverlayUpdateInterval, emu_settings::PerfOverlayUpdateInterval);
@ -886,6 +899,22 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
ui->label_opacity->setText(tr("Opacity: %0 %").arg(value));
});
xemu_settings->EnhanceSlider(ui->shaderLoadBgDarkening, emu_settings::ShaderLoadBgDarkening);
SubscribeTooltip(ui->shaderLoadBgDarkening, json_emu_shaders["shaderLoadBgDarkening"].toString());
ui->label_shaderLoadBgDarkening->setText(tr("Background darkening: %0 %").arg(ui->shaderLoadBgDarkening->value()));
connect(ui->shaderLoadBgDarkening, &QSlider::valueChanged, [this](int value)
{
ui->label_shaderLoadBgDarkening->setText(tr("Background darkening: %0 %").arg(value));
});
xemu_settings->EnhanceSlider(ui->shaderLoadBgBlur, emu_settings::ShaderLoadBgBlur);
SubscribeTooltip(ui->shaderLoadBgBlur, json_emu_shaders["shaderLoadBgBlur"].toString());
ui->label_shaderLoadBgBlur->setText(tr("Background blur: %0 %").arg(ui->shaderLoadBgBlur->value()));
connect(ui->shaderLoadBgBlur, &QSlider::valueChanged, [this](int value)
{
ui->label_shaderLoadBgBlur->setText(tr("Background blur: %0 %").arg(value));
});
// SpinBoxes
xemu_settings->EnhanceSpinBox(ui->perfOverlayMarginX, emu_settings::PerfOverlayMarginX, "", tr("px"));

View File

@ -1383,6 +1383,50 @@
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Shader Loading Screen</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_70">
<item>
<widget class="QCheckBox" name="shaderLoadBgEnabled">
<property name="text">
<string>Allow custom background</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_shaderLoadBgDarkening">
<property name="text">
<string>Background darkening:</string>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="shaderLoadBgDarkening">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_shaderLoadBgBlur">
<property name="text">
<string>Background blur:</string>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="shaderLoadBgBlur">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_14">
<property name="orientation">