Ω-W1-T3 remediation: meter stays live and washed under the curve popup, not frozen
This commit is contained in:
@@ -285,10 +285,14 @@ against a performance budget — they are there because `VoiceEngine::applyLiveT
|
||||
field stays on the full path: the static numeral gutter (AA text re-blended onto itself every
|
||||
frame thickens) and the GR lamp (drawn straight onto the deck group's gradient, which a
|
||||
sub-rect fill cannot reproduce), so a lamp transition takes a whole-client repaint. **When the
|
||||
meter is covered or absent** (Browse, the curve popup, the empty state) `invalidateMeter`
|
||||
skips invalidating anything at all rather than falling back to a whole-client repaint — the
|
||||
ballistics still advance on `onMeterTimer`'s own clock, but nothing visible changed, so a
|
||||
60 FPS whole-client repaint under a modal sheet would be pure cost for zero pixels shown.
|
||||
meter is covered or absent** (Browse, the empty state) `invalidateMeter` skips invalidating
|
||||
anything at all rather than falling back to a whole-client repaint — the ballistics still
|
||||
advance on `onMeterTimer`'s own clock, but nothing visible changed, so a 60 FPS whole-client
|
||||
repaint under a modal sheet would be pure cost for zero pixels shown. **The curve popup does
|
||||
NOT cover the meter** — its centered sheet clamps to 520x380 (`curve_popup.h`) against the
|
||||
meter's fixed right-anchored slot, at any resizable window size — so the fast path stays live
|
||||
under it; `paintMeterField` reapplies the popup's own 0.50-alpha wash to the field alone so a
|
||||
meter-only frame doesn't flash through it at full brightness.
|
||||
- The bake's availability probe runs on the SAME tick that paints the button, so the
|
||||
control can never be enabled on one tick and refuse on the next. The bake Hold control's
|
||||
applicability (`resolveBakeHoldNeeded`) rides the same tick for the same reason, and
|
||||
|
||||
Reference in New Issue
Block a user