Extract canvas document IO and preview pass setup
This commit is contained in:
@@ -79,13 +79,13 @@ What is still carrying too much live ownership:
|
||||
|
||||
Current hotspot files:
|
||||
|
||||
- `src/canvas.cpp`: 3622 lines
|
||||
- `src/canvas.cpp`: 2645 lines
|
||||
- `src/app_layout.cpp`: 1498 lines
|
||||
- `src/canvas_modes.cpp`: 1798 lines
|
||||
- `src/node.cpp`: 1551 lines
|
||||
- `src/main.cpp`: 1374 lines
|
||||
- `src/node_panel_brush.cpp`: 1197 lines
|
||||
- `src/node_stroke_preview.cpp`: 1129 lines
|
||||
- `src/node_stroke_preview.cpp`: 933 lines
|
||||
- `src/node_canvas.cpp`: 888 lines
|
||||
- `src/app.cpp`: 950 lines
|
||||
- `src/app_dialogs.cpp`: 908 lines
|
||||
@@ -155,8 +155,11 @@ Current architecture mismatches that must be treated as real blockers:
|
||||
canvas state-management cluster for picking, clear/clear-all, layer
|
||||
add/remove/order/lookups, animation frame control, resize, and snapshot
|
||||
save/restore now lives in `src/legacy_canvas_state_services.cpp` instead of
|
||||
`src/canvas.cpp`, even though the bridge still owns worker-side readback flow
|
||||
and encoder-state label reads.
|
||||
`src/canvas.cpp`, while the larger import/export/save/open/thumbnail
|
||||
document-IO cluster now lives in `src/legacy_canvas_document_io_services.cpp`
|
||||
and `NodeStrokePreview` render-target setup plus immediate-pass sequencing
|
||||
now route through retained preview execution helpers, even though the bridge
|
||||
still owns worker-side readback flow and encoder-state label reads.
|
||||
- Modern C++23 usage exists in extracted components, especially `std::span`,
|
||||
explicit result/status objects, and a few concepts, but the live app still
|
||||
does not consistently express ownership, thread affinity, or renderer
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user