Video: leaving screens share the montage's geometry; renderer tests for names and recordings (R2.3)

This commit is contained in:
ZacharyZhang-NY committed 2026-10-09 05:19:34 -04:00
1 parent 44a61443fa
commit 1bf693f7ab
7 files changed
+70 -39

No files matched your search

+16 -12
View File
@@ -118,21 +118,25 @@ function title(ctx, t) {
text(ctx, { s: "六个桌面应用", x: left, y: y + 46, size: 28, color: SOFT, a, align: "left", track: 2 });
}
/** App `name`'s letter cubes at `t` in its bar `b`. */
export function nameCubes(name, b, t) {
const t0 = bar(b);
const list = word(name, () => INK);
const build = slots(list, 8);
const out = slots(list, 4, 0);
return list.flatMap((c, i) => {
const at = arrive(t, t0 + (build[i] + 1) * SIX);
if (!at) return [];
const gone = lift(t, t0 + (9 + out[i]) * SIX, LAND);
return [box(c, at.dz + gone.dz, at.a * gone.a)];
});
}
/** An app's first bar: its name builds at left. */
function app(name, b) {
return (ctx, t) => {
const t0 = bar(b);
const list = word(name, () => INK);
const build = slots(list, 8);
const out = slots(list, 4, 0);
const v = place(list, 16, { left: 112, cy: 800 });
const boxes = list.flatMap((c, i) => {
const at = arrive(t, t0 + (build[i] + 1) * SIX);
if (!at) return [];
const gone = lift(t, t0 + (9 + out[i]) * SIX, LAND);
return [box(c, at.dz + gone.dz, at.a * gone.a)];
});
cubes(ctx, v, boxes);
const v = place(word(name, () => INK), 16, { left: 112, cy: 800 });
cubes(ctx, v, nameCubes(name, b, t));
};
}