perf(ui): retain shaped report text

This commit is contained in:
Erik 2026-07-25 05:11:12 +02:00
parent c0bec56dfe
commit f2a015be8e
11 changed files with 525 additions and 38 deletions

View file

@ -267,7 +267,7 @@ hooks, collision, landing, and movement-wire cadence remain unchanged.
## #236 — UiText re-runs full word-wrap shaping every visible frame
**Status:** OPEN
**Status:** DONE — 2026-07-25, Modern Runtime Slice H-a1
**Severity:** MEDIUM
**Filed:** 2026-07-24
**Component:** ui (retained)
@ -291,6 +291,14 @@ to plan Slice H-a.
`src/AcDream.App/UI/Layout/ItemAppraisalReport.cs:137-183`;
`src/AcDream.App/UI/Layout/CharacterStatController.cs:297,306`.
**Resolution:** `UiTextLayoutCache<T>` now retains shaped lines across stable
draws and invalidates on semantic content, width, padding, color, palette, or
font changes. Appraisal and effect controllers publish content through that
cache; character information is invalidated by the current character's
object/local-state events and panel-show lifecycle. Stable provider polling is
covered by a zero-managed-allocation test. Evidence:
`docs/research/2026-07-25-slice-h-a1-ui-text-cache.md`.
---
## #237 — PhysicsEngine allocates a fresh Transition graph per resolve call