Route app input dispatch through app core

This commit is contained in:
2026-06-05 06:38:48 +02:00
parent 1df93c23f7
commit b825d920d2
11 changed files with 695 additions and 46 deletions

View File

@@ -840,6 +840,10 @@ Known local toolchain state:
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_input_tests` covers pointer coordinate normalization,
invalid pointer/gesture inputs, designer-first mouse routing, mouse-cancel
routing, gesture midpoint/distance/delta math, main-layout routing, key state
mutation intent, and VR spacebar camera-sync intent.
- `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

@@ -98,6 +98,13 @@ agent or engineer to remove them without reconstructing context from chat.
`App::create`, `App::tick`, `App::resize`, `App::update`, `App::draw`, and
`pano_cli plan-app-frame`; retained layout traversal, toolbar widget writes,
render-target recreation, and OpenGL/UI drawing remain in the legacy app.
- 2026-06-05: DEBT-0003 was narrowed. Pointer coordinate normalization,
mouse designer-first routing, gesture midpoint/delta math, touch/key
main-layout routing, and VR spacebar camera-sync intent are now tested
`pp_app_core` input plans consumed by `App::mouse_*`, `App::gesture_*`,
`App::touch_tap`, `App::key_*`, and `pano_cli plan-app-input`; retained
`MouseEvent`/`GestureEvent`/`TouchEvent`/`KeyEvent` construction and legacy
`Node` event dispatch remain in the app shell.
- 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

@@ -204,6 +204,12 @@ 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.
App input dispatch decisions for pointer coordinate normalization, mouse
designer-first routing, gesture midpoint/delta math, touch/key main-layout
routing, and VR spacebar camera-sync intent now live in `pp_app_core`;
`App::mouse_*`, `App::gesture_*`, `App::touch_tap`, `App::key_*`, and
`pano_cli plan-app-input` consume those plans while retained event objects and
legacy `Node` dispatch stay in the app shell.
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
@@ -1667,6 +1673,13 @@ Results:
`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_input_tests`, and `pano_cli` built after
app input routing and normalization moved into `pp_app_core`.
- Focused app-input CTest coverage passed for `pp_app_core_app_input_tests`,
`pano_cli_plan_app_input_pointer_smoke`,
`pano_cli_plan_app_input_gesture_smoke`,
`pano_cli_plan_app_input_key_vr_smoke`, and
`pano_cli_plan_app_input_rejects_bad_float`.
- `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`,