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

@@ -70,16 +70,22 @@ What is already real:
- `pp_app_core`
Latest 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 inside
`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
@@ -103,14 +109,21 @@ Latest slice:
- Linux, WebGL, and Android were already on owned
`create_platform_services(...)` instances, so removing that legacy singleton
surface does not change the live entrypoint ownership path.
- `src/platform_windows/windows_runtime_state.*` now owns the Win32 bound-app
and bound-tablet bindings beside the retained owned `App`, `AppRuntime*`,
and `WacomTablet` objects instead of leaving that binding surface in
`windows_runtime_shell.cpp`.
- `src/platform_windows/windows_runtime_state.*` now owns the Win32 bound-app,
bound-runtime shutdown, and bound-tablet bindings beside the retained owned
`App`, `AppRuntime*`, and `WacomTablet` objects instead of leaving that
binding surface in `windows_runtime_shell.cpp`.
- `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 down to a thinner startup dispatcher over the
retained runtime-state helper.
- `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 itself.
- `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 now a thinner runtime
entrypoint header that picks up the retained binding surface from
`windows_runtime_state.h` instead of declaring a second shell-owned binding