Inject Windows platform services

This commit is contained in:
2026-06-03 04:14:47 +02:00
parent 0e77ca6ba8
commit ead7f58285
6 changed files with 166 additions and 82 deletions

View File

@@ -471,11 +471,12 @@ before retained platform clipboard bridges continue.
`pp_platform_api` now owns a headless `PlatformServices` interface for
clipboard text, cursor visibility, virtual-keyboard visibility, external file
display, file sharing, image/file/save-file pickers, and directory pickers.
Live app clipboard/cursor/keyboard/display/share/picker execution routes
through a debt-tracked legacy adapter in `app_events.cpp`, so behavior is
preserved while later platform shell implementations can replace direct bridge
calls. The iOS/Web save-with-writer overload remains separate because it writes
a temporary/exported file before handing control to the platform.
Windows installs an injected `WindowsPlatformServices` implementation from
`pp_platform_windows`; other platforms still route through the debt-tracked
legacy fallback adapter in `app_events.cpp`, so behavior is preserved while
their platform shell implementations are extracted. The iOS/Web
save-with-writer overload remains separate because it writes a
temporary/exported file before handing control to the platform.
`pano_cli plan-cloud-upload` exposes the app-core cloud upload decision used by
the live cloud upload command for missing-canvas, new-document warning, publish
prompt, and dirty-document save-before-upload states before legacy UI, canvas,
@@ -990,8 +991,9 @@ Results:
interface for clipboard read/write, empty clipboard writes, cursor
visibility dispatch, virtual-keyboard visibility dispatch, external file
display dispatch, file sharing dispatch, and picker callback dispatch. The
live app now consumes this interface through the legacy platform adapter for
clipboard/cursor/keyboard/display/share/picker execution.
live Windows app now consumes this interface through an injected
`WindowsPlatformServices` instance owned by `pp_platform_windows`; other
platforms still use the legacy fallback adapter.
- `panopainter_validate_shaders` passed, validating 25 shader programs and 7
shader includes for stage markers and include graph integrity.
- `pp_renderer_gl_capabilities_tests` passed on default MSVC, vcpkg-headless,