4.3 KiB
| id | ticket | title | status | created | completed | tags | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0044 | internal-viewport-270p | Host and Test Propagation for 270p | done | 2026-04-27 | 2026-04-27 |
|
Briefing
This plan executes the second mandatory slice of DEC-0022: propagate the accepted 480x270 runtime contract into host presentation, absolute pointer mapping, host-side overlay/test fixtures, and any remaining test surfaces that still assume 320x180.
This plan depends on PLN-0043 completing first. It must not redefine the runtime contract; it only propagates the already-accepted 270p baseline into host-owned behavior and validation surfaces.
Decisions de Origem
DEC-0022- Internal Viewport 270p (480x270) as Canonical Runtime Contract
Alvo
Make the desktop host and test surface faithfully consume the new canonical runtime resolution and touch domain.
Escopo
- Update host framebuffer/surface creation to
480x270. - Update absolute pointer/touch mapping to the new canonical domain.
- Update host overlay fixtures and tests that still allocate or draw against
320x180. - Sweep remaining test hardcodes outside the core runtime step.
Fora de Escopo
- Core runtime ownership changes already covered by
PLN-0043. - Specs and docs publication.
- Post-migration visual redesign or typography/layout tuning beyond strict propagation.
Plano de Execucao
Step 1 - Rebaseline host presentation surface
What:
Make the desktop host create and present its base Pixels surface using the new canonical runtime dimensions.
How:
Update host initialization and redraw flow so PixelsBuilder, frame copy, and overlay composition all consume Hardware::W/H after the runtime constants move to 480x270.
File(s):
crates/host/prometeu-host-desktop-winit/src/runner.rscrates/host/prometeu-host-desktop-winit/src/utilities.rs
Step 2 - Rebaseline absolute input mapping
What: Align pointer/touch translation with the new canonical framebuffer domain.
How:
Update window_to_fb() and any clamping logic to map window coordinates into [0, 479] x [0, 269] through the canonical Hardware::W/H path.
File(s):
crates/host/prometeu-host-desktop-winit/src/input.rs
Step 3 - Update host overlay fixtures and tests
What:
Remove host overlay hardcodes that still allocate or draw a 320x180 RGBA buffer.
How:
Update overlay tests and any host-owned fixtures so they use 480x270 or derive from the canonical hardware constants where appropriate. Preserve overlay semantics; do not redesign the overlay in this plan.
File(s):
crates/host/prometeu-host-desktop-winit/src/overlay.rs
Step 4 - Sweep remaining non-doc resolution assertions
What: Capture and update any remaining code or tests outside specs/docs that still depend on the old baseline.
How:
Search for 320x180, 320, 180, and equivalent fixed-size assumptions under host/runtime test surfaces and migrate them to the accepted 270p contract or to canonical constants.
File(s):
crates/host/prometeu-host-desktop-winit/src/*- any remaining test modules under
crates/console/*
Criterios de Aceite
- The desktop host creates its base surface from the
480x270canonical runtime dimensions. - Absolute pointer/touch mapping uses the new framebuffer domain.
- Host overlay tests no longer hardcode
320x180. - No host-owned code path reintroduces the old baseline as an implicit contract.
Tests / Validacao
Unit Tests
cargo testfor:prometeu-host-desktop-winitany directly impacted console crates
Integration Tests
- Verify runtime frame copy still lands correctly in the host RGBA surface.
- Verify pointer mapping clamps to the new canonical framebuffer bounds.
Manual Verification
- Launch the desktop host and confirm the window presents a
480x270logical framebuffer. - Confirm overlay still renders and aligns within the new frame domain.
- Confirm pointer/touch interaction reaches the expected screen edges.
Riscos
- Host visual regressions may appear only at runtime even when tests pass.
- Overlay layout may become visually awkward at 270p even if functionally correct; cosmetic tuning is intentionally deferred.
- Partial migration risks mismatch between runtime dimensions and host test fixtures if
PLN-0043is not completed first.
Dependencies
PLN-0043MUST complete first.