Export document frame faces as PNGs

This commit is contained in:
2026-06-05 18:54:27 +02:00
parent 693923b7bd
commit 6151fb7a3d
10 changed files with 201 additions and 20 deletions

View File

@@ -253,7 +253,8 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\apple-remote-build.p
opacity, and blend mode applied in document order, then uploading those six
faces through the renderer-neutral `IRenderDevice` texture API using the
recording backend. It also covers the shared recorded-upload report helper
consumed by CLI and live export-readiness bridges.
consumed by CLI and live export-readiness bridges, plus a pure six-face PNG
export helper that encodes composited document-frame faces through `pp_assets`.
- `pano_cli simulate-document-export` exposes the same pure document-to-PPI
export, asset-level decode, and document reimport path through JSON
automation and is covered by `pano_cli_simulate_document_export_smoke`.
@@ -273,14 +274,16 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\apple-remote-build.p
snapshots also feed the active frame through the `pp_paint_renderer`
document-frame compositor and renderer-neutral recorded-upload report helper,
reporting texture, transition, command, byte, and active-frame payload counts
in `rendererUpload` JSON. It is covered by
in `rendererUpload` JSON. The same payload-complete path also reports
`facePngExport` readiness, face count, byte count, and payload count from the
pure face-PNG export helper. It is covered by
`pano_cli_plan_canvas_document_snapshot_smoke` plus the payload-bearing
snapshot smoke.
- Live equirectangular, layer, animation-frame, and cube-face export adapters
now prepare and log the same payload-bearing canvas document snapshot plus
shared renderer-neutral active-frame upload report before delegating to
retained `Canvas` export execution. Depth and video export remain on the older
retained path.
shared renderer-neutral active-frame upload and face-PNG export reports before
delegating to retained `Canvas` export execution. Depth and video export
remain on the older retained path.
- `pano_cli save-document-project` writes that pure document export to a PPI
file and is covered by `pano_cli_save_document_project_roundtrip_smoke`,
which inspects and loads the generated file.

View File

@@ -26,7 +26,7 @@ and validation command.
| PNG/JPEG import | `Image`, `Canvas` import paths | `pp_assets`, `pp_document` | Fixture import, malformed file |
| PNG/JPEG export | `Canvas`, `Image`, export dialogs | `pp_assets`, `pp_paint_renderer`, `pp_app_core` | Golden output tolerance, export start/target planning tests, live export-adapter document snapshot readiness |
| Equirectangular import/export | `Canvas`, shaders, RTT, export dialogs | `pp_paint_renderer`, `pp_app_core` | Tiny cube/equirect golden, app-core file target tests, live export-adapter renderer-upload readiness |
| Cube face export | `Canvas` | `pp_paint_renderer` | Pure six-face document frame composite, renderer texture-upload bridge, payload-complete canvas-snapshot renderer-upload automation, live export-adapter renderer-upload readiness, OpenGL command-plan coverage, six-face golden set |
| Cube face export | `Canvas` | `pp_paint_renderer` | Pure six-face document frame composite, renderer texture-upload bridge, pure face-PNG export helper, payload-complete canvas-snapshot renderer-upload and face-PNG automation, live export-adapter renderer/export readiness, OpenGL command-plan coverage, six-face golden set |
| Depth export | `Canvas`, grid tools | `pp_paint_renderer` | Float/readback validation |
## Brush And Painting

File diff suppressed because one or more lines are too long

View File

@@ -678,13 +678,18 @@ snapshots and reports generated byte/dirty-face summaries. The same automation
now feeds payload-complete snapshots through the `pp_paint_renderer`
document-frame compositor and renderer-neutral recording upload path, reporting
texture, transition, byte, payload, and command counts through the shared
`record_document_frame_upload` report helper. Live save writer replacement,
export adoption, and renderer-owned readback remain under
`record_document_frame_upload` report helper. Payload-complete snapshot
automation also encodes the active document frame's six composited faces to PNG
bytes through `pp_paint_renderer::export_document_frame_face_pngs`, giving the
cube-face export path a pure renderer/document writer primitive before live
writer replacement. Live save writer replacement, export adoption, and
renderer-owned readback remain under
`DEBT-0010`/`DEBT-0013`/`DEBT-0036`.
Live equirectangular, layer, animation-frame, and cube-face export adapters now
prepare the same payload-bearing document snapshot and renderer-neutral upload
report helper before delegating to retained `Canvas` export execution, so export
workflows consume the shared renderer boundary without changing file output yet.
report helper plus pure face-PNG export report before delegating to retained
`Canvas` export execution, so export workflows consume the shared renderer
boundary without changing file output yet.
`pano_cli plan-image-import` exposes app-core planning for File > Import image
route decisions, including wide equirectangular images, legacy vertical cube
strips, regular transform-placement images, and invalid image dimensions; live
@@ -2517,12 +2522,15 @@ Results:
boundary now: `pano_cli plan-canvas-document-snapshot` records the same
snapshot through the pure document-frame compositor and renderer-neutral
texture upload stream through `pp_paint_renderer::record_document_frame_upload`,
so agents can validate document/canvas payloads moving into renderer commands
before live canvas export/save writer replacement.
and encodes the composited active-frame cube faces as PNG bytes through
`pp_paint_renderer::export_document_frame_face_pngs`, so agents can validate
document/canvas payloads moving into renderer commands and image bytes before
live canvas export/save writer replacement.
- Live image/collection/cube export adapters now prepare and log the same
document/canvas plus shared renderer-upload readiness report before retained
`Canvas` export calls. Depth and video export remain on their prior retained
paths; actual image/cube writer replacement remains tracked under export debt.
document/canvas plus shared renderer-upload and face-PNG export readiness
reports before retained `Canvas` export calls. Depth and video export remain
on their prior retained paths; actual image/cube writer replacement remains
tracked under export debt.
- Snapshot creation now rejects invalid embedded RGBA8 face payloads before
document export or history can persist malformed state.
- Package-smoke wrappers validate the Windows CMake app executable/runtime