Extract stroke commit plan assembly

This commit is contained in:
2026-06-14 05:29:07 +02:00
parent cd9b517bfd
commit 7baf377c44

View File

@@ -1180,6 +1180,24 @@ static auto execute_canvas_stroke_commit_request(
}); });
} }
static pp::paint_renderer::CanvasStrokeCommitSequencePlan
make_canvas_stroke_commit_sequence_plan(
const Canvas& canvas,
kCanvasMode current_mode,
int current_layer_idx,
bool smask_active,
const pp::paint_renderer::CanvasStrokeCommitMaterialPlan& stroke_material)
{
return pp::paint_renderer::plan_canvas_stroke_commit_sequence(
pp::paint_renderer::CanvasStrokeCommitRequest {
.erase_mode = current_mode == kCanvasMode::Erase,
.alpha_locked = canvas.m_layers[current_layer_idx]->m_alpha_locked,
.selection_mask_active = smask_active,
.dual_stroke_enabled = stroke_material.composite_pass.use_dual,
.pattern_enabled = stroke_material.composite_pass.use_pattern,
});
}
static void stamp_canvas_stroke_commit_action( static void stamp_canvas_stroke_commit_action(
Canvas& canvas, Canvas& canvas,
ActionStroke* action) ActionStroke* action)
@@ -1973,6 +1991,12 @@ void Canvas::stroke_commit()
const auto& b = m_current_stroke->m_brush; const auto& b = m_current_stroke->m_brush;
const auto stroke_material = canvas_stroke_material_plan(*b, false); const auto stroke_material = canvas_stroke_material_plan(*b, false);
const auto stroke_commit_sequence = make_canvas_stroke_commit_sequence_plan(
*this,
m_current_mode,
m_current_layer_idx,
m_smask_active,
stroke_material);
[[maybe_unused]] const auto commit_result = execute_canvas_stroke_commit_request( [[maybe_unused]] const auto commit_result = execute_canvas_stroke_commit_request(
*this, *this,
vp, vp,
@@ -1983,14 +2007,7 @@ void Canvas::stroke_commit()
}, },
action, action,
m_current_stroke, m_current_stroke,
pp::paint_renderer::plan_canvas_stroke_commit_sequence( stroke_commit_sequence,
pp::paint_renderer::CanvasStrokeCommitRequest {
.erase_mode = m_current_mode == kCanvasMode::Erase,
.alpha_locked = m_layers[m_current_layer_idx]->m_alpha_locked,
.selection_mask_active = m_smask_active,
.dual_stroke_enabled = stroke_material.composite_pass.use_dual,
.pattern_enabled = stroke_material.composite_pass.use_pattern,
}),
stroke_material); stroke_material);
} }