diff --git a/src/common/config.cpp b/src/common/config.cpp index 77da8a74e..6fc85d68a 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -331,6 +331,10 @@ void setVblankDiv(u32 value) { vblankDivider = value; } +void setPostProcessingFilter(const std::string& type) { + ppFilter = type; +} + void setIsFullscreen(bool enable) { isFullscreen = enable; } diff --git a/src/common/config.h b/src/common/config.h index 1d42109f6..e4367641f 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -66,6 +66,7 @@ void setNullGpu(bool enable); void setCopyGPUCmdBuffers(bool enable); void setDumpShaders(bool enable); void setVblankDiv(u32 value); +void setPostProcessingFilter(const std::string& type); void setGpuId(s32 selectedGpuId); void setScreenWidth(u32 width); void setScreenHeight(u32 height); diff --git a/src/qt_gui/settings_dialog.cpp b/src/qt_gui/settings_dialog.cpp index 175c8c51d..25a2f104b 100644 --- a/src/qt_gui/settings_dialog.cpp +++ b/src/qt_gui/settings_dialog.cpp @@ -91,6 +91,9 @@ SettingsDialog::SettingsDialog(std::span physical_devices, ui->backButtonBehaviorComboBox->addItem(tr("Touchpad Right"), "right"); ui->backButtonBehaviorComboBox->addItem(tr("None"), "none"); + ui->ppFilterComboBox->addItem(tr("linear")); + ui->ppFilterComboBox->addItem(tr("nearest")); + InitializeEmulatorLanguages(); LoadValuesFromConfig(); @@ -302,6 +305,7 @@ void SettingsDialog::LoadValuesFromConfig() { ui->widthSpinBox->setValue(toml::find_or(data, "GPU", "screenWidth", 1280)); ui->heightSpinBox->setValue(toml::find_or(data, "GPU", "screenHeight", 720)); ui->vblankSpinBox->setValue(toml::find_or(data, "GPU", "vblankDivider", 1)); + ui->ppFilterComboBox->setCurrentText(QString::fromStdString(toml::find_or(data, "GPU", "ppFilter", "linear"))); ui->dumpShadersCheckBox->setChecked(toml::find_or(data, "GPU", "dumpShaders", false)); ui->nullGpuCheckBox->setChecked(toml::find_or(data, "GPU", "nullGpu", false)); ui->playBGMCheckBox->setChecked(toml::find_or(data, "General", "playBGM", false)); @@ -550,6 +554,7 @@ void SettingsDialog::UpdateSettings() { Config::setScreenWidth(ui->widthSpinBox->value()); Config::setScreenHeight(ui->heightSpinBox->value()); Config::setVblankDiv(ui->vblankSpinBox->value()); + Config::setPostProcessingFilter(ui->ppFilterComboBox->currentText().toStdString()); Config::setDumpShaders(ui->dumpShadersCheckBox->isChecked()); Config::setNullGpu(ui->nullGpuCheckBox->isChecked()); Config::setSeparateUpdateEnabled(ui->separateUpdatesCheckBox->isChecked()); diff --git a/src/qt_gui/settings_dialog.ui b/src/qt_gui/settings_dialog.ui index c084d4849..56029a6c7 100644 --- a/src/qt_gui/settings_dialog.ui +++ b/src/qt_gui/settings_dialog.ui @@ -964,6 +964,18 @@ 0 + + + + Post-Processing Filter + + + + + + + + @@ -1239,8 +1251,8 @@ 0 0 - 946 - 586 + 510 + 269