diff --git a/CLAUDE.md b/CLAUDE.md index 60bcbae..ae36f35 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -96,12 +96,12 @@ ourselves". as alpha-blend on GfxObj surfaces — falsifiable; if a magic-content regression shows up, add a third indirect call with `glBlendFunc(SrcAlpha, One)` per spec §6 fallback (~30 min change). -- **Per-instance highlight (selection blink) is reserved.** `mesh_modern.vert`'s - `InstanceData` struct has a documented hook for `vec4 highlightColor` - — Phase B.4 follow-up adds the field + plumbs server-side selection - state. Stride grows from 64 → 80 bytes when added; shader updates - trivially (read the field from `Instances[instanceIndex]` + mix into - fragment color). +- **Per-instance highlight (selection blink) is reserved — open + backlog, no scheduled phase.** `mesh_modern.vert`'s `InstanceData` + struct has a documented hook for `vec4 highlightColor`. Whoever + eventually picks it up finds the hook there; the change is localized: + extend `InstanceData` stride 64→80 bytes, add the field, mix into + fragment color in `mesh_modern.frag`. ~30 min when the time comes. **Execution phases:** R1→R8 in the architecture doc. Each phase has clear goals, test criteria, and builds on the previous. Don't skip phases. diff --git a/docs/superpowers/plans/2026-05-08-phase-n5-modern-rendering.md b/docs/superpowers/plans/2026-05-08-phase-n5-modern-rendering.md index 43abd7c..e6fc047 100644 --- a/docs/superpowers/plans/2026-05-08-phase-n5-modern-rendering.md +++ b/docs/superpowers/plans/2026-05-08-phase-n5-modern-rendering.md @@ -2434,7 +2434,7 @@ Append to this plan file (`docs/superpowers/plans/2026-05-08-phase-n5-modern-ren - N.6: retire `InstancedMeshRenderer`. - N.6 candidate: persistent-mapped buffers if `glBufferData` shows up in profiling. - N.6 candidate: WB atlas adoption for memory savings on shared content. -- Phase B.4 follow-up: per-instance `highlightColor` for selection blink. +- Open backlog (no scheduled phase): per-instance `highlightColor` for retail-faithful selection blink — field reserved in `mesh_modern.vert`; whoever picks it up later finds the hook. - (Long-session memory pressure — log evidence in N.6 watchlist.) ``` @@ -2618,8 +2618,11 @@ adjustments captured beyond the plan: walls, etc). - **GPU-side culling** via compute pre-pass. - **Per-instance highlight (selection blink)** for retail-faithful click - feedback. Field reserved in `mesh_modern.vert`'s `InstanceData` struct - comment; `Phase B.4 follow-up` ticket. + feedback — **open backlog, no scheduled phase.** Field reserved in + `mesh_modern.vert`'s `InstanceData` struct comment; whoever eventually + wants it finds the hook there. Change is localized: extend + `InstanceData` stride 64→80 bytes, add `vec4 highlightColor` field, + mix into fragment color. ~30 min when the time comes. ### Memory