Own Apple platform services and thin Win32 lifecycle shell

This commit is contained in:
2026-06-17 14:39:18 +02:00
parent 065717f89b
commit 2f33b00b2a
14 changed files with 517 additions and 191 deletions

View File

@@ -49,8 +49,10 @@ Completed, blocked, and superseded task history moved to
`platform_legacy`
- Apple retained bridge/state ownership now lives in
`src/platform_apple/apple_platform_state.cpp` and
`src/platform_apple/apple_platform_services.*`, but the legacy platform
facade still routes a broad Apple service surface instead of disappearing
`src/platform_apple/apple_platform_services.*`, and the live Apple
`PlatformServices` surface now binds directly from those Apple-owned files,
but the broader non-Windows fallback adapter still exists for
Android/Linux/Web
- `platform_legacy` is still part of the live app shell
- The app runtime boundary is not finished:
- render/UI queues are static `App` state
@@ -78,16 +80,22 @@ Completed, blocked, and superseded task history moved to
the queue is now ordered by code movement instead.
Current slice:
- `src/platform_apple/apple_platform_services.*` now owns the concrete Apple
`PlatformServices` implementation plus the `create_apple_platform_services()`
factory instead of leaving the live Apple execution surface in
`platform_legacy`.
- `PanoPainter-OSX/main.cpp` and `PanoPainter/GameViewController.m` now bind
owned legacy `PlatformServices` instances into `App` explicitly at the Apple
owned Apple `PlatformServices` instances into `App` directly at the Apple
entrypoints.
- `src/platform_legacy/legacy_platform_services.*` now takes an injected Apple
document-service provider through `create_platform_services(...)` instead of
hardcoding direct calls to
`active_legacy_apple_document_platform_services()` in the touched path.
- The touched Apple clipboard, keyboard visibility, render-context,
document-picker, display/share, save-ui-state, app-close, SonarPen, and
prepared-file execution now route through that injected Apple-owned provider.
document-picker, display/share, save-ui-state, app-close, SonarPen,
recording cleanup, exported-image publish, and prepared-file execution now
route through `src/platform_apple/apple_platform_services.*` instead of the
cross-platform fallback adapter.
- `src/platform_legacy/legacy_platform_services.*` no longer carries the Apple
document-service provider/configuration surface or the touched Apple method
branches, so the retained fallback adapter is narrower and now focused on the
Android/Linux/Web path.
- `src/platform_legacy/legacy_platform_services.*` now takes an explicit
Android bridge through `create_platform_services(...)` instead of declaring
Android JNI/EGL/clipboard/file-picker hooks directly inside the legacy
@@ -112,12 +120,19 @@ Current slice:
`create_platform_services(...)` instances, so removing that singleton does
not change the live entrypoint ownership path.
- `src/platform_windows/windows_runtime_state.*` now also owns the bound
Win32 `App*` / tablet binding surface alongside the retained owned `App`,
runtime, and tablet objects.
Win32 `App*`, bound-runtime shutdown, and tablet binding surface alongside
the retained owned `App`, runtime, and tablet objects.
- `src/platform_windows/windows_runtime_state.*` now also owns the Win32
owned-app creation plus app/runtime binding handoff, so
`windows_runtime_shell.cpp` is thinner and no longer open-codes that
retained runtime-state setup.
- `src/platform_windows/windows_runtime_state.*` now also owns the bound
Win32 app/runtime shutdown order, so `windows_lifecycle_shell.cpp` is down
to close-message dispatch instead of manually stopping threads and
terminating the bound app.
- `src/platform_windows/windows_lifecycle_state.*` now also owns the Win32
lifecycle close/VR control handoff, so `windows_lifecycle_shell.cpp` is
down to a thinner message adapter over the retained lifecycle state helper.
- `src/platform_windows/windows_runtime_shell.h` is thinner again and now
imports that binding surface from `windows_runtime_state.h` instead of
declaring shell-owned bind/release accessors itself.