Extract canvas document IO and preview pass setup

This commit is contained in:
2026-06-16 10:53:20 +02:00
parent 551fe6c94a
commit 8afeb087b8
7 changed files with 1341 additions and 1179 deletions

View File

@@ -91,7 +91,7 @@ Status: In Progress
Why now:
`src/canvas.cpp` is still the biggest single architectural blocker at about
3622 lines.
2645 lines.
Current slice:
- Canvas state-management helpers for picking, clear/clear-all, layer
@@ -99,6 +99,10 @@ Current slice:
save/restore now live in `src/legacy_canvas_state_services.cpp` instead of
staying inline in `src/canvas.cpp`, but the file still owns the larger
document-plus-render shell.
- Canvas import/export/save/open/thumbnail ownership now lives in
`src/legacy_canvas_document_io_services.cpp` instead of staying inline in
`src/canvas.cpp`, which materially reduces document IO ownership in the live
render shell.
Write scope:
- `src/canvas.cpp`
@@ -138,6 +142,12 @@ Current slice:
- `NodeStrokePreview` final composite plus preview-texture copy now route
through `legacy_node_stroke_preview_execution_services.h`, but the preview
node still owns most live-pass and retained GL resource execution.
- `NodeStrokePreview` render-target setup plus immediate-pass sequence
orchestration now also route through
`legacy_node_stroke_preview_execution_services.h`, and duplicate render-
target setup was removed from `render_to_image()` and the queued worker path,
but the preview node still owns broader live-pass state and thread-facing
orchestration.
- `NodeCanvas` merged-path per-plane merged-texture draw execution now also
routes through `execute_legacy_canvas_draw_merge_layer_texture(...)`.
- `NodeCanvas` merged-path and non-blend checkerboard background setup now also