Ω-W1-T3 review fixes: skip meter invalidate when covered; push fast-path predicates into core
Fixes the critical finding — Browse/curve-popup no longer trigger 60 Hz whole-client repaints when the meter is invisible. Pushes the fast-path and self-containment geometry into master_meter with tests; batches the four minor findings.
This commit is contained in:
@@ -284,7 +284,11 @@ against a performance budget — they are there because `VoiceEngine::applyLiveT
|
||||
a flag would paint a meter frame over a face that had really changed. What stays outside the
|
||||
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.
|
||||
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.
|
||||
- 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