From 92f888a152d77e3646b18da4a247b3015a2377eb Mon Sep 17 00:00:00 2001 From: Irastris Date: Thu, 7 May 2026 03:28:30 -0400 Subject: [PATCH] Remove blur and shadow from counter, consolidate options --- res/rml/overlay.rcss | 4 ++-- src/dusk/ui/settings.cpp | 44 ++++++++++++++++++++++++++-------------- 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/res/rml/overlay.rcss b/res/rml/overlay.rcss index 5b07aeda2a..05c8440b55 100644 --- a/res/rml/overlay.rcss +++ b/res/rml/overlay.rcss @@ -24,8 +24,6 @@ fps, toast { position: absolute; border: 1dp #92875B; - backdrop-filter: blur(5dp); - box-shadow: 0 0 15dp 3dp; background-color: rgba(21, 22, 16, 80%); } @@ -36,6 +34,8 @@ toast { flex-flow: column; border-radius: 14dp; overflow: hidden; + backdrop-filter: blur(5dp); + box-shadow: 0 0 15dp 3dp; filter: opacity(0); transform: scale(0.9); transform-origin: center; diff --git a/src/dusk/ui/settings.cpp b/src/dusk/ui/settings.cpp index 92cff4c411..0a1e82a507 100644 --- a/src/dusk/ui/settings.cpp +++ b/src/dusk/ui/settings.cpp @@ -479,39 +479,53 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { .key = "Pause on Focus Lost", .isDisabled = [] { return IsMobile; }, }); - config_bool_select(leftPane, rightPane, getSettings().video.enableFpsOverlay, - { - .key = "Enable FPS Counter", - .helpText = "Display the current framerate in a corner of the screen while playing.", - }); leftPane.register_control(leftPane.add_select_button({ - .key = "FPS Counter Display Corner", + .key = "Show FPS Counter", .getValue = [] { - const int corner = getSettings().video.fpsOverlayCorner.getValue(); - return Rml::String{kFpsOverlayCornerNames[corner]}; + if (!getSettings().video.enableFpsOverlay.getValue()) { + return Rml::String{"Off"}; + } + const int idx = getSettings().video.fpsOverlayCorner.getValue(); + return Rml::String{kFpsOverlayCornerNames[idx]}; + }, + .isModified = + [] { + const auto& enable = getSettings().video.enableFpsOverlay; + const auto& corner = getSettings().video.fpsOverlayCorner; + return enable.getValue() != enable.getDefaultValue() || + (enable.getValue() && corner.getValue() != corner.getDefaultValue()); }, - .isDisabled = [] { return !getSettings().video.enableFpsOverlay.getValue(); }, }), rightPane, [](Pane& pane) { + pane.add_button({ + .text = "Off", + .isSelected = + [] { return !getSettings().video.enableFpsOverlay.getValue(); }, + }) + .on_pressed([] { + mDoAud_seStartMenu(kSoundItemChange); + getSettings().video.enableFpsOverlay.setValue(false); + config::Save(); + }); for (int i = 0; i < static_cast(kFpsOverlayCornerNames.size()); ++i) { - pane - .add_button({ + pane.add_button({ .text = kFpsOverlayCornerNames[i], .isSelected = [i] { - return std::clamp( - getSettings().video.fpsOverlayCorner.getValue(), 0, - 3) == i; + return getSettings().video.enableFpsOverlay.getValue() && + getSettings().video.fpsOverlayCorner.getValue() == i; }, }) .on_pressed([i] { mDoAud_seStartMenu(kSoundItemChange); + getSettings().video.enableFpsOverlay.setValue(true); getSettings().video.fpsOverlayCorner.setValue(i); config::Save(); }); } - pane.add_rml("
Choose which corner the framerate counter displays in."); + pane.add_rml( + "
Display the current framerate in a corner of the screen while playing."); }); leftPane.add_section("Resolution");