3.4 KiB
3.4 KiB
| id | ticket | title | status | created | completed | tags | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0026 | deferred-overlay-and-primitive-composition | Plan - GFX Overlay Contract and Spec Propagation | accepted | 2026-04-18 |
|
Objective
Propagate DEC-0016 into the canonical specs and internal contracts so gfx.* primitives are defined as deferred final overlay/debug operations outside FrameComposer.
Background
DEC-0016 locks a new semantic boundary:
FrameComposerremains the owner of canonical game-frame composition;gfx.*primitives anddraw_text(...)become deferred final overlay/debug operations;- that overlay lives outside
FrameComposerand is drained afterhud_fade.
Execution must start by updating the normative contract before implementation changes spread through runtime and drivers.
Scope
Included
- update canonical runtime/gfx spec text to describe deferred overlay semantics
- update any ABI-facing or developer-facing docs that still imply direct stable writes to
back - align local contract comments and module docs where they currently imply immediate-write semantics as the stable model
Excluded
- implementation of the overlay subsystem
- runtime frame-end integration
- final repository-wide CI
Execution Steps
Step 1 - Update canonical graphics/runtime documentation
What:
Publish the new semantic contract for gfx.* primitives.
How:
- Update the canonical runtime/gfx spec so
gfx.draw_text(...)and peer primitives are described as deferred final overlay/debug operations. - State explicitly that primitives are not part of canonical scene/sprite/HUD composition.
- State the ordering rule that overlay/debug is drained after
hud_fade. - Ensure the no-scene and scene-bound paths are described consistently.
File(s):
- canonical runtime/gfx spec files under
docs/specs/runtime/
Step 2 - Align implementation-facing contract text
What: Remove stale implementation comments that imply immediate stable writes to the framebuffer.
How:
- Inspect module-level comments and trait docs in
hal,drivers, and runtime code for language that now contradictsDEC-0016. - Update only the contract-bearing comments and docs that materially affect maintenance and implementation clarity.
File(s):
crates/console/prometeu-hal/src/gfx_bridge.rscrates/console/prometeu-drivers/src/gfx.rscrates/console/prometeu-drivers/src/frame_composer.rs- runtime-adjacent modules where frame ordering is described
Test Requirements
Unit Tests
- none required for pure doc propagation
Integration Tests
- none required for pure doc propagation
Manual Verification
- inspect the updated spec and local contract comments to confirm they no longer describe primitives as stable direct writes to
back
Acceptance Criteria
- Canonical spec text describes
gfx.*primitives as deferred final overlay/debug operations. - The spec states that overlay/debug is outside
FrameComposer. - The spec states that overlay/debug is drained after
hud_fade. - Local implementation-facing contract comments no longer imply immediate-write semantics as the stable model.
Dependencies
- Source decision:
DEC-0016
Risks
- Missing a normative doc location would leave code and published contract divergent.
- Over-editing local comments could unintentionally restate design choices outside the scope of
DEC-0016.