Own grid workers and thin Apple platform bridge

This commit is contained in:
2026-06-16 07:02:49 +02:00
parent 953fa11744
commit 75f57213ca
8 changed files with 292 additions and 57 deletions

View File

@@ -94,10 +94,10 @@ Current architecture mismatches that must be treated as real blockers:
- `pp_platform_api` still compiles Apple implementation files instead of only
platform-neutral policy and interface code.
- `src/platform_apple/apple_platform_services.cpp` and
parts of the concrete platform layer still reach `App::I`; Linux FPS title
reporting now uses an injected callback, but Apple singleton reach and other
platform/app coupling remain.
- `src/platform_apple/apple_platform_services.cpp` no longer reaches `App::I`
directly, and Linux FPS title reporting now uses an injected callback, but
retained Apple bridging in `platform_legacy` and other platform/app coupling
remain.
- `src/platform_legacy/legacy_platform_services.*` is still part of the live
app shell.
- `pp_panopainter_ui` still depends on `pp_legacy_app`.
@@ -107,7 +107,8 @@ Current architecture mismatches that must be treated as real blockers:
rather than thin composition/binding surfaces.
- `App`, `Canvas`, `Node`, retained workers, and platform entrypoints still use
global singleton reach, raw observer pointers, detached `std::thread`
launches, and ad hoc mutex/condition-variable ownership.
launches in several canvas/export/preview paths, and ad hoc
mutex/condition-variable ownership.
- Modern C++23 usage exists in extracted components, especially `std::span`,
explicit result/status objects, and a few concepts, but the live app still
does not consistently express ownership, thread affinity, or renderer