2.4 KiB
| id | ticket | title | status | created | completed | ref_decisions | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0102 | real-render-worker-establishment | Introduce Game2DFrameComposer Logical Service | done | 2026-06-06 |
|
|
Objective
Introduce Game2DFrameComposer as the logical-side service/facade for Game2D frame preparation.
Background
DEC-0032 states that bind_scene, set_camera, emit_sprite, and close_game2d_packet are logical frame preparation, not physical backend behavior.
Scope
Included
- Define a
Game2DFrameComposerfacade. - Move or wrap existing
FrameComposerbehavior under logical-side naming. - Migrate composer syscalls to use the facade rather than generic hardware.
Excluded
- Do not rewrite scene cache internals.
- Do not move viewport cache across threads.
- Do not implement worker.
Execution Steps
Step 1 - Define composer facade
What: Add Game2DFrameComposer trait or service contract.
How: Include begin_frame, bind_scene, unbind_scene, set_camera, emit_sprite, close_game2d_packet, and required read checks.
File(s): crates/console/prometeu-hal/src/platform.rs or composer-specific HAL module.
Step 2 - Implement using current composer
What: Make current local driver composer satisfy the new logical service.
How: Reuse FrameComposer implementation under adapter/implementation.
File(s): crates/console/prometeu-drivers/src/frame_composer.rs, crates/console/prometeu-drivers/src/hardware.rs.
Step 3 - Migrate composer syscalls
What: Dispatch composer syscalls through Game2DFrameComposer.
How: Remove dependency on HardwareBridge methods for composer.
File(s): crates/console/prometeu-system/src/services/vm_runtime/dispatch.rs.
Test Requirements
Unit Tests
- Composer facade closes packets equivalent to previous
FrameComposer. - Invalid scene/bank behavior remains unchanged.
Integration Tests
- Existing scene/composer runtime tests pass.
Manual Verification
- Composer syscalls no longer require
&mut dyn HardwareBridge.
Acceptance Criteria
Game2DFrameComposerexists as logical service/facade.- Composer syscalls route through it.
- Existing Game2D scene rendering remains correct.
Dependencies
PLN-0098.PLN-0101.
Risks
- Scene cache ownership can be accidentally moved too early. Keep cache behavior local while changing the boundary.