Route export storage hooks through platform services

This commit is contained in:
2026-06-04 16:34:19 +02:00
parent 3c709f07e6
commit 6419645e03
12 changed files with 86 additions and 23 deletions

View File

@@ -1,7 +1,7 @@
# PanoPainter Modernization Roadmap
Status: live
Last updated: 2026-06-03
Last updated: 2026-06-04
This is the living roadmap for modernizing PanoPainter into independently
testable C++23 components while retaining all existing functionality. Keep this
@@ -639,6 +639,10 @@ is preserved while their platform shell implementations are extracted.
Prepared-file save/download handoff is now also part of the service contract,
so iOS/Web export completion routes through `PlatformServices` after the app
writes the temporary/exported payload.
Canvas image export publishing and explicit persistent-storage flushes now
dispatch through `PlatformServices` too, preserving iOS photo-library export
publication and WebGL filesystem sync behavior in the legacy adapter while
removing those direct platform calls from `Canvas` and brush preset storage.
`App::show_cursor`, `App::hide_cursor`, `App::showKeyboard`, and
`App::hideKeyboard` now dispatch through the active service without local
platform guards; unsupported platforms rely on their service no-op behavior.
@@ -1679,7 +1683,8 @@ Results:
app/window close dispatch, UI-thread lifecycle dispatch, render-context
lifecycle dispatch, render-target binding dispatch, render platform hint
dispatch, render debug callback dispatch, render-capture frame hook dispatch,
recording cleanup dispatch, live asset/layout reload policy dispatch,
recording cleanup dispatch, exported-image publish dispatch, persistent
storage flush dispatch, live asset/layout reload policy dispatch,
diagnostic hook dispatch, per-frame platform hook dispatch, picker callback
dispatch, and prepared-file save/download callback dispatch. The live Windows
app now