filter: sweep the corner continuously; raise the editor floor to 840x620

Cutoff-only re-solve (15.5 vs 56.9 ns/frame) makes the unquantized sweep
affordable, replacing the 2048-step mod quantizer. Live-compute parameters
remain blocked on a shell-architecture ruling.
This commit is contained in:
2026-07-30 18:12:10 -04:00
parent 39389c1183
commit 0cfd9b6236
14 changed files with 237 additions and 88 deletions
+5 -5
View File
@@ -4,9 +4,8 @@
// * group width — caption row vs knob row max + padding; row-toggle and caption-toggle widths.
// * layout — caption toggle right-anchored IN the caption row; cells fixed 48x58 left-to-right
// inside the box; knob square centered; label band beneath; row toggle after the cells.
// * wrap — deterministic whole-group wrap at a narrowing width (the r11 "PITCH ENV onto row
// two at the 560 floor" behavior); the first group of a row always places; deckHeight
// consistency with deckRowCount.
// * wrap — deterministic whole-group wrap at a narrowing width; the first group of a row
// always places; deckHeight consistency with deckRowCount.
// * hit-test — knob cell hit (whole cell), toggle segment 0/1 boundaries, blank (-1) cells
// and fence padding miss, outside-deck miss.
@@ -52,8 +51,9 @@ static void testGroupWidth() {
}
static void testWrapAtNarrowWidthIsDeterministic() {
// At the 560x460 checkSizeConstraint floor (544 available) the deck wraps to TWO rows,
// whole trailing groups only.
// A width that forces this synthetic deck to wrap: TWO rows, whole trailing groups only.
// Deliberately narrower than the shipped editor floor — this pins the wrap MECHANISM, not
// the shipped deck's row count (that is deck_groups' own test).
const auto deck = shellLikeDeck();
CHECK(deckRowCount(deck, 544) == 2);
CHECK(deckHeight(deck, 544) == 2 * kDeckGroupH + kDeckRowGap);