diff options
author | lat9nq <22451773+lat9nq@users.noreply.github.com> | 2023-05-08 16:04:44 +0200 |
---|---|---|
committer | lat9nq <22451773+lat9nq@users.noreply.github.com> | 2023-07-21 16:56:07 +0200 |
commit | 9a844bbf0cb14c9de33225ded27a78852e044df6 (patch) | |
tree | ba075c34b1c94639cb1cc83ad10cd8fbacaa9d96 /src | |
parent | settings: Define base renderer runtime modifiable settings (diff) | |
download | yuzu-9a844bbf0cb14c9de33225ded27a78852e044df6.tar yuzu-9a844bbf0cb14c9de33225ded27a78852e044df6.tar.gz yuzu-9a844bbf0cb14c9de33225ded27a78852e044df6.tar.bz2 yuzu-9a844bbf0cb14c9de33225ded27a78852e044df6.tar.lz yuzu-9a844bbf0cb14c9de33225ded27a78852e044df6.tar.xz yuzu-9a844bbf0cb14c9de33225ded27a78852e044df6.tar.zst yuzu-9a844bbf0cb14c9de33225ded27a78852e044df6.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/yuzu/configuration/configuration_shared.cpp | 107 | ||||
-rw-r--r-- | src/yuzu/configuration/configuration_shared.h | 3 | ||||
-rw-r--r-- | src/yuzu/configuration/configure_graphics.cpp | 350 | ||||
-rw-r--r-- | src/yuzu/configuration/configure_graphics.h | 4 |
4 files changed, 116 insertions, 348 deletions
diff --git a/src/yuzu/configuration/configuration_shared.cpp b/src/yuzu/configuration/configuration_shared.cpp index 80637f3a2..8d5ab8b4c 100644 --- a/src/yuzu/configuration/configuration_shared.cpp +++ b/src/yuzu/configuration/configuration_shared.cpp @@ -9,6 +9,7 @@ #include <QObject> #include <QString> #include <QWidget> +#include <qcheckbox.h> #include <qnamespace.h> #include "common/settings.h" #include "yuzu/configuration/configuration_shared.h" @@ -57,7 +58,7 @@ static std::pair<QWidget*, std::function<void()>> CreateCheckBox(Settings::Basic } static std::tuple<QWidget*, void*, std::function<void()>> CreateCombobox( - Settings::BasicSetting* setting, const QString& label, QWidget* parent) { + Settings::BasicSetting* setting, const QString& label, QWidget* parent, bool managed) { const auto type = setting->TypeId(); QWidget* group = new QWidget(parent); @@ -78,7 +79,7 @@ static std::tuple<QWidget*, void*, std::function<void()>> CreateCombobox( combobox_layout->setSpacing(6); combobox_layout->setContentsMargins(0, 0, 0, 0); - if (setting->Switchable() && !Settings::IsConfiguringGlobal()) { + if (setting->Switchable() && !Settings::IsConfiguringGlobal() && managed) { int current = std::stoi(setting->ToString()); int global_value = std::stoi(setting->ToStringGlobal()); SetColoredComboBox(combobox, group, global_value); @@ -92,23 +93,26 @@ static std::tuple<QWidget*, void*, std::function<void()>> CreateCombobox( combobox->setCurrentIndex(std::stoi(setting->ToString())); } - const auto load_func = [combobox, setting]() { - if (Settings::IsConfiguringGlobal()) { - setting->LoadString(std::to_string(combobox->currentIndex())); - } - - if (Settings::IsConfiguringGlobal() || !setting->Switchable()) { - return; - } - - bool using_global = combobox->currentIndex() == USE_GLOBAL_INDEX; - int index = combobox->currentIndex() - USE_GLOBAL_OFFSET; - - setting->SetGlobal(using_global); - if (!using_global) { - setting->LoadString(std::to_string(index)); - } - }; + std::function<void()> load_func = []() {}; + if (managed) { + load_func = [combobox, setting]() { + if (Settings::IsConfiguringGlobal()) { + setting->LoadString(std::to_string(combobox->currentIndex())); + } + + if (Settings::IsConfiguringGlobal() || !setting->Switchable()) { + return; + } + + bool using_global = combobox->currentIndex() == USE_GLOBAL_INDEX; + int index = combobox->currentIndex() - USE_GLOBAL_OFFSET; + + setting->SetGlobal(using_global); + if (!using_global) { + setting->LoadString(std::to_string(index)); + } + }; + } return {group, combobox, load_func}; } @@ -116,25 +120,68 @@ static std::tuple<QWidget*, void*, std::function<void()>> CreateCombobox( static std::tuple<QWidget*, void*, std::function<void()>> CreateLineEdit( Settings::BasicSetting* setting, const QString& label, QWidget* parent) { QWidget* widget = new QWidget(parent); + widget->setObjectName(label); + QHBoxLayout* layout = new QHBoxLayout(widget); + QLineEdit* line_edit = new QLineEdit(parent); + + const QString text = QString::fromStdString(setting->ToString()); + line_edit->setText(text); + + std::function<void()> load_func; - QLabel* q_label = new QLabel(label, widget); - QLineEdit* line_edit = new QLineEdit(widget); + // setSizePolicy lets widget expand and take an equal part of the space as the line edit + if (Settings::IsConfiguringGlobal()) { + QLabel* q_label = new QLabel(label, widget); + q_label->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + layout->addWidget(q_label); + + load_func = [&]() { + std::string load_text = line_edit->text().toStdString(); + setting->LoadString(load_text); + }; + } else { + QCheckBox* checkbox = new QCheckBox(label, parent); + checkbox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + layout->addWidget(checkbox); + + const auto highlight_func = [widget, line_edit](int state) { + bool using_global = state != Qt::Checked; + SetHighlight(widget, !using_global); + line_edit->setEnabled(!using_global); + }; + + QObject::connect(checkbox, qOverload<int>(&QCheckBox::stateChanged), widget, + highlight_func); + + checkbox->setCheckState(setting->UsingGlobal() ? Qt::Unchecked : Qt::Checked); + highlight_func(checkbox->checkState()); + + load_func = [&]() { + if (checkbox->checkState() == Qt::Checked) { + setting->SetGlobal(false); + + std::string load_text = line_edit->text().toStdString(); + setting->LoadString(load_text); + } else { + setting->SetGlobal(true); + } + }; + } - layout->addWidget(q_label); - layout->addStretch(); layout->addWidget(line_edit); layout->setContentsMargins(0, 0, 0, 0); - return {widget, line_edit, []() {}}; + return {widget, line_edit, load_func}; } std::pair<QWidget*, void*> CreateWidget(Settings::BasicSetting* setting, const TranslationMap& translations, QWidget* parent, bool runtime_lock, std::forward_list<std::function<void(bool)>>& apply_funcs, - std::list<CheckState>& trackers, RequestType request) { + std::list<CheckState>& trackers, RequestType request, + bool managed) { const auto type = setting->TypeId(); const int id = setting->Id(); QWidget* widget{nullptr}; @@ -162,7 +209,7 @@ std::pair<QWidget*, void*> CreateWidget(Settings::BasicSetting* setting, widget = pair.first; load_func = pair.second; } else if (setting->IsEnum()) { - auto tuple = CreateCombobox(setting, label, parent); + auto tuple = CreateCombobox(setting, label, parent, managed); widget = std::get<0>(tuple); extra = std::get<1>(tuple); load_func = std::get<2>(tuple); @@ -176,7 +223,7 @@ std::pair<QWidget*, void*> CreateWidget(Settings::BasicSetting* setting, break; } case RequestType::ComboBox: { - auto tuple = CreateCombobox(setting, label, parent); + auto tuple = CreateCombobox(setting, label, parent, managed); widget = std::get<0>(tuple); extra = std::get<1>(tuple); load_func = std::get<2>(tuple); @@ -201,9 +248,9 @@ std::pair<QWidget*, void*> CreateWidget(Settings::BasicSetting* setting, }); bool enable = runtime_lock || setting->RuntimeModfiable(); - enable &= - setting->Switchable() && !(Settings::IsConfiguringGlobal() && !setting->UsingGlobal()); - enable |= !setting->Switchable() && Settings::IsConfiguringGlobal() && runtime_lock; + if (setting->Switchable() && Settings::IsConfiguringGlobal() && !runtime_lock) { + enable &= !setting->UsingGlobal(); + } widget->setEnabled(enable); widget->setVisible(Settings::IsConfiguringGlobal() || setting->Switchable()); diff --git a/src/yuzu/configuration/configuration_shared.h b/src/yuzu/configuration/configuration_shared.h index d70828935..942af0215 100644 --- a/src/yuzu/configuration/configuration_shared.h +++ b/src/yuzu/configuration/configuration_shared.h @@ -54,7 +54,8 @@ std::pair<QWidget*, void*> CreateWidget(Settings::BasicSetting* setting, bool runtime_lock, std::forward_list<std::function<void(bool)>>& apply_funcs, std::list<CheckState>& trackers, - RequestType request = RequestType::Default); + RequestType request = RequestType::Default, + bool managed = true); // Global-aware apply and set functions diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp index d8e95b9b1..37a10ac87 100644 --- a/src/yuzu/configuration/configure_graphics.cpp +++ b/src/yuzu/configuration/configure_graphics.cpp @@ -55,20 +55,20 @@ static constexpr VkPresentModeKHR VSyncSettingToMode(Settings::VSyncMode mode) { } } -// static constexpr Settings::VSyncMode PresentModeToSetting(VkPresentModeKHR mode) { -// switch (mode) { -// case VK_PRESENT_MODE_IMMEDIATE_KHR: -// return Settings::VSyncMode::Immediate; -// case VK_PRESENT_MODE_MAILBOX_KHR: -// return Settings::VSyncMode::Mailbox; -// case VK_PRESENT_MODE_FIFO_KHR: -// return Settings::VSyncMode::FIFO; -// case VK_PRESENT_MODE_FIFO_RELAXED_KHR: -// return Settings::VSyncMode::FIFORelaxed; -// default: -// return Settings::VSyncMode::FIFO; -// } -// } +static constexpr Settings::VSyncMode PresentModeToSetting(VkPresentModeKHR mode) { + switch (mode) { + case VK_PRESENT_MODE_IMMEDIATE_KHR: + return Settings::VSyncMode::Immediate; + case VK_PRESENT_MODE_MAILBOX_KHR: + return Settings::VSyncMode::Mailbox; + case VK_PRESENT_MODE_FIFO_KHR: + return Settings::VSyncMode::FIFO; + case VK_PRESENT_MODE_FIFO_RELAXED_KHR: + return Settings::VSyncMode::FIFORelaxed; + default: + return Settings::VSyncMode::FIFO; + } +} ConfigureGraphics::ConfigureGraphics( const Core::System& system_, std::vector<VkDeviceInfo::Record>& records_, @@ -112,16 +112,9 @@ ConfigureGraphics::ConfigureGraphics( } } - SetupPerGameUI(); - connect(api_combobox, qOverload<int>(&QComboBox::currentIndexChanged), this, [this] { UpdateAPILayout(); PopulateVSyncModeSelection(); - if (!Settings::IsConfiguringGlobal()) { - ConfigurationShared::SetHighlight(ui->api_widget, - api_combobox->currentIndex() != - ConfigurationShared::USE_GLOBAL_INDEX); - } }); connect(vulkan_device_combobox, qOverload<int>(&QComboBox::activated), this, [this](int device) { @@ -215,18 +208,22 @@ void ConfigureGraphics::SetConfiguration() { QLayout& graphics_layout = *ui->graphics_widget->layout(); std::map<bool, std::map<std::string, QWidget*>> hold_graphics; + std::forward_list<QWidget*> hold_api; for (const auto setting : Settings::values.linkage.by_category[Settings::Category::Renderer]) { const auto& setting_label = setting->GetLabel(); auto [widget, extra] = [&]() { - if (setting->Id() == Settings::values.vulkan_device.Id()) { + if (setting->Id() == Settings::values.vulkan_device.Id() || + setting->Id() == Settings::values.shader_backend.Id() || + setting->Id() == Settings::values.vsync_mode.Id()) { return ConfigurationShared::CreateWidget( setting, translations, this, runtime_lock, apply_funcs, trackers, - ConfigurationShared::RequestType::ComboBox); + ConfigurationShared::RequestType::ComboBox, false); + } else { + return ConfigurationShared::CreateWidget(setting, translations, this, runtime_lock, + apply_funcs, trackers); } - return ConfigurationShared::CreateWidget(setting, translations, this, runtime_lock, - apply_funcs, trackers); }(); if (widget == nullptr) { @@ -237,11 +234,11 @@ void ConfigureGraphics::SetConfiguration() { api_layout.addWidget(widget); api_combobox = reinterpret_cast<QComboBox*>(extra); } else if (setting->Id() == Settings::values.vulkan_device.Id()) { - api_layout.addWidget(widget); + hold_api.push_front(widget); vulkan_device_combobox = reinterpret_cast<QComboBox*>(extra); vulkan_device_widget = widget; } else if (setting->Id() == Settings::values.shader_backend.Id()) { - api_layout.addWidget(widget); + hold_api.push_front(widget); shader_backend_combobox = reinterpret_cast<QComboBox*>(extra); shader_backend_widget = widget; } else if (setting->Id() == Settings::values.vsync_mode.Id()) { @@ -258,86 +255,9 @@ void ConfigureGraphics::SetConfiguration() { } } - // ui->api_widget->setEnabled(runtime_lock); - // ui->use_asynchronous_gpu_emulation->setEnabled(runtime_lock); - // ui->use_disk_shader_cache->setEnabled(runtime_lock); - // ui->nvdec_emulation_widget->setEnabled(runtime_lock); - // ui->resolution_combobox->setEnabled(runtime_lock); - // ui->astc_decode_mode_combobox->setEnabled(runtime_lock); - // ui->vsync_mode_layout->setEnabled(runtime_lock || - // Settings::values.renderer_backend.GetValue() == - // Settings::RendererBackend::Vulkan); - // ui->use_disk_shader_cache->setChecked(Settings::values.use_disk_shader_cache.GetValue()); - // ui->use_asynchronous_gpu_emulation->setChecked( - // Settings::values.use_asynchronous_gpu_emulation.GetValue()); - - // if (Settings::IsConfiguringGlobal()) { - // api_combobox->setCurrentIndex(static_cast<int>(Settings::values.renderer_backend.GetValue())); - // ui->fullscreen_mode_combobox->setCurrentIndex( - // static_cast<int>(Settings::values.fullscreen_mode.GetValue())); - // ui->nvdec_emulation->setCurrentIndex( - // static_cast<int>(Settings::values.nvdec_emulation.GetValue())); - // ui->aspect_ratio_combobox->setCurrentIndex(Settings::values.aspect_ratio.GetValue()); - // ui->resolution_combobox->setCurrentIndex( - // static_cast<int>(Settings::values.resolution_setup.GetValue())); - // ui->scaling_filter_combobox->setCurrentIndex( - // static_cast<int>(Settings::values.scaling_filter.GetValue())); - // ui->fsr_sharpening_slider->setValue(Settings::values.fsr_sharpening_slider.GetValue()); - // ui->anti_aliasing_combobox->setCurrentIndex( - // static_cast<int>(Settings::values.anti_aliasing.GetValue())); - // } else { - // ConfigurationShared::SetPerGameSetting(api_combobox, &Settings::values.renderer_backend); - // ConfigurationShared::SetHighlight(ui->api_widget, - // !Settings::values.renderer_backend.UsingGlobal()); - - // ConfigurationShared::SetPerGameSetting(ui->astc_decode_mode_combobox, - // &Settings::values.accelerate_astc); - // ConfigurationShared::SetHighlight(ui->astc_decode_mode_layout, - // !Settings::values.accelerate_astc.UsingGlobal()); - - // ConfigurationShared::SetPerGameSetting(ui->nvdec_emulation, - // &Settings::values.nvdec_emulation); - // ConfigurationShared::SetHighlight(ui->nvdec_emulation_widget, - // !Settings::values.nvdec_emulation.UsingGlobal()); - - // ConfigurationShared::SetPerGameSetting(ui->fullscreen_mode_combobox, - // &Settings::values.fullscreen_mode); - // ConfigurationShared::SetHighlight(ui->fullscreen_mode_label, - // !Settings::values.fullscreen_mode.UsingGlobal()); - - // ConfigurationShared::SetPerGameSetting(ui->aspect_ratio_combobox, - // &Settings::values.aspect_ratio); - // ConfigurationShared::SetHighlight(ui->ar_label, - // !Settings::values.aspect_ratio.UsingGlobal()); - - // ConfigurationShared::SetPerGameSetting(ui->resolution_combobox, - // &Settings::values.resolution_setup); - // ConfigurationShared::SetHighlight(ui->resolution_label, - // !Settings::values.resolution_setup.UsingGlobal()); - - // ConfigurationShared::SetPerGameSetting(ui->scaling_filter_combobox, - // &Settings::values.scaling_filter); - // ConfigurationShared::SetHighlight(ui->scaling_filter_label, - // !Settings::values.scaling_filter.UsingGlobal()); - - // ConfigurationShared::SetPerGameSetting(ui->anti_aliasing_combobox, - // &Settings::values.anti_aliasing); - // ConfigurationShared::SetHighlight(ui->anti_aliasing_label, - // !Settings::values.anti_aliasing.UsingGlobal()); - - // ui->fsr_sharpening_combobox->setCurrentIndex( - // Settings::values.fsr_sharpening_slider.UsingGlobal() ? 0 : 1); - // ui->fsr_sharpening_slider->setEnabled( - // !Settings::values.fsr_sharpening_slider.UsingGlobal()); - // ui->fsr_sharpening_value->setEnabled(!Settings::values.fsr_sharpening_slider.UsingGlobal()); - // ConfigurationShared::SetHighlight(ui->fsr_sharpening_layout, - // !Settings::values.fsr_sharpening_slider.UsingGlobal()); - // ui->fsr_sharpening_slider->setValue(Settings::values.fsr_sharpening_slider.GetValue()); - - // ui->bg_combobox->setCurrentIndex(Settings::values.bg_red.UsingGlobal() ? 0 : 1); - // ui->bg_button->setEnabled(!Settings::values.bg_red.UsingGlobal()); - // ConfigurationShared::SetHighlight(ui->bg_layout, !Settings::values.bg_red.UsingGlobal()); - // } + for (auto widget : hold_api) { + api_layout.addWidget(widget); + } } void ConfigureGraphics::SetFSRIndicatorText(int percentage) { @@ -367,134 +287,16 @@ const QString ConfigureGraphics::TranslateVSyncMode(VkPresentModeKHR mode, } void ConfigureGraphics::ApplyConfiguration() { - // const auto resolution_setup = static_cast<Settings::ResolutionSetup>( - // ui->resolution_combobox->currentIndex() - - // ((Settings::IsConfiguringGlobal()) ? 0 : ConfigurationShared::USE_GLOBAL_OFFSET)); - - // const auto scaling_filter = static_cast<Settings::ScalingFilter>( - // ui->scaling_filter_combobox->currentIndex() - - // ((Settings::IsConfiguringGlobal()) ? 0 : ConfigurationShared::USE_GLOBAL_OFFSET)); - - // const auto anti_aliasing = static_cast<Settings::AntiAliasing>( - // ui->anti_aliasing_combobox->currentIndex() - - // ((Settings::IsConfiguringGlobal()) ? 0 : ConfigurationShared::USE_GLOBAL_OFFSET)); - - // ConfigurationShared::ApplyPerGameSetting(&Settings::values.fullscreen_mode, - // ui->fullscreen_mode_combobox); - // ConfigurationShared::ApplyPerGameSetting(&Settings::values.aspect_ratio, - // ui->aspect_ratio_combobox); - // ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_disk_shader_cache, - // ui->use_disk_shader_cache, use_disk_shader_cache); - // ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_asynchronous_gpu_emulation, - // ui->use_asynchronous_gpu_emulation, - // use_asynchronous_gpu_emulation); - // ConfigurationShared::ApplyPerGameSetting(&Settings::values.accelerate_astc, - // ui->astc_decode_mode_combobox); - - // if (Settings::IsConfiguringGlobal()) { - // // Guard if during game and set to game-specific value - // if (Settings::values.renderer_backend.UsingGlobal()) { - // Settings::values.renderer_backend.SetValue(GetCurrentGraphicsBackend()); - // } - // if (Settings::values.nvdec_emulation.UsingGlobal()) { - // Settings::values.nvdec_emulation.SetValue(GetCurrentNvdecEmulation()); - // } - // if (Settings::values.shader_backend.UsingGlobal()) { - // Settings::values.shader_backend.SetValue(shader_backend); - // } - // if (Settings::values.vulkan_device.UsingGlobal()) { - // Settings::values.vulkan_device.SetValue(vulkan_device); - // } - // if (Settings::values.bg_red.UsingGlobal()) { - // Settings::values.bg_red.SetValue(static_cast<u8>(bg_color.red())); - // Settings::values.bg_green.SetValue(static_cast<u8>(bg_color.green())); - // Settings::values.bg_blue.SetValue(static_cast<u8>(bg_color.blue())); - // } - // if (Settings::values.resolution_setup.UsingGlobal()) { - // Settings::values.resolution_setup.SetValue(resolution_setup); - // } - // if (Settings::values.scaling_filter.UsingGlobal()) { - // Settings::values.scaling_filter.SetValue(scaling_filter); - // } - // if (Settings::values.anti_aliasing.UsingGlobal()) { - // Settings::values.anti_aliasing.SetValue(anti_aliasing); - // } - // Settings::values.fsr_sharpening_slider.SetValue(ui->fsr_sharpening_slider->value()); - - // const auto mode = vsync_mode_combobox_enum_map[vsync_mode_combobox->currentIndex()]; - // const auto vsync_mode = PresentModeToSetting(mode); - // Settings::values.vsync_mode.SetValue(vsync_mode); - // } else { - // if (ui->resolution_combobox->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) { - // Settings::values.resolution_setup.SetGlobal(true); - // } else { - // Settings::values.resolution_setup.SetGlobal(false); - // Settings::values.resolution_setup.SetValue(resolution_setup); - // } - // if (ui->scaling_filter_combobox->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) - // { - // Settings::values.scaling_filter.SetGlobal(true); - // } else { - // Settings::values.scaling_filter.SetGlobal(false); - // Settings::values.scaling_filter.SetValue(scaling_filter); - // } - // if (ui->anti_aliasing_combobox->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) - // { - // Settings::values.anti_aliasing.SetGlobal(true); - // } else { - // Settings::values.anti_aliasing.SetGlobal(false); - // Settings::values.anti_aliasing.SetValue(anti_aliasing); - // } - // if (api_combobox->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) { - // Settings::values.renderer_backend.SetGlobal(true); - // Settings::values.shader_backend.SetGlobal(true); - // Settings::values.vulkan_device.SetGlobal(true); - // } else { - // Settings::values.renderer_backend.SetGlobal(false); - // Settings::values.renderer_backend.SetValue(GetCurrentGraphicsBackend()); - // switch (GetCurrentGraphicsBackend()) { - // case Settings::RendererBackend::OpenGL: - // case Settings::RendererBackend::Null: - // Settings::values.shader_backend.SetGlobal(false); - // Settings::values.vulkan_device.SetGlobal(true); - // Settings::values.shader_backend.SetValue(shader_backend); - // break; - // case Settings::RendererBackend::Vulkan: - // Settings::values.shader_backend.SetGlobal(true); - // Settings::values.vulkan_device.SetGlobal(false); - // Settings::values.vulkan_device.SetValue(vulkan_device); - // break; - // } - // } - - // if (ui->nvdec_emulation->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) { - // Settings::values.nvdec_emulation.SetGlobal(true); - // } else { - // Settings::values.nvdec_emulation.SetGlobal(false); - // Settings::values.nvdec_emulation.SetValue(GetCurrentNvdecEmulation()); - // } - - // if (ui->bg_combobox->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) { - // Settings::values.bg_red.SetGlobal(true); - // Settings::values.bg_green.SetGlobal(true); - // Settings::values.bg_blue.SetGlobal(true); - // } else { - // Settings::values.bg_red.SetGlobal(false); - // Settings::values.bg_green.SetGlobal(false); - // Settings::values.bg_blue.SetGlobal(false); - // Settings::values.bg_red.SetValue(static_cast<u8>(bg_color.red())); - // Settings::values.bg_green.SetValue(static_cast<u8>(bg_color.green())); - // Settings::values.bg_blue.SetValue(static_cast<u8>(bg_color.blue())); - // } + const bool powered_on = system.IsPoweredOn(); + for (const auto& func : apply_funcs) { + func(powered_on); + } - // if (ui->fsr_sharpening_combobox->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) - // { - // Settings::values.fsr_sharpening_slider.SetGlobal(true); - // } else { - // Settings::values.fsr_sharpening_slider.SetGlobal(false); - // Settings::values.fsr_sharpening_slider.SetValue(ui->fsr_sharpening_slider->value()); - // } - // } + if (Settings::IsConfiguringGlobal()) { + const auto mode = vsync_mode_combobox_enum_map[vsync_mode_combobox->currentIndex()]; + const auto vsync_mode = PresentModeToSetting(mode); + Settings::values.vsync_mode.SetValue(vsync_mode); + } } void ConfigureGraphics::changeEvent(QEvent* event) { @@ -581,83 +383,3 @@ Settings::RendererBackend ConfigureGraphics::GetCurrentGraphicsBackend() const { return static_cast<Settings::RendererBackend>(api_combobox->currentIndex() - ConfigurationShared::USE_GLOBAL_OFFSET); } - -Settings::NvdecEmulation ConfigureGraphics::GetCurrentNvdecEmulation() const { - return Settings::NvdecEmulation::CPU; - // if (Settings::IsConfiguringGlobal()) { - // return static_cast<Settings::NvdecEmulation>(ui->nvdec_emulation->currentIndex()); - // } - - // if (ui->nvdec_emulation->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) { - // Settings::values.nvdec_emulation.SetGlobal(true); - // return Settings::values.nvdec_emulation.GetValue(); - // } - // Settings::values.nvdec_emulation.SetGlobal(false); - // return static_cast<Settings::NvdecEmulation>(ui->nvdec_emulation->currentIndex() - - // ConfigurationShared::USE_GLOBAL_OFFSET); -} - -void ConfigureGraphics::SetupPerGameUI() { - // if (Settings::IsConfiguringGlobal()) { - // api_combobox->setEnabled(Settings::values.renderer_backend.UsingGlobal()); - // vulkan_device_combobox->setEnabled(Settings::values.renderer_backend.UsingGlobal()); - // ui->fullscreen_mode_combobox->setEnabled(Settings::values.fullscreen_mode.UsingGlobal()); - // ui->aspect_ratio_combobox->setEnabled(Settings::values.aspect_ratio.UsingGlobal()); - // ui->resolution_combobox->setEnabled(Settings::values.resolution_setup.UsingGlobal()); - // ui->scaling_filter_combobox->setEnabled(Settings::values.scaling_filter.UsingGlobal()); - // ui->fsr_sharpening_slider->setEnabled(Settings::values.fsr_sharpening_slider.UsingGlobal()); - // ui->anti_aliasing_combobox->setEnabled(Settings::values.anti_aliasing.UsingGlobal()); - // ui->use_asynchronous_gpu_emulation->setEnabled( - // Settings::values.use_asynchronous_gpu_emulation.UsingGlobal()); - // ui->nvdec_emulation->setEnabled(Settings::values.nvdec_emulation.UsingGlobal()); - // ui->astc_decode_mode_combobox->setEnabled(Settings::values.accelerate_astc.UsingGlobal()); - // ui->use_disk_shader_cache->setEnabled(Settings::values.use_disk_shader_cache.UsingGlobal()); - // ui->bg_button->setEnabled(Settings::values.bg_red.UsingGlobal()); - // ui->fsr_slider_layout->setEnabled(Settings::values.fsr_sharpening_slider.UsingGlobal()); - - // return; - // } - - // connect(ui->bg_combobox, qOverload<int>(&QComboBox::activated), this, [this](int index) { - // ui->bg_button->setEnabled(index == 1); - // ConfigurationShared::SetHighlight(ui->bg_layout, index == 1); - // }); - - // connect(ui->fsr_sharpening_combobox, qOverload<int>(&QComboBox::activated), this, - // [this](int index) { - // ui->fsr_sharpening_slider->setEnabled(index == 1); - // ui->fsr_sharpening_value->setEnabled(index == 1); - // ConfigurationShared::SetHighlight(ui->fsr_sharpening_layout, index == 1); - // }); - - // ConfigurationShared::SetColoredTristate( - // ui->use_disk_shader_cache, Settings::values.use_disk_shader_cache, - // use_disk_shader_cache); - // ConfigurationShared::SetColoredTristate(ui->use_asynchronous_gpu_emulation, - // Settings::values.use_asynchronous_gpu_emulation, - // use_asynchronous_gpu_emulation); - - // ConfigurationShared::SetColoredComboBox(ui->aspect_ratio_combobox, ui->ar_label, - // Settings::values.aspect_ratio.GetValue(true)); - // ConfigurationShared::SetColoredComboBox( - // ui->fullscreen_mode_combobox, ui->fullscreen_mode_label, - // static_cast<int>(Settings::values.fullscreen_mode.GetValue(true))); - // ConfigurationShared::SetColoredComboBox( - // ui->resolution_combobox, ui->resolution_label, - // static_cast<int>(Settings::values.resolution_setup.GetValue(true))); - // ConfigurationShared::SetColoredComboBox( - // ui->scaling_filter_combobox, ui->scaling_filter_label, - // static_cast<int>(Settings::values.scaling_filter.GetValue(true))); - // ConfigurationShared::SetColoredComboBox( - // ui->anti_aliasing_combobox, ui->anti_aliasing_label, - // static_cast<int>(Settings::values.anti_aliasing.GetValue(true))); - // ConfigurationShared::SetColoredComboBox( - // ui->astc_decode_mode_combobox, ui->astc_decode_mode_label, - // static_cast<int>(Settings::values.accelerate_astc.GetValue(true))); - // ConfigurationShared::InsertGlobalItem( - // api_combobox, static_cast<int>(Settings::values.renderer_backend.GetValue(true))); - // ConfigurationShared::InsertGlobalItem( - // ui->nvdec_emulation, static_cast<int>(Settings::values.nvdec_emulation.GetValue(true))); - - // ui->vsync_mode_layout->setVisible(false); -} diff --git a/src/yuzu/configuration/configure_graphics.h b/src/yuzu/configuration/configure_graphics.h index 30dfb6163..c226e825b 100644 --- a/src/yuzu/configuration/configure_graphics.h +++ b/src/yuzu/configuration/configure_graphics.h @@ -64,10 +64,7 @@ private: const QString TranslateVSyncMode(VkPresentModeKHR mode, Settings::RendererBackend backend) const; - void SetupPerGameUI(); - Settings::RendererBackend GetCurrentGraphicsBackend() const; - Settings::NvdecEmulation GetCurrentNvdecEmulation() const; std::unique_ptr<Ui::ConfigureGraphics> ui; QColor bg_color; @@ -93,5 +90,6 @@ private: QComboBox* shader_backend_combobox; QComboBox* vsync_mode_combobox; QWidget* vulkan_device_widget; + QWidget* api_widget; QWidget* shader_backend_widget; }; |