Ω-W1-T3 remediation: meter stays live and washed under the curve popup, not frozen
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
#include <cassert>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -62,6 +63,7 @@ void drawMeterField(LICE_IBitmap* bmp, const MeterRects& m, const MasterMeterUi&
|
||||
// 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.
|
||||
if (m.field.empty()) return;
|
||||
assert(meterBarsWithinField(m)); // the self-containment invariant this draw rests on
|
||||
fillSurface(bmp, toKitBox(m.field), Role::BgCell, InteractionState::Rest);
|
||||
|
||||
// Scale: a rule every 6 dB, numeralled every 12 with 0 dB heavier — the reference the
|
||||
@@ -111,6 +113,14 @@ void drawMeterField(LICE_IBitmap* bmp, const MeterRects& m, const MasterMeterUi&
|
||||
|
||||
void ReaSamplerEditor::paintMeterField(LICE_IBitmap* bmp) {
|
||||
drawMeterField(bmp, meterRects_, masterMeter_);
|
||||
// A full paint under the curve popup washes the whole client at 0.50 alpha AFTER the deck
|
||||
// draws (paintCurvePopup); a meter-only fast-path frame draws fresh opaque bars into that
|
||||
// same back buffer, so it must reapply the same wash to the field alone or the meter would
|
||||
// flash through at full brightness against the dimmed rest of the face.
|
||||
if (curvePopup_ != CurveTarget::kNone && !meterRects_.field.empty()) {
|
||||
const Rect& f = meterRects_.field;
|
||||
LICE_FillRect(bmp, f.x, f.y, f.width, f.height, toLice(roleColor(Role::BgBase)), 0.50f, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void ReaSamplerEditor::paintDeck(LICE_IBitmap* bmp, const FaceLayout& fl) {
|
||||
|
||||
Reference in New Issue
Block a user