docs: backlog — primitives drawn opt-in; their paint order needs a runtime read

This commit is contained in:
Sylpheed RE agent
2026-08-19 07:21:48 +00:00
parent eb86142e4f
commit 71d9b73afe

View File

@@ -102,11 +102,21 @@ See [`structures/ui-composable-bundles.md`](structures/ui-composable-bundles.md)
too, and the tie-break was grabbing it, which erased the word PAUSE; a run
ending on the last keyframe is now excluded.
See [`structures/ui-resting-pose.md`](structures/ui-resting-pose.md).
* **Draw the `.prm` quads.** ← *next; nothing is blocking it now.* A solid
`fade`-coloured rect at `pivot × 2`, painted in layer-key order like everything
else. The title's `pteff00.prm` rests transparent and its `pteff02.prm` at
`0x00000000`, so the title should be unchanged — that is the regression check.
`GP_*` screens that dim behind a menu are where it should show.
* 🟡 **The `.prm` quads are drawn, opt-in** (2026-08-19).
`ComposeOptions::include_primitives` / `screen render --primitives`. On the
title — the one screen with ground truth — it takes mean luminance from **+18 %
to 1.3 %** of the capture (76.30 → 63.72 vs 64.58) and mean abs diff 16.07 →
13.08. Off by default because of the item below.
***Where a primitive paints. ← next, and it needs the emulator.** A primitive
has no `T8aD` header, so no layer key, and the derived order forces the keyless
last — which wipes **36 of the 125** builds that draw one (`GP_DIALOG`'s
`pzeff00.prm` is a single opaque-black full-screen keyframe). No constant
default works: the splash paints its primitive **first** (a black backdrop),
the title paints one at slot **4** and another **last**, and declaration order
fails the title too. Cheapest first step: a third measured paint order from a
screen carrying exactly one primitive — the `GP_DIALOG` DIFFICULTY box, which
is reachable from the main menu, would say whether its dim is first or last.
This is a runtime child-list read, so it is an emulator item, not a static one.
***Blend mode.** Everything is straight alpha-over. The near-white flash
quads (`0xf0ffffff`) and coloured ones (`0x60ff0000`) may be additive. The
title capture cannot separate the two — its resting elements are all