feat: two-tier HUD, transition channels, and a single on/off entry point#123
Merged
Conversation
Local development pre-merge snapshot: two-tier HUD (chip/full), integer-endpoint transition channels (anim.rs), visible->last_active state model with RejectReason feedback, SurroundStyle dim/bright crossfade (superseded by SurroundEffect during the merge that follows). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
WinRT backdrop blur × HUD tiers / transition channels. Semantic integration of two parallel lines of work: - SurroundEffect (origin) supersedes the local SurroundStyle: the DimBlack → WhiteWash → Blur cycle on Ctrl+Alt+E is now the single surround selector; Ctrl+Alt+S / CycleStyle are gone. - State keeps the local shape (last_active + ToggleOnOff + RejectReason); CycleEffect and BumpOpacity go through bump_config, so adjusting while Off is rejected with a HUD toast, and BumpOpacity retargets onto the blur σ under the Blur effect. - The transition channels ride on top of the effect model: DimBlack ⇄ WhiteWash crossfades via style_mix, flat ⇄ Blur soft-cuts via the master envelope (brush-kind flips rebuild the sprite pool, so no color crossfade is possible), and blur σ is deliberately unanimated (it is baked into the pool signature). - The local DComp renderer improvements (rounded HUD panel, divider rules, fade-envelope multiplication, actual-panel-rect distance fade, topmost early-return, toast dedup) are ported onto the WinRT renderers. - The corner mode indicator stays removed (the HUD chip supersedes it); blur/white-wash snapshots regenerated accordingly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Brush::Blur now carries the sampled master-envelope byte; the WinRT renderer applies it with SpriteVisual::SetOpacity through the same perceptual curve as the solid path's composite_alpha. Opacity is not part of the sprite-pool signature, so show/hide fades under the Blur effect animate without rebuilding the pool. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- The chip's third segment shows the blur sigma (`H · 28px · blur 9px`) under the Blur effect, where opacity is inert — matching the full panel's Blur row and what the opacity hotkeys actually adjust. - Translate the comments the local line of work had left in Japanese (anim.rs, tick.rs, hud_frame.rs, overlay_state.rs, wndproc.rs, ...) to terse English, following the repo-wide sweep from #118/#119. - Pin retarget's documented same-target no-op in the proptest (prop_assume new_to != to; the deterministic identity test covers the no-op branch). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Backtick bare type names in docs, split overlong first doc paragraphs, allow the 8-arg draw_hud_rows (mirrors HudFrame fields), drop a tautological i32::MAX prop assertion, and apply rustfmt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ly chip UI rework from hands-on feedback: - Ctrl+Alt+R now only flips the on-screen axis (Horizontal ⇄ Vertical); it no longer cycles through Off. Showing and hiding the overlay is Ctrl+Alt+H's job alone, so the two keys stop overlapping. While Off the flip is rejected with the usual HUD toast. - The full panel's hotkey guide lists only the keys that are currently actionable: while Off it collapses to On/Off, HUD detail, and Quit. - The chip drops mode/thickness/opacity readouts entirely — everything it reported is visible on screen. It now only keeps the path to the full guide alive: the HUD-detail chord while on, `Off · Ctrl+Alt+H` while off. Verified on hardware via injected chords: R-while-Off rejected (no state change), H → on, R/R axis flips, H → off, clean exit; ERROR 0, crash dumps 0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Dependency Review✅ No vulnerabilities or license issues found.Scanned FilesNone |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes #122 (identical content; the merge commit's subject line was rewritten to commitlint's merge-ignore form).
Summary
Integrates the local line of work (two-tier HUD, integer-endpoint transition channels,
visible→last_activestate model) with the WinRT backdrop-blur backend that landed in #106–#116, then reworks the hotkey UX from hands-on feedback.Semantic integration
SurroundEffect(DimBlack → WhiteWash → Blur onCtrl+Alt+E) supersedes the parallel localSurroundStyle;Ctrl+Alt+S/CycleStyleare gone.last_active+ToggleOnOff+RejectReason): adjusting anything while Off is rejected with a HUD toast, andBumpOpacityretargets onto the blur σ under the Blur effect.style_mix, flat ⇄ Blur soft-cuts via the master envelope (brush-kind flips rebuild the sprite pool), and blur σ is deliberately unanimated (baked into the pool signature).Brush::Blurnow carries the sampled master-envelope byte, applied viaSpriteVisual::SetOpacitythrough the same perceptual curve as the solid path — show/hide fades under Blur animate without pool rebuilds.Hotkey/UX rework
Ctrl+Alt+Ronly flips the on-screen axis (Horizontal ⇄ Vertical); showing/hiding isCtrl+Alt+H's job alone. While Off the flip is rejected like the other adjustments.Off · Ctrl+Alt+Hwhile off.Verification
-D warnings(core/app), rustfmt,cargo doc -D warnings,xtask dep-graphall pass.events.jsonlshows 0 ERROR and no crash dumps.🤖 Generated with Claude Code