Wrap stroke mix shell
This commit is contained in:
@@ -18,6 +18,10 @@ agent or engineer to remove them without reconstructing context from chat.
|
||||
|
||||
## Recent Reductions
|
||||
|
||||
- 2026-06-13: `LATER-003` was narrowed again. `Canvas::stroke_draw_mix()` now
|
||||
routes the retained mix-pass shell through
|
||||
`execute_legacy_canvas_stroke_mix_pass_shell(...)`; the live path still owns
|
||||
the concrete framebuffer bind and GL capability toggles.
|
||||
- 2026-06-13: `LATER-003` was narrowed again. `Canvas::stroke_draw_mix()` now
|
||||
routes the full retained mix-pass shell through
|
||||
`execute_legacy_canvas_stroke_mix_pass_with_setup(...)`; the live path
|
||||
|
||||
@@ -601,6 +601,9 @@ Progress Notes:
|
||||
- 2026-06-13: `Canvas::stroke_draw_mix()` now routes the full retained mix-pass
|
||||
shell through `execute_legacy_canvas_stroke_mix_pass_with_setup(...)`; the
|
||||
live path still owns the concrete framebuffer bind and GL capability toggles.
|
||||
- 2026-06-13: `Canvas::stroke_draw_mix()` now routes the retained mix-pass
|
||||
shell through `execute_legacy_canvas_stroke_mix_pass_shell(...)`; the live
|
||||
path still owns the concrete framebuffer bind and GL capability toggles.
|
||||
- 2026-06-13: `Canvas::stroke_draw()` live-pass sampler wiring now reuses a
|
||||
retained helper builder, and the stroke execution tests cover it. `STR-004`
|
||||
is now done after the final pad-destination helper extraction and tracker
|
||||
|
||||
@@ -420,10 +420,10 @@ void Canvas::stroke_draw_mix(const glm::vec2& bb_min, const glm::vec2& bb_sz)
|
||||
m_mixer.unbindFramebuffer();
|
||||
});
|
||||
[[maybe_unused]] const auto mix_result =
|
||||
pp::panopainter::execute_legacy_canvas_stroke_mix_pass_with_setup(
|
||||
pp::panopainter::execute_legacy_canvas_stroke_mix_pass_shell(
|
||||
mix_setup.begin,
|
||||
mix_setup.end,
|
||||
pp::panopainter::make_legacy_canvas_stroke_mix_pass_request(
|
||||
pp::panopainter::make_legacy_canvas_stroke_mix_pass_request(
|
||||
"Canvas::stroke_draw_mix",
|
||||
m_size,
|
||||
mix_planes,
|
||||
@@ -477,7 +477,7 @@ void Canvas::stroke_draw_mix(const glm::vec2& bb_min, const glm::vec2& bb_sz)
|
||||
[&](int plane_index) {
|
||||
set_active_texture_unit(0);
|
||||
current_layer.rtt(plane_index).unbindTexture();
|
||||
});
|
||||
}));
|
||||
|
||||
gl.restore();
|
||||
}
|
||||
|
||||
@@ -562,6 +562,19 @@ execute_legacy_canvas_stroke_mix_pass_with_setup(
|
||||
return result;
|
||||
}
|
||||
|
||||
template <typename BeginMixPass, typename EndMixPass>
|
||||
[[nodiscard]] inline LegacyCanvasStrokeMixPassResult
|
||||
execute_legacy_canvas_stroke_mix_pass_shell(
|
||||
BeginMixPass&& begin_mix_pass,
|
||||
EndMixPass&& end_mix_pass,
|
||||
const LegacyCanvasStrokeMixPassRequest& request)
|
||||
{
|
||||
return execute_legacy_canvas_stroke_mix_pass_with_setup(
|
||||
std::forward<BeginMixPass>(begin_mix_pass),
|
||||
std::forward<EndMixPass>(end_mix_pass),
|
||||
request);
|
||||
}
|
||||
|
||||
struct LegacyCanvasStrokeComputeRequest {
|
||||
StrokeSample previous_sample {};
|
||||
std::span<const StrokeSample> samples;
|
||||
|
||||
Reference in New Issue
Block a user