Share retained stroke temporary composite helper

This commit is contained in:
2026-06-13 11:08:02 +02:00
parent fae108d520
commit cf3b8e856d
6 changed files with 121 additions and 52 deletions

View File

@@ -38,6 +38,11 @@ agent or engineer to remove them without reconstructing context from chat.
through `execute_legacy_canvas_stroke_face_sample_polygon(...)`; the
retained sample executor owns the face-aware dispatch contract while
`Canvas` keeps only concrete GL object callbacks.
- 2026-06-13: DEBT-0036 was narrowed again. `Canvas::draw_merge()` non-erase
live temporary-stroke composite now routes setup, sampler bind, texture
bind, draw, and texture unbind ordering through
`execute_legacy_canvas_stroke_temporary_composite(...)`; erase-path and
broader final composite ownership remain retained in `Canvas`.
- 2026-06-13: DEBT-0036 was narrowed again. `NodeStrokePreview::stroke_draw_mix()`
now routes mixer framebuffer bind/unbind, viewport/scissor/blend state,
texture-slot binding, and final plane draw through one local helper;

View File

@@ -3137,6 +3137,10 @@ Results:
`execute_legacy_canvas_stroke_face_sample_polygon(...)` for face-indexed
destination bind/copy/unbind and brush upload/draw dispatch, while concrete
GL object callbacks remain in the legacy Canvas path.
- `Canvas::draw_merge()` non-erase live temporary-stroke composite now shares
`execute_legacy_canvas_stroke_temporary_composite(...)` for setup, sampler
bind, texture bind, draw, and texture unbind ordering, while erase-path and
broader final composite ownership remain in the legacy Canvas path.
- `NodeStrokePreview::stroke_draw_mix()` now shares one local helper for mixer
framebuffer bind/unbind, viewport/scissor/blend state, texture-slot
binding, and final plane draw, while material planning and shader uniform

View File

@@ -509,6 +509,13 @@ Done Checks:
Progress Notes:
- 2026-06-13: `Canvas::draw_merge()` non-erase live temporary-stroke
composite ordering now routes through
`execute_legacy_canvas_stroke_temporary_composite(...)`; erase-path and
broader final composite ownership still remain local to `Canvas`. Next slice
should target the erase temporary composite branch or another similarly
narrow final composite seam without reopening landed sample, mix, dirty, or
framebuffer helpers.
- 2026-06-13: `Canvas::stroke_draw_samples()` now routes face-indexed
destination bind/copy/unbind and brush upload/draw through
`execute_legacy_canvas_stroke_face_sample_polygon(...)`; the retained sample