Extend app frame planning to tick and resize

This commit is contained in:
2026-06-05 06:23:00 +02:00
parent 48a4547f51
commit 548b6d3ae5
8 changed files with 205 additions and 24 deletions

View File

@@ -242,10 +242,11 @@ Known local toolchain state:
UI render-target creation, recording startup, VR-controller state mutation,
settings writes, and license-warning dialogs remain legacy execution.
- `src/app_core/app_frame.h` owns the current initial surface, update-gating,
and draw-pass decisions consumed by `App::create`, `App::update`,
`App::draw`, and `pano_cli plan-app-frame`; retained layout traversal,
toolbar widget writes, canvas stroke drawing, VR UI render-target drawing,
main target binding, and OpenGL/UI drawing remain in the legacy app.
tick, resize, and draw-pass decisions consumed by `App::create`,
`App::tick`, `App::resize`, `App::update`, `App::draw`, and
`pano_cli plan-app-frame`; retained layout traversal, toolbar widget writes,
UI render-target recreation, canvas stroke drawing, VR UI render-target
drawing, main target binding, and OpenGL/UI drawing remain in the legacy app.
- `src/app_core/app_shutdown.h` owns the current shutdown cleanup staging
consumed by `App::terminate` and `pano_cli plan-app-shutdown`; retained
UI-state save, recording stop, resource invalidation, layout unload,
@@ -836,7 +837,9 @@ Known local toolchain state:
split persistence/runtime dispatch, and malformed startup-plan rejection.
- `pp_app_core_app_frame_tests` covers the legacy initial surface default,
idle/redraw/animation update gating, canvas-stroke draw eligibility, VR UI
visibility, main UI suppression in VR-only mode, and redraw reset planning.
visibility, main UI suppression in VR-only mode, tick layout selection,
resize render-target/redraw projection, invalid resize rejection, and redraw
reset planning.
- `pp_app_core_app_shutdown_tests` covers legacy shutdown cleanup staging for
UI-state save, stroke-preview renderer shutdown, recording stop,
texture/shader invalidation, layout unload, render-target/mesh destruction,

View File

@@ -92,11 +92,12 @@ agent or engineer to remove them without reconstructing context from chat.
and runtime side effects through the startup bridge. `pano_cli
plan-app-startup-resources` exposes the resource path for automation.
- 2026-06-05: DEBT-0003 was narrowed. Initial surface sizing, redraw/animation
update gating, canvas-stroke draw eligibility, VR UI pass selection, main UI
pass selection, and redraw reset are now tested `pp_app_core` frame plans
consumed by `App::create`, `App::update`, `App::draw`, and
update gating, layout tick selection, resize render-target recreation,
canvas-stroke draw eligibility, VR UI pass selection, main UI pass selection,
and redraw reset are now tested `pp_app_core` frame plans consumed by
`App::create`, `App::tick`, `App::resize`, `App::update`, `App::draw`, and
`pano_cli plan-app-frame`; retained layout traversal, toolbar widget writes,
and OpenGL/UI drawing remain in the legacy app.
render-target recreation, and OpenGL/UI drawing remain in the legacy app.
- 2026-06-05: DEBT-0003 was narrowed again. Shutdown cleanup staging for
UI-state save, stroke-preview renderer shutdown, recording stop,
texture/shader invalidation, layout unload, UI render-target and face-plane

View File

@@ -199,10 +199,11 @@ and floating-point render targets; `App::title_update`,
`App::initLayout`, and `pano_cli plan-app-status` consume those contracts while
legacy UI nodes still render the strings and status lights.
Frame-level app decisions for the initial surface size, redraw/animation update
gating, canvas-stroke drawing, VR UI drawing, main UI drawing, and redraw reset
now live in `pp_app_core`; `App::create`, `App::update`, `App::draw`, and
`pano_cli plan-app-frame` consume those plans while retained layout traversal
and OpenGL/UI drawing stay in the legacy app.
gating, layout ticking, resize render-target recreation, canvas-stroke drawing,
VR UI drawing, main UI drawing, and redraw reset now live in `pp_app_core`;
`App::create`, `App::tick`, `App::resize`, `App::update`, `App::draw`, and
`pano_cli plan-app-frame` consume those plans while retained layout traversal,
render-target recreation, and OpenGL/UI drawing stay in the legacy app.
Shutdown lifecycle staging for UI-state save, stroke-preview renderer shutdown,
recording stop, texture/shader invalidation, layout unload, render-target
destruction, panel-node release, and quick-mode cleanup now lives in
@@ -1654,10 +1655,13 @@ Results:
sequencing also covered by `pano_cli_plan_app_startup_resources_smoke` and
`pano_cli_plan_app_startup_resources_rejects_bad_size`.
- `PanoPainter`, `pp_app_core_app_frame_tests`, and `pano_cli` built after
app frame surface/update/draw-pass decisions moved into `pp_app_core`.
app frame surface/update/tick/resize/draw-pass decisions moved into
`pp_app_core`.
- Focused frame CTest coverage passed for `pp_app_core_app_frame_tests`,
`pano_cli_plan_app_frame_vr_smoke`, and
`pano_cli_plan_app_frame_idle_missing_canvas_smoke`.
`pano_cli_plan_app_frame_idle_missing_canvas_smoke`, with resize automation
covered by `pano_cli_plan_app_frame_resize_smoke` and
`pano_cli_plan_app_frame_rejects_bad_resize`.
- `PanoPainter`, `pp_app_core_app_shutdown_tests`, and `pano_cli` built after
shutdown cleanup staging moved into `pp_app_core`.
- Focused shutdown CTest coverage passed for `pp_app_core_app_shutdown_tests`,