Route app frame decisions through app core

This commit is contained in:
2026-06-05 06:08:39 +02:00
parent 678bf2dcd6
commit f7979be80f
11 changed files with 287 additions and 12 deletions

View File

@@ -198,6 +198,11 @@ and floating-point render targets; `App::title_update`,
`App::update_memory_usage`, `App::update_rec_frames`, resolution helpers,
`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.
`panopainter_app` is now a real static target that owns app orchestration
sources, app version metadata, and version-header generation.
`pp_panopainter_ui` now owns app-specific modal, dialog, panel, canvas,
@@ -1286,7 +1291,7 @@ standard x64/arm64, Android Quest arm64, Android Focus/Wave arm64,
Emscripten/WebGL, macOS, iOS device, and iOS simulator. `platform-build`
automation now builds the current headless component matrix, including
`pp_platform_api`, `pp_app_core`, platform API tests, brush-package tests, and
the current app-core startup/file/document/brush/canvas/history/grid/toolbar/
the current app-core startup/frame/file/document/brush/canvas/history/grid/toolbar/
tools/about/preferences/status automation tests. The PowerShell wrapper also
normalizes comma-separated `-Presets` and `-Targets` values for reliable
machine-driven partial matrix checks. `panopainter_platform_build_target_matrix_self_test`
@@ -1643,6 +1648,11 @@ Results:
`pano_cli_plan_app_startup_rejects_negative_counter`, with startup resource
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`.
- 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`.
- `PanoPainter`, `pp_app_core_brush_package_export_tests`, and `pano_cli` built
after PPBR brush package export request validation and dispatch moved behind
app-core brush package services.