diff options
Diffstat (limited to 'src/yuzu/configuration')
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 5 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.h | 1 | ||||
| -rw-r--r-- | src/yuzu/configuration/configuration_shared.cpp | 14 | ||||
| -rw-r--r-- | src/yuzu/configuration/configuration_shared.h | 15 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_cpu.cpp | 17 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics.cpp | 8 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.cpp | 20 | 
7 files changed, 26 insertions, 54 deletions
| diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 72027e773..ecd5dfac1 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -1332,7 +1332,10 @@ void Config::SaveRendererValues() {                   static_cast<u32>(Settings::values.renderer_backend.GetDefault()),                   Settings::values.renderer_backend.UsingGlobal());      WriteGlobalSetting(Settings::values.vulkan_device); -    WriteGlobalSetting(Settings::values.fullscreen_mode); +    WriteSetting(QString::fromStdString(Settings::values.fullscreen_mode.GetLabel()), +                 static_cast<u32>(Settings::values.fullscreen_mode.GetValue(global)), +                 static_cast<u32>(Settings::values.fullscreen_mode.GetDefault()), +                 Settings::values.fullscreen_mode.UsingGlobal());      WriteGlobalSetting(Settings::values.aspect_ratio);      WriteGlobalSetting(Settings::values.max_anisotropy);      WriteGlobalSetting(Settings::values.use_speed_limit); diff --git a/src/yuzu/configuration/config.h b/src/yuzu/configuration/config.h index 4bbb9f1cd..c1d7feb9f 100644 --- a/src/yuzu/configuration/config.h +++ b/src/yuzu/configuration/config.h @@ -181,5 +181,6 @@ private:  // These metatype declarations cannot be in common/settings.h because core is devoid of QT  Q_DECLARE_METATYPE(Settings::CPUAccuracy);  Q_DECLARE_METATYPE(Settings::GPUAccuracy); +Q_DECLARE_METATYPE(Settings::FullscreenMode);  Q_DECLARE_METATYPE(Settings::RendererBackend);  Q_DECLARE_METATYPE(Settings::ShaderBackend); diff --git a/src/yuzu/configuration/configuration_shared.cpp b/src/yuzu/configuration/configuration_shared.cpp index 096e42e94..251aab912 100644 --- a/src/yuzu/configuration/configuration_shared.cpp +++ b/src/yuzu/configuration/configuration_shared.cpp @@ -25,20 +25,6 @@ void ConfigurationShared::ApplyPerGameSetting(Settings::Setting<bool>* setting,      }  } -void ConfigurationShared::ApplyPerGameSetting(Settings::Setting<int>* setting, -                                              const QComboBox* combobox) { -    if (Settings::IsConfiguringGlobal() && setting->UsingGlobal()) { -        setting->SetValue(combobox->currentIndex()); -    } else if (!Settings::IsConfiguringGlobal()) { -        if (combobox->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) { -            setting->SetGlobal(true); -        } else { -            setting->SetGlobal(false); -            setting->SetValue(combobox->currentIndex() - ConfigurationShared::USE_GLOBAL_OFFSET); -        } -    } -} -  void ConfigurationShared::SetPerGameSetting(QCheckBox* checkbox,                                              const Settings::Setting<bool>* setting) {      if (setting->UsingGlobal()) { diff --git a/src/yuzu/configuration/configuration_shared.h b/src/yuzu/configuration/configuration_shared.h index 1e0ef01ca..5423dbc92 100644 --- a/src/yuzu/configuration/configuration_shared.h +++ b/src/yuzu/configuration/configuration_shared.h @@ -28,7 +28,20 @@ enum class CheckState {  // ApplyPerGameSetting, given a Settings::Setting and a Qt UI element, properly applies a Setting  void ApplyPerGameSetting(Settings::Setting<bool>* setting, const QCheckBox* checkbox,                           const CheckState& tracker); -void ApplyPerGameSetting(Settings::Setting<int>* setting, const QComboBox* combobox); +template <typename Type> +void ApplyPerGameSetting(Settings::Setting<Type>* setting, const QComboBox* combobox) { +    if (Settings::IsConfiguringGlobal() && setting->UsingGlobal()) { +        setting->SetValue(static_cast<Type>(combobox->currentIndex())); +    } else if (!Settings::IsConfiguringGlobal()) { +        if (combobox->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) { +            setting->SetGlobal(true); +        } else { +            setting->SetGlobal(false); +            setting->SetValue(static_cast<Type>(combobox->currentIndex() - +                                                ConfigurationShared::USE_GLOBAL_OFFSET)); +        } +    } +}  // Sets a Qt UI element given a Settings::Setting  void SetPerGameSetting(QCheckBox* checkbox, const Settings::Setting<bool>* setting); diff --git a/src/yuzu/configuration/configure_cpu.cpp b/src/yuzu/configuration/configure_cpu.cpp index 8d7171487..784b6484e 100644 --- a/src/yuzu/configuration/configure_cpu.cpp +++ b/src/yuzu/configuration/configure_cpu.cpp @@ -65,6 +65,7 @@ void ConfigureCpu::UpdateGroup(int index) {  }  void ConfigureCpu::ApplyConfiguration() { +    ConfigurationShared::ApplyPerGameSetting(&Settings::values.cpu_accuracy, ui->accuracy);      ConfigurationShared::ApplyPerGameSetting(&Settings::values.cpuopt_unsafe_unfuse_fma,                                               ui->cpuopt_unsafe_unfuse_fma,                                               cpuopt_unsafe_unfuse_fma); @@ -80,22 +81,6 @@ void ConfigureCpu::ApplyConfiguration() {      ConfigurationShared::ApplyPerGameSetting(&Settings::values.cpuopt_unsafe_fastmem_check,                                               ui->cpuopt_unsafe_fastmem_check,                                               cpuopt_unsafe_fastmem_check); - -    if (Settings::IsConfiguringGlobal()) { -        // Guard if during game and set to game-specific value -        if (Settings::values.cpu_accuracy.UsingGlobal()) { -            Settings::values.cpu_accuracy.SetValue( -                static_cast<Settings::CPUAccuracy>(ui->accuracy->currentIndex())); -        } -    } else { -        if (ui->accuracy->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) { -            Settings::values.cpu_accuracy.SetGlobal(true); -        } else { -            Settings::values.cpu_accuracy.SetGlobal(false); -            Settings::values.cpu_accuracy.SetValue(static_cast<Settings::CPUAccuracy>( -                ui->accuracy->currentIndex() - ConfigurationShared::USE_GLOBAL_OFFSET)); -        } -    }  }  void ConfigureCpu::changeEvent(QEvent* event) { diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp index 1bc477c96..37e896258 100644 --- a/src/yuzu/configuration/configure_graphics.cpp +++ b/src/yuzu/configuration/configure_graphics.cpp @@ -98,7 +98,8 @@ void ConfigureGraphics::SetConfiguration() {      if (Settings::IsConfiguringGlobal()) {          ui->api->setCurrentIndex(static_cast<int>(Settings::values.renderer_backend.GetValue())); -        ui->fullscreen_mode_combobox->setCurrentIndex(Settings::values.fullscreen_mode.GetValue()); +        ui->fullscreen_mode_combobox->setCurrentIndex( +            static_cast<int>(Settings::values.fullscreen_mode.GetValue()));          ui->aspect_ratio_combobox->setCurrentIndex(Settings::values.aspect_ratio.GetValue());      } else {          ConfigurationShared::SetPerGameSetting(ui->api, &Settings::values.renderer_backend); @@ -310,8 +311,9 @@ void ConfigureGraphics::SetupPerGameUI() {      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, -                                            Settings::values.fullscreen_mode.GetValue(true)); +    ConfigurationShared::SetColoredComboBox( +        ui->fullscreen_mode_combobox, ui->fullscreen_mode_label, +        static_cast<int>(Settings::values.fullscreen_mode.GetValue(true)));      ConfigurationShared::InsertGlobalItem(          ui->api, static_cast<int>(Settings::values.renderer_backend.GetValue(true)));  } diff --git a/src/yuzu/configuration/configure_graphics_advanced.cpp b/src/yuzu/configuration/configure_graphics_advanced.cpp index 38276feb1..a31b8e192 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.cpp +++ b/src/yuzu/configuration/configure_graphics_advanced.cpp @@ -48,11 +48,7 @@ void ConfigureGraphicsAdvanced::SetConfiguration() {  }  void ConfigureGraphicsAdvanced::ApplyConfiguration() { -    // Subtract 2 if configuring per-game (separator and "use global configuration" take 2 slots) -    const auto gpu_accuracy = static_cast<Settings::GPUAccuracy>( -        ui->gpu_accuracy->currentIndex() - -        ((Settings::IsConfiguringGlobal()) ? 0 : ConfigurationShared::USE_GLOBAL_OFFSET)); - +    ConfigurationShared::ApplyPerGameSetting(&Settings::values.gpu_accuracy, ui->gpu_accuracy);      ConfigurationShared::ApplyPerGameSetting(&Settings::values.max_anisotropy,                                               ui->anisotropic_filtering_combobox);      ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_vsync, ui->use_vsync, use_vsync); @@ -63,20 +59,6 @@ void ConfigureGraphicsAdvanced::ApplyConfiguration() {                                               use_caches_gc);      ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_fast_gpu_time,                                               ui->use_fast_gpu_time, use_fast_gpu_time); - -    if (Settings::IsConfiguringGlobal()) { -        // Must guard in case of a during-game configuration when set to be game-specific. -        if (Settings::values.gpu_accuracy.UsingGlobal()) { -            Settings::values.gpu_accuracy.SetValue(gpu_accuracy); -        } -    } else { -        if (ui->gpu_accuracy->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) { -            Settings::values.gpu_accuracy.SetGlobal(true); -        } else { -            Settings::values.gpu_accuracy.SetGlobal(false); -            Settings::values.gpu_accuracy.SetValue(gpu_accuracy); -        } -    }  }  void ConfigureGraphicsAdvanced::changeEvent(QEvent* event) { | 
