Share retained stroke face sample dispatch

This commit is contained in:
2026-06-13 11:00:11 +02:00
parent f234f69502
commit 6cdf8c13a7
5 changed files with 109 additions and 10 deletions

View File

@@ -33,6 +33,11 @@ agent or engineer to remove them without reconstructing context from chat.
final plane draw ordering through `execute_legacy_canvas_stroke_mix_pass(...)`;
mixer framebuffer/state setup and per-plane shader material/MVP preparation
remain retained in `Canvas`.
- 2026-06-13: DEBT-0036 was narrowed again. `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 executor owns the face-aware dispatch contract while
`Canvas` keeps only concrete GL object callbacks.
- 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

@@ -3133,6 +3133,10 @@ Results:
retained sampler/texture-slot binding, and final plane draw ordering, while
mixer framebuffer/state setup and per-plane shader material/MVP preparation
remain in the legacy Canvas path.
- `Canvas::stroke_draw_samples()` now shares
`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.
- `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::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
executor now owns the face-aware dispatch contract while `Canvas` keeps only
the concrete GL object callbacks. Next slice should target any remaining
final temporary-texture composite setup without reopening landed sample,
mix, sampler, dirty, face, or pad helpers.
- 2026-06-13: `pp_paint_renderer_stroke_execution_tests` now also covers
direct retained frame-sample callback ordering plus
`execute_legacy_canvas_stroke_frame_samples_with_dirty_tracking(...)`