Own Web platform services and remove legacy web state

This commit is contained in:
2026-06-17 15:42:03 +02:00
parent 9750c418bc
commit ab6436a38d
18 changed files with 165 additions and 194 deletions

View File

@@ -53,8 +53,9 @@ Completed, blocked, and superseded task history moved to
`PlatformServices` surface now binds directly from those Apple-owned files,
and Android now also binds directly from
`src/platform_android/android_platform_services.*`, and Linux now also
binds directly from `src/platform_linux/linux_platform_services.*`, but the
broader non-Windows fallback adapter still exists for Web plus generic
binds directly from `src/platform_linux/linux_platform_services.*`, and Web
now also binds directly from `src/platform_web/web_platform_services.*`,
but the broader non-Windows fallback adapter still exists as generic
fallback policy
- `platform_legacy` is still part of the live app shell
- The app runtime boundary is not finished:
@@ -83,6 +84,20 @@ Completed, blocked, and superseded task history moved to
the queue is now ordered by code movement instead.
Current slice:
- `src/platform_web/web_platform_services.*` now owns the concrete Web
`PlatformServices` implementation and `webgl/src/main.cpp` now binds that
owned service directly at the WebGL entrypoint.
- The touched Web storage-path setup, GLFW render-context acquire/present,
app-close dispatch, prepared-file save handoff, persistent-storage flush,
default render-target binding, and picker execution now route through
`src/platform_web/web_platform_services.*` instead of the cross-platform
fallback adapter.
- `src/platform_legacy/legacy_platform_services.*` no longer carries the
touched Web method branches or the retained `WebPlatformServices*`
dependency, and `src/platform_legacy/legacy_platform_state.*` is gone.
- `pp_platform_web` now exists as the concrete Web target in root CMake and is
linked into `pp_platform_api_tests`, while `webgl/CMakeLists.txt` also
compiles the concrete Web service directly for the retained WebGL app build.
- `src/platform_linux/linux_platform_services.*` now owns the concrete Linux
`PlatformServices` implementation and `create_platform_services(...)`
instead of leaving the live Linux execution surface in `platform_legacy`.
@@ -124,15 +139,9 @@ Current slice:
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
`WebPlatformServices*` dependency through `create_platform_services(...)`
instead of routing WebGL publish/flush/default-canvas/save-prepared-file
behavior through retained `try_*legacy_web*` fallback helpers.
- `webgl/src/main.cpp` now creates the owned Web service first and threads it
directly into its owned legacy `PlatformServices` instance.
- `src/platform_legacy/legacy_platform_state.*` is down to the retained Web
service factory only; the old `active_legacy_web_platform_services()` and
`try_*legacy_web*` dispatch layer are gone.
- The previous Web narrowing step had already moved WebGL
publish/flush/default-canvas/save-prepared-file behavior off the old
`try_*legacy_web*` fallback path before this concrete Web service cut.
- `src/platform_legacy/legacy_platform_services.*` no longer exposes the dead
`pp::platform::legacy::platform_services()` singleton accessor.
- Linux, WebGL, and Android were already on owned