Loop: an explicit enable, four named marks with grabbable caps, and the crossfade painted where it is actually heard
hasLoop becomes user-owned with the gestures as shortcuts onto it; no format change. START uses overlay/trace, not accent/primary, which is the waveform's own fill.
This commit is contained in:
@@ -55,7 +55,14 @@ void ReaSamplerEditor::paintSample(LICE_IBitmap* bmp, int w, int h) {
|
||||
const FaceLayout fl = faceLayout(w, h);
|
||||
const bool empty = selectedId_.empty();
|
||||
|
||||
paintChrome(bmp, fl, empty);
|
||||
// Resolved ONCE per paint and handed to both bands that show it. The chrome enable and the
|
||||
// waveform marks are two views of the same `hasLoop`, so they must not resolve it
|
||||
// separately — and with no loop override set the resolve costs a bridge read plus a bank
|
||||
// parse, which is not a cost to pay twice a frame.
|
||||
SetupMarkers marks;
|
||||
if (!empty) marks = pickedMarkers(static_cast<std::int64_t>(monoPcmFor(selectedId_).size()));
|
||||
|
||||
paintChrome(bmp, fl, empty, marks);
|
||||
|
||||
// Nothing loaded: the lower bands carry the "pick a capture" prompt pointing at Browse
|
||||
// (which the chrome lit above), and there is nothing to deck.
|
||||
@@ -66,7 +73,7 @@ void ReaSamplerEditor::paintSample(LICE_IBitmap* bmp, int w, int h) {
|
||||
return;
|
||||
}
|
||||
|
||||
paintWaveform(bmp, fl.bands.waveform);
|
||||
paintWaveform(bmp, fl.bands.waveform, marks);
|
||||
paintDeck(bmp, fl);
|
||||
|
||||
// The curve popup: a centered sheet over the whole face, drawn last.
|
||||
|
||||
Reference in New Issue
Block a user