Extract canvas projection helpers and thin preview and node loading
This commit is contained in:
@@ -79,16 +79,16 @@ What is still carrying too much live ownership:
|
||||
|
||||
Current hotspot files:
|
||||
|
||||
- `src/canvas.cpp`: 2645 lines
|
||||
- `src/canvas.cpp`: 2728 lines
|
||||
- `src/app_layout.cpp`: 125 lines
|
||||
- `src/canvas_modes.cpp`: 1798 lines
|
||||
- `src/node.cpp`: 1594 lines
|
||||
- `src/node.cpp`: 1465 lines
|
||||
- `src/main.cpp`: 271 lines
|
||||
- `src/node_panel_brush.cpp`: 1197 lines
|
||||
- `src/node_stroke_preview.cpp`: 890 lines
|
||||
- `src/node_panel_brush.cpp`: 1207 lines
|
||||
- `src/node_stroke_preview.cpp`: 910 lines
|
||||
- `src/node_canvas.cpp`: 852 lines
|
||||
- `src/app.cpp`: 502 lines
|
||||
- `src/app_dialogs.cpp`: 142 lines
|
||||
- `src/app.cpp`: 575 lines
|
||||
- `src/app_dialogs.cpp`: 168 lines
|
||||
|
||||
Current architecture mismatches that must be treated as real blockers:
|
||||
|
||||
@@ -240,10 +240,17 @@ Current architecture mismatches that must be treated as real blockers:
|
||||
`src/node_stroke_preview.cpp`, while the immediate preview pass-sequencing
|
||||
family inside `draw_stroke_immediate()` now also routes through
|
||||
`NodeStrokePreview::execute_stroke_draw_immediate_pass_sequence(...)`, while
|
||||
`Node` child attach/detach/reorder operations now route through named local
|
||||
helpers in `src/node.cpp`, which makes the scene-graph mutation paths easier
|
||||
to reason about without yet reducing the file or moving ownership into
|
||||
`pp_ui_core`.
|
||||
preview stroke preparation, dual-brush setup, and live pass-orchestration
|
||||
request assembly now also route through retained preview execution helpers,
|
||||
while `Node` child attach/detach/reorder operations now route through named
|
||||
local helpers in `src/node.cpp`, and `Node::load_internal(...)` child XML
|
||||
loading now also routes through `src/legacy_ui_node_loader.*`, which makes
|
||||
the scene-graph mutation and child-instantiation paths easier to reason
|
||||
about without yet reducing the file or moving ownership into `pp_ui_core`,
|
||||
while `Canvas` point-trace/unproject/project/camera push-pop-get-set and
|
||||
face-to-shape helpers now also route through
|
||||
`src/legacy_canvas_projection_services.*` instead of staying inline in
|
||||
`src/canvas.cpp`.
|
||||
- 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
|
||||
2645 lines.
|
||||
2728 lines.
|
||||
|
||||
Current slice:
|
||||
- Canvas state-management helpers for picking, clear/clear-all, layer
|
||||
@@ -103,6 +103,11 @@ Current slice:
|
||||
`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.
|
||||
- Canvas point-trace, unproject, project2D, face-to-shape, and camera
|
||||
push/pop/get/set helpers now also live in
|
||||
`src/legacy_canvas_projection_services.*` instead of staying inline in
|
||||
`src/canvas.cpp`, which trims another coherent non-UI state/query pocket
|
||||
from the live canvas shell.
|
||||
|
||||
Write scope:
|
||||
- `src/canvas.cpp`
|
||||
@@ -158,6 +163,11 @@ Current slice:
|
||||
`execute_stroke_draw_immediate_pass_sequence(...)` helper, which removes
|
||||
another live orchestration block from the node even though worker/readback
|
||||
flow still remains in the file.
|
||||
- `NodeStrokePreview` stroke preparation, dual-brush setup, and live-pass
|
||||
request assembly now also route through retained preview execution helpers,
|
||||
which trims another coherent setup pocket from
|
||||
`src/node_stroke_preview.cpp` even though worker/readback ownership and
|
||||
broader preview flow still remain inline.
|
||||
- `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
|
||||
@@ -390,7 +400,7 @@ Status: In Progress
|
||||
|
||||
Why now:
|
||||
`src/app_dialogs.cpp` still mixes document workflow decisions, export routing,
|
||||
dialog construction, and overlay ownership.
|
||||
dialog construction, and overlay ownership in one 168-line shell.
|
||||
|
||||
Current slice:
|
||||
- Informational overlay opener paths for user manual, changelog, about,
|
||||
@@ -439,7 +449,7 @@ Status: In Progress
|
||||
|
||||
Why now:
|
||||
`src/app.cpp` still carries startup, frame flow, queue draining, recording,
|
||||
and composition logic in one 502-line file.
|
||||
and composition logic in one 575-line file.
|
||||
|
||||
Current slice:
|
||||
- UI observer math now routes through `src/legacy_app_frame_services.cpp`
|
||||
@@ -651,12 +661,19 @@ attached to it.
|
||||
|
||||
#### ARC-UI-001 - Move Generic Node And Control Code Out Of `pp_legacy_ui_core`
|
||||
|
||||
Status: Ready
|
||||
Status: In Progress
|
||||
|
||||
Why now:
|
||||
`pp_ui_core` has layout, color, node lifetime, and overlay lifetime, but the
|
||||
generic widget layer still sits in `pp_legacy_ui_core`.
|
||||
|
||||
Current slice:
|
||||
- `Node::load_internal(...)` child XML loading now routes through
|
||||
`src/legacy_ui_node_loader.*` instead of staying inline in `src/node.cpp`.
|
||||
That trims another coherent generic node-instantiation pocket and makes the
|
||||
remaining scene-graph load path easier to isolate, even though ownership has
|
||||
not yet moved into `pp_ui_core`.
|
||||
|
||||
Write scope:
|
||||
- `src/node.cpp`
|
||||
- `src/layout.cpp`
|
||||
|
||||
Reference in New Issue
Block a user