Plan UI observer frame clipping

This commit is contained in:
2026-06-05 07:18:48 +02:00
parent 942c053c19
commit a104f88360
8 changed files with 407 additions and 57 deletions

View File

@@ -839,8 +839,9 @@ Known local toolchain state:
- `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, tick layout selection,
resize render-target/redraw projection, invalid resize rejection, and redraw
reset planning.
resize render-target/redraw projection, invalid resize rejection, redraw
reset planning, UI observer clipping, on-screen enter/leave transition
decisions, scissor projection, and malformed observer geometry rejection.
- `pp_app_core_app_thread_tests` covers render/UI task dispatch, immediate
same-thread execution, unique queued-task replacement, stopped-worker
no-wait behavior, render queue context wrapping, UI tick redraw scheduling,

File diff suppressed because one or more lines are too long

View File

@@ -200,10 +200,12 @@ and floating-point render targets; `App::title_update`,
legacy UI nodes still render the strings and status lights.
Frame-level app decisions for the initial surface size, redraw/animation update
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`;
VR UI drawing, main UI drawing, UI observer clipping/on-screen transition/scissor
projection, 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.
render-target recreation, `Node` parent walking, on-screen callbacks, 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, VR spacebar camera-sync intent, UI visibility toggling, and stylus
@@ -1682,7 +1684,11 @@ Results:
`pano_cli_plan_app_frame_vr_smoke`, and
`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`.
`pano_cli_plan_app_frame_rejects_bad_resize`. On 2026-06-05, UI observer
clipping/on-screen/scissor projection coverage was added through
`pp_app_core_app_frame_tests`, `pano_cli_plan_app_frame_observer_smoke`,
`pano_cli_plan_app_frame_observer_clipped_smoke`, and
`pano_cli_plan_app_frame_rejects_bad_observer`.
- `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`,