aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/configuration/configure_graphics.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/configuration/configure_graphics.cpp')
-rw-r--r--src/yuzu/configuration/configure_graphics.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp
index e4a140fff5..074b6f405b 100644
--- a/src/yuzu/configuration/configure_graphics.cpp
+++ b/src/yuzu/configuration/configure_graphics.cpp
@@ -218,6 +218,7 @@ void ConfigureGraphics::Setup(const ConfigurationShared::Builder& builder) {
std::map<u32, QWidget*> hold_graphics;
std::vector<QWidget*> hold_api;
+ QCheckBox* frame_gen_checkbox = nullptr;
for (const auto setting : Settings::values.linkage.by_category[Settings::Category::Renderer]) {
#ifndef HAS_RESHADE
@@ -225,9 +226,6 @@ void ConfigureGraphics::Setup(const ConfigurationShared::Builder& builder) {
continue;
}
#endif
- if (setting->Id() == Settings::values.frame_gen.Id()) {
- continue;
- }
ConfigurationShared::Widget* widget = [&]() {
if (setting->Id() == Settings::values.fsr_sharpening_slider.Id()) {
@@ -325,6 +323,9 @@ void ConfigureGraphics::Setup(const ConfigurationShared::Builder& builder) {
hold_graphics.emplace(setting->Id(), widget);
#endif
+ } else if (setting->Id() == Settings::values.frame_gen.Id()) {
+ frame_gen_checkbox = widget->checkbox;
+ hold_graphics.emplace(setting->Id(), widget);
} else {
hold_graphics.emplace(setting->Id(), widget);
}
@@ -334,6 +335,21 @@ void ConfigureGraphics::Setup(const ConfigurationShared::Builder& builder) {
graphics_layout.addWidget(widget);
}
+ // Hide rather than disable, a disabled widget would read as using the global value
+ if (frame_gen_checkbox != nullptr) {
+ for (const u32 id : {Settings::values.frame_gen_type.Id(),
+ Settings::values.frame_gen_multiplier.Id(),
+ Settings::values.frame_gen_target_rate.Id(),
+ Settings::values.frame_gen_flow_scale_auto.Id(),
+ Settings::values.frame_gen_flow_scale.Id(),
+ Settings::values.frame_gen_queue_target.Id()}) {
+ if (const auto it = hold_graphics.find(id); it != hold_graphics.end()) {
+ it->second->setVisible(frame_gen_checkbox->isChecked());
+ connect(frame_gen_checkbox, &QCheckBox::toggled, it->second, &QWidget::setVisible);
+ }
+ }
+ }
+
for (auto widget : hold_api) {
api_grid_layout->addWidget(widget);
}