Move stroke commit input binding behind service helper

This commit is contained in:
2026-06-13 19:55:06 +02:00
parent 0c5522f272
commit 6220f333b9
4 changed files with 22 additions and 1 deletions

View File

@@ -108,6 +108,10 @@ agent or engineer to remove them without reconstructing context from chat.
- 2026-06-13: `DEBT-0036` was narrowed again. `Canvas::stroke_commit()` - 2026-06-13: `DEBT-0036` was narrowed again. `Canvas::stroke_commit()`
now routes the commit-input texture role switch through a local helper, now routes the commit-input texture role switch through a local helper,
leaving the callsite with sequence planning plus retained callback wiring. leaving the callsite with sequence planning plus retained callback wiring.
- 2026-06-13: `DEBT-0036` was narrowed again. `Canvas::stroke_commit()`
now routes the commit-input texture role switch through a retained service
helper, leaving the callsite with sequence planning and concrete face
bindings only.
- 2026-06-13: `DEBT-0036` was narrowed again. `NodeStrokePreview::draw_stroke_immediate()` - 2026-06-13: `DEBT-0036` was narrowed again. `NodeStrokePreview::draw_stroke_immediate()`
now routes final composite execution and preview copy-back through a retained now routes final composite execution and preview copy-back through a retained
local wrapper, leaving the call site with only sequence wiring. local wrapper, leaving the call site with only sequence wiring.

View File

@@ -653,6 +653,9 @@ Progress Notes:
- 2026-06-13: `Canvas::stroke_commit()` now routes the commit-input texture - 2026-06-13: `Canvas::stroke_commit()` now routes the commit-input texture
role switch through a local helper, so the callsite no longer owns that role switch through a local helper, so the callsite no longer owns that
inline texture binding bundle. inline texture binding bundle.
- 2026-06-13: `Canvas::stroke_commit()` now routes the commit-input texture
role switch through a retained service helper, so the callsite only supplies
concrete face bindings.
- 2026-06-13: `Canvas::stroke_draw_samples()` now reuses a retained destination - 2026-06-13: `Canvas::stroke_draw_samples()` now reuses a retained destination
texture dispatch helper for the live sample path; `Canvas` still owns the texture dispatch helper for the live sample path; `Canvas` still owns the
concrete face textures and callback execution. concrete face textures and callback execution.

View File

@@ -543,7 +543,7 @@ static auto make_canvas_stroke_commit_callbacks(
{ {
const auto& b = current_stroke->m_brush; const auto& b = current_stroke->m_brush;
auto bind_commit_inputs = [&](int i) { auto bind_commit_inputs = [&](int i) {
pp::panopainter::bind_legacy_canvas_stroke_commit_inputs( pp::panopainter::bind_legacy_canvas_stroke_commit_face_inputs(
sequence, sequence,
[&](int texture_slot) { [&](int texture_slot) {
set_active_texture_unit(texture_slot); set_active_texture_unit(texture_slot);

View File

@@ -151,6 +151,20 @@ inline void bind_legacy_canvas_stroke_commit_inputs(
} }
} }
template <typename SetActiveTextureUnit, typename BindFaceTextureRole, typename BindFaceSamplerRole>
inline void bind_legacy_canvas_stroke_commit_face_inputs(
const pp::paint_renderer::CanvasStrokeCommitSequencePlan& sequence,
SetActiveTextureUnit&& set_active_texture_unit,
BindFaceTextureRole&& bind_face_texture_role,
BindFaceSamplerRole&& bind_face_sampler_role)
{
bind_legacy_canvas_stroke_commit_inputs(
sequence,
std::forward<SetActiveTextureUnit>(set_active_texture_unit),
std::forward<BindFaceTextureRole>(bind_face_texture_role),
std::forward<BindFaceSamplerRole>(bind_face_sampler_role));
}
template <typename SetupShader, typename DrawPlane> template <typename SetupShader, typename DrawPlane>
inline void execute_legacy_canvas_stroke_commit_erase( inline void execute_legacy_canvas_stroke_commit_erase(
SetupShader&& setup_shader, SetupShader&& setup_shader,