Ω-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:
@@ -54,6 +54,10 @@ void drawMeterNumerals(LICE_IBitmap* bmp, const MeterRects& m) {
|
||||
// covers every pixel the rest of it then draws, so a meter frame can redraw this rect alone.
|
||||
// Two bars or one is read off the rects (barB is empty exactly when the split is Single), so
|
||||
// the lane decision has one representation here rather than two.
|
||||
// This self-containment depends on Role::BgCell being fully OPAQUE at InteractionState::Rest
|
||||
// (theme.cpp: alpha 255) — fillGradient blends rather than overwrites at alpha < 255, so a
|
||||
// translucent BgCell would make every meter frame re-blend over whatever the last frame left,
|
||||
// the exact AA-thickening the numeral gutter comment below is guarding against.
|
||||
void drawMeterField(LICE_IBitmap* bmp, const MeterRects& m, const MasterMeterUi& state) {
|
||||
// A column narrower than the interior needs yields all-empty rects, which under rect.h's
|
||||
// contract means suppressed — not a zero-height field to fill, tick twelve times and cap.
|
||||
|
||||
Reference in New Issue
Block a user