feat(ui): font size and perf overlay improvements#1511
Conversation
WalkthroughAdds settings persistence and default-restore for PerformanceOverlay, introduces resolution-based font sizing via ThemeManager::ResolveFontSize, updates Menu to use resolved font size with cached value, adjusts OverlayRenderer::RenderOverlay to accept cachedFontSize by reference, and enhances Settings UI with restore/defaults and auto/manual font size controls. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor User
participant Menu
participant ThemeManager
participant OverlayRenderer
User->>Menu: Open overlay / change theme size
Menu->>ThemeManager: ResolveFontSize(menu)
ThemeManager-->>Menu: effectiveFontSize
Menu->>OverlayRenderer: RenderOverlay(..., cachedFontSize&, currentFontSize=effectiveFontSize)
OverlayRenderer->>ThemeManager: ReloadFont(menu, cachedFontSize&)
ThemeManager-->>OverlayRenderer: maybe update cachedFontSize
OverlayRenderer-->>Menu: draw complete
sequenceDiagram
autonumber
actor User
participant SettingsUI as Settings Tab UI
participant Perf as PerformanceOverlay
User->>SettingsUI: Click "Restore Defaults"
SettingsUI->>Perf: RestoreDefaultSettings()
Perf->>Perf: Reset settings, smoothed stats, frame history buffers
User->>SettingsUI: Save / Load
SettingsUI->>Perf: SaveSettings(json&) / LoadSettings(json&)
Perf-->>SettingsUI: Settings serialized / applied (with fallback)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Automated formatting by clang-format, prettier, and other hooks. See https://pre-commit.ci for details.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
src/Menu.h (1)
279-279: Consider documenting the cached font size member.The
cachedFontSizemember serves an important role in preventing redundant font reloads. Consider adding a brief comment explaining its purpose.- float cachedFontSize = ThemeManager::Constants::DEFAULT_FONT_SIZE; // Tracks whether font has been modified and may require reloading + float cachedFontSize = ThemeManager::Constants::DEFAULT_FONT_SIZE; // Caches the last loaded font size to detect changes and prevent redundant reloadssrc/Features/PerformanceOverlay.cpp (1)
241-256: Defaults reset looks good; consider clearing comparison/test state.Optional: clearing A/B and manual test artifacts avoids confusing deltas immediately after a reset.
void PerformanceOverlay::RestoreDefaultSettings() { this->settings = PerformanceOverlay::Settings{}; // Reset runtime buffers/state to match defaults this->state.frameTimeHistory.Resize(this->settings.FrameHistorySize); this->state.postFGFrameTimeHistory.Resize(this->settings.FrameHistorySize); this->state.smoothFps = 0.0f; this->state.smoothFrameTimeMs = 0.0f; this->state.postFGSmoothFps = 0.0f; this->state.postFGSmoothFrameTimeMs = 0.0f; this->state.minFrameTime = 1000.0f; this->state.maxFrameTime = 0.0f; this->state.smoothedMinFrameTime = 0.0f; this->state.smoothedMaxFrameTime = 50.0f; + // Optional: also clear comparison state + this->ClearTestData(); + this->settingsDiff.clear(); + this->settingsDiffLoaded = false; }
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (9)
src/Features/PerformanceOverlay.cpp(1 hunks)src/Features/PerformanceOverlay.h(1 hunks)src/Menu.cpp(3 hunks)src/Menu.h(1 hunks)src/Menu/OverlayRenderer.cpp(1 hunks)src/Menu/OverlayRenderer.h(1 hunks)src/Menu/SettingsTabRenderer.cpp(3 hunks)src/Menu/ThemeManager.cpp(3 hunks)src/Menu/ThemeManager.h(1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{cpp,cxx,cc,c,h,hpp,hxx,hlsl,hlsli,fx,fxh,py}
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Do not include TODO/FIXME placeholders; provide complete, working solutions
Files:
src/Menu.hsrc/Menu/OverlayRenderer.hsrc/Features/PerformanceOverlay.hsrc/Features/PerformanceOverlay.cppsrc/Menu/OverlayRenderer.cppsrc/Menu/ThemeManager.hsrc/Menu.cppsrc/Menu/SettingsTabRenderer.cppsrc/Menu/ThemeManager.cpp
src/**/*.{cpp,cxx,cc,h,hpp,hxx}
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
src/**/*.{cpp,cxx,cc,h,hpp,hxx}: Ensure SE/AE/VR runtime compatibility; use runtime detection patterns (e.g., REL::RelocateMember())
Include robust error handling and resource management with graceful degradation in the plugin code
Files:
src/Menu.hsrc/Menu/OverlayRenderer.hsrc/Features/PerformanceOverlay.hsrc/Features/PerformanceOverlay.cppsrc/Menu/OverlayRenderer.cppsrc/Menu/ThemeManager.hsrc/Menu.cppsrc/Menu/SettingsTabRenderer.cppsrc/Menu/ThemeManager.cpp
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Build plugin and addons
🔇 Additional comments (17)
src/Menu/OverlayRenderer.h (1)
43-43: LGTM! Reference parameter enables proper font size persistence.Changing
cachedFontSizefrom pass-by-value to pass-by-reference allows the overlay renderer to properly update the caller's cached value when fonts are reloaded. This aligns with the font size resolution flow whereMenu::cachedFontSizeneeds to persist across frames.src/Menu/ThemeManager.h (1)
10-12: LGTM! Well-documented resolution-based font sizing API.The new
ResolveFontSizemethod provides a clean interface for determining effective font size, with clear documentation explaining the dual behavior: dynamic resolution-based sizing when <= 0, or user-defined size when > 0.src/Menu.h (1)
102-102: LGTM! Sensible default enables dynamic font sizing.Setting
FontSize = 0.0fas the default is a good design choice that triggers resolution-based sizing out of the box. The inline comment clearly documents the behavior.src/Menu.cpp (3)
179-180: LGTM! Proper font size resolution through ThemeManager.The code correctly delegates font size computation to
ThemeManager::ResolveFontSize, maintaining consistent behavior across the application.
191-192: LGTM! Prevents redundant first-frame font reload.Good optimization to initialize
cachedFontSizewith the effective size, avoiding unnecessary font reload on the first overlay render.
419-420: LGTM! Proper parameter passing to overlay renderer.The code correctly passes both the cached font size (by reference) and the current resolved font size to the overlay renderer, enabling proper change detection and font reloading.
src/Menu/OverlayRenderer.cpp (1)
24-24: LGTM! Reference parameter matches header declaration.The implementation correctly uses pass-by-reference for
cachedFontSize, matching the header declaration and enabling proper font size persistence.src/Menu/SettingsTabRenderer.cpp (3)
9-9: LGTM! Required include for ThemeManager usage.The include is necessary for accessing
ThemeManager::ResolveFontSizeand related constants.
145-154: LGTM! Well-implemented theme reset with immediate font scale application.The "Restore Theme Defaults" button properly resets the theme to defaults and immediately applies the global font scale. The tooltip clearly describes the action.
202-225: LGTM! Excellent resolution-based font sizing UI implementation.The implementation provides a clean user experience:
- Clear checkbox to toggle between auto and manual font sizing
- Proper state transitions when switching modes
- Helpful "Effective size" display showing the computed font size
- Disabled slider in auto mode prevents confusion
- Good clamping when switching from auto to manual
src/Menu/ThemeManager.cpp (3)
9-9: LGTM! Required include for accessing screen size.The State.h include is necessary for accessing
globals::state->screenSizein the newResolveFontSizemethod.
128-129: LGTM! Proper font size resolution and caching.The implementation correctly:
- Uses
ResolveFontSizeto compute the effective font size- Updates the cached value to enable proper change detection
Also applies to: 144-145
148-166: LGTM! Well-implemented resolution-based font sizing with proper fallback.The
ResolveFontSizeimplementation is robust:
- Clear precedence: user-configured size takes priority when > 0
- Dynamic sizing based on screen height with a sensible ratio (2.5%)
- Proper bounds clamping to prevent extreme values
- Fallback to default with warning log when screen size is unavailable
- Using
std::roundfor the configured value check is appropriate for float comparisonsrc/Features/PerformanceOverlay.h (1)
132-135: Confirm JSON alias and contract for persistence APIs.
- Do we have a global
using json = nlohmann::json;in scope for both the declaration and base interface? If not, prefernlohmann::json&to avoid mismatch with the override.- Please confirm the contract: does
SaveSettings/LoadSettingsreceive the feature sub-object or the root JSON? This affects how the .cpp should read/write (direct object vs nested underGetShortName()).src/Features/PerformanceOverlay.cpp (3)
207-213: Restore Defaults control: nice addition.Button + tooltip reads well and is discoverable. No issues.
Should clicking “Restore Defaults” also clear any captured test data to avoid stale comparisons post‑reset?
221-226: Saving into root vs. feature subkey — verify expected JSON shape.
j = this->settings;will overwrite the passed object. If the caller hands you the root JSON, this can clobber other features. If the caller passes a feature‑scoped object, this is correct. Please confirm and, if needed, write under a subkey:-void PerformanceOverlay::SaveSettings(json& j) -{ - // Persist all overlay settings to JSON - j = this->settings; // uses NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT -} +void PerformanceOverlay::SaveSettings(json& j) +{ + if (!j.is_object()) j = json::object(); + // If Save() is given the root object, persist under the short name. + // If the contract is feature‑scoped, keep direct assignment instead. + j[GetShortName()] = this->settings; +}
227-240: Clamp and validate loaded settings to prevent pathological allocations and bad UI state.File: src/Features/PerformanceOverlay.cpp — LoadSettings
Apply this diff:
-void PerformanceOverlay::LoadSettings(json& j) -{ - try { - // Load all settings from JSON (missing fields use defaults) - this->settings = j.get<PerformanceOverlay::Settings>(); - } catch (...) { - // Fallback to defaults if JSON is invalid - this->settings = PerformanceOverlay::Settings{}; - } - // Ensure history buffers match loaded size - this->state.frameTimeHistory.Resize(this->settings.FrameHistorySize); - this->state.postFGFrameTimeHistory.Resize(this->settings.FrameHistorySize); -} +void PerformanceOverlay::LoadSettings(json& j) +{ + // Accept either a direct block or a nested block under the feature short name. + const json* src = &j; + if (j.is_object() && j.contains(GetShortName())) { + src = &j[GetShortName()]; + } + try { + this->settings = src->get<PerformanceOverlay::Settings>(); + } catch (...) { + this->settings = PerformanceOverlay::Settings{}; + } + // Sanitize loaded values + this->settings.FrameHistorySize = std::clamp( + this->settings.FrameHistorySize, + Settings::kMinFrameHistorySize, + Settings::kMaxFrameHistorySize); + this->settings.UpdateInterval = std::clamp( + this->settings.UpdateInterval, 0.001f, Settings::kMaxUpdateInterval); + this->settings.TextSize = std::clamp(this->settings.TextSize, 0.5f, 2.0f); + this->settings.BackgroundOpacity = std::clamp(this->settings.BackgroundOpacity, 0.0f, 1.0f); + // Ensure history buffers match sanitized size + this->state.frameTimeHistory.Resize(this->settings.FrameHistorySize); + this->state.postFGFrameTimeHistory.Resize(this->settings.FrameHistorySize); +}Also consider clamping/restoring Position (or set PositionSet = false) if it would end up off‑screen after a resolution change.
|
✅ A pre-release build is available for this PR: |
* chore(ui): update discord banner (community-shaders#1493) * fix: use proper filename settingsuser.json (community-shaders#1491) * chore(upscaling): increase fsr sharpness * chore: rename d3d12interop to d3d12SwapChainActive (community-shaders#1494) * feat(llf): remove particle lights (community-shaders#1495) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * feat(llf): move llf to core (community-shaders#1496) * fix: remove water clamp (community-shaders#1497) * fix(upscaling): more upscaling fixes (community-shaders#1498) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix: fix some internal errors when debugging (community-shaders#1500) * fix(ui): fix save settings conflicts & welcome screen (community-shaders#1501) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix(ui): add constraints for discord banner size (community-shaders#1463) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix(VR): fix exiting menu using controllers (community-shaders#1502) * build: fix warnings (community-shaders#1505) * feat(UI): allow tooltips for disabled elements (community-shaders#1503) * feat(upscaling): add downscale percentages (community-shaders#1506) * perf(ssgi): optimize (community-shaders#1499) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * feat(ui): font size and perf overlay improvements (community-shaders#1511) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore: remove unused hooks (community-shaders#1510) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix: adjust IsInterior to consider kNoSky or kFixedDimensions flags (community-shaders#1512) * fix(hair): correct hair indirect normal, marschner by default (community-shaders#1515) Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: mostly revert ISHDR to 1.3.6 (community-shaders#1516) * chore(upscaling): simplify interop and upscale methods (community-shaders#1514) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix(hair): typo in code (community-shaders#1517) * feat(ibl): lerp sky ibl using skylighting (community-shaders#1519) * fix(sss): burley artifacts with effect blend (community-shaders#1518) * fix(upscaling): fix screenshots when upscaling enabled (community-shaders#1520) * fix(upscaling): fix mipbias sometimes being wrong (community-shaders#1521) * fix: fix compile error if snow shader on (community-shaders#1522) * chore(upscaling): revert fsr to typical settings (community-shaders#1523) * fix: fix minor ui issues (community-shaders#1524) * chore(grass collision): simpler grass collision (community-shaders#1525) * fix: update skylighting and version * fix(pbr): fix inconsistencies (community-shaders#1526) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: jiayev <l936249247@hotmail.com> * feat(upscaling): sharpening slider (community-shaders#1527) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore: bump versions * fix(ibl): add ibl to reflection normalization (community-shaders#1528) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix(hair): remove pbr lighting mult for hair (community-shaders#1531) * chore(upscaling): add back upscale multiplier (community-shaders#1532) * fix(upscaling): fix minor upscaling issues (community-shaders#1536) * chore: gamma space normalisation (community-shaders#1535) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * feat(grass collision): implement with texture and history (community-shaders#1539) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore(grass collision): less aggressive (community-shaders#1546) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix(skylighting): fix cell id casting (community-shaders#1544) * chore(emat): auto detect terrain parallax (community-shaders#1545) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore: update versions * feat(VR): enable upscaling (community-shaders#1507) * fix(terrain shadows): fix brightened lods (community-shaders#1547) * chore(upscaling): reduce ghosting near camera (community-shaders#1548) * fix: fix grass not animating (community-shaders#1549) Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix(grass collision): fix non-standard timescales (community-shaders#1550) * build: deploy only updated files (community-shaders#1556) * feat: add Clear Shader Cache to Advanced (community-shaders#1555) * chore(featureissues): default collapse testing menu (community-shaders#1554) * fix(VR): use only supported shaders from cache (community-shaders#1553) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * build: use gersemi cmake formatter (community-shaders#1557) * fix(terrain): vanilla diffuse in pbr terrain cell too bright due to wrong color space (community-shaders#1558) * docs: add new feature development template guide (community-shaders#1529) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * docs(UI): remove duplicate GPL license statement (community-shaders#1561) * feat: add renderdoc for debugging (community-shaders#1560) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: alandtse <7086117+alandtse@users.noreply.github.com> Co-authored-by: Alan Tse <alandtse@gmail.com> * fix(ui): welcome popup size issues (community-shaders#1573) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore(grass collision): minor tweaks (community-shaders#1568) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix(terrain helper): fix conflicting bit (community-shaders#1566) Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * feat(UI): separate theme settings, UI refactor, font support (community-shaders#1571) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore: bump versions * build: fix zipping aio (community-shaders#1579) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix(grass collision): clamp maximum depth of grass (community-shaders#1578) * feat(UI): enhance shader blocking (community-shaders#1564) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: alandtse <7086117+alandtse@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Alan Tse <alandtse@gmail.com> * fix: remove duplicate buffer setup (community-shaders#1586) * feat: update shader compile elapsed time every second (community-shaders#1587) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * build: add cmake install commands (community-shaders#1372) * feat(perf-overlay): add size controls (community-shaders#1591) * fix(perf-overlay): fix infinite draw calls table height (community-shaders#1590) * refactor(perf-overlay): remove collapsible headers (community-shaders#1572) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix(perf-overlay): removed ImGuiTableFlags_ScrollX/Y for scroll bar issues (community-shaders#1594) * build: fix shader copying to relative paths (community-shaders#1603) * fix(ibl): apply ibl to cubemap normalisation for non deferred (community-shaders#1604) * fix(grass): use correct light direction (community-shaders#1602) * fix(welcome-popup): adjust font size & window spacing (community-shaders#1592) * feat(lod): add gamma sliders (community-shaders#1588) * build: correct CodeRabbit schema syntax (community-shaders#1608) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: alandtse <7086117+alandtse@users.noreply.github.com> * build: add compile-time validation of GPU buffers (community-shaders#1427) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: alandtse <7086117+alandtse@users.noreply.github.com> * ci: run shader validation on CMake and CI config changes (community-shaders#1606) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: alandtse <7086117+alandtse@users.noreply.github.com> * feat: procedural sun * limb darkening * another darkening * build(deps): remove orphaned Intel XeSS dependency (community-shaders#1611) Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> * fix: accumulate sunlight color in pixel shader output * fix(ui): enter key now behaves properly when first time popup is open (community-shaders#1615) * feat(ui): add tabs to advanced settings & PBR search (community-shaders#1599) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * build: add HLSL intellisense (community-shaders#1614) * refactor(UI): move light limit visualization into debug (community-shaders#1619) * refactor(ui): add settings for shader block hotkeys (community-shaders#1624) Co-authored-by: Bruce <44987693+brucenguyen@users.noreply.github.com> * fix(ui): anchor reset settings button position (community-shaders#1621) Co-authored-by: Giovanni Correia <Gistix@users.noreply.github.com> * fix(hair): use indirect normal for deferred marschner hair (community-shaders#1626) * build: fix Package-AIO-Manual for fresh pulls (community-shaders#1625) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix(snow): use world space vectors (community-shaders#1618) * feat(UI): add gaussian blur shader core files (community-shaders#1595) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * feat(ui): add test conditions button (community-shaders#1637) * fix(ui): blocked shader info overflow in Shader Debug tab (community-shaders#1632) * fix(upscaling): replace NIS with RCAS for DLSS (community-shaders#1620) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix(dynamic cubemaps): add a check for timeskip (community-shaders#1639) * refactor: restructure lighting (community-shaders#1633) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * feat(ui): add themes & fonts (community-shaders#1596) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * feat(water): add flowmap parallax (community-shaders#1636) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * fix cloud shadow setting saving --------- Co-authored-by: zxcvbn <66063766+zndxcvbn@users.noreply.github.com> Co-authored-by: davo0411 <davidkehoe0411@outlook.com> Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Alan Tse <alandtse@users.noreply.github.com> Co-authored-by: soda <130315225+soda3000@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: ThePagi <32794457+ThePagi@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: alandtse <7086117+alandtse@users.noreply.github.com> Co-authored-by: Alan Tse <alandtse@gmail.com> Co-authored-by: Yupeng Zhang <ArcEarth@outlook.com> Co-authored-by: kuplion <kuplion@hotmail.com> Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> Co-authored-by: Giovanni Correia <Gistix@users.noreply.github.com> Co-authored-by: Bruce <44987693+brucenguyen@users.noreply.github.com> Co-authored-by: Midona <106106405+midona-rhel@users.noreply.github.com>
This PR improves the UI/UX around global font sizing and the Performance Overlay. It adds one-click “restore default” flows, persists overlay settings reliably, and tightens overlay behavior for clarity and stability.
Summary by CodeRabbit