Move stroke commit request assembly behind service helper

This commit is contained in:
2026-06-13 20:03:01 +02:00
parent f122efbad0
commit e135e5abdc
5 changed files with 71 additions and 14 deletions

View File

@@ -1972,6 +1972,55 @@ void retained_stroke_commit_request_builder_preserves_dirty_face_order(pp::tests
PP_EXPECT(h, request.faces[5].index == 5);
}
void retained_stroke_commit_request_helper_preserves_dirty_face_order(pp::tests::Harness& h)
{
const pp::panopainter::LegacyCanvasStrokeCommitCallbacks callbacks {
.mark_commit_started = []() {},
.capture_render_state = []() {},
.prepare_render_state = []() {},
.restore_render_state = []() {},
.publish_history = []() {},
.capture_timelapse_frame = []() {},
.bind_layer_framebuffer = [](int) {},
.capture_history_region = [](int) {},
.apply_layer_dirty_region = [](int) {},
.copy_layer_to_commit_destination = [](int) {},
.bind_commit_inputs = [](int) {},
.execute_erase_composite = [](int) {},
.execute_paint_composite = [](int) {},
.copy_committed_to_dilate_source = [](int) {},
.execute_commit_dilate = [](int) {},
.unbind_layer_framebuffer = [](int) {},
};
const auto sequence = plan_canvas_stroke_commit_sequence(
CanvasStrokeCommitRequest {
.erase_mode = true,
.alpha_locked = true,
.selection_mask_active = false,
.dual_stroke_enabled = false,
.pattern_enabled = false,
});
const std::array<pp::panopainter::LegacyCanvasStrokeCommitFace, 6> faces {
pp::panopainter::LegacyCanvasStrokeCommitFace { .index = 0, .dirty = true },
pp::panopainter::LegacyCanvasStrokeCommitFace { .index = 1, .dirty = false },
pp::panopainter::LegacyCanvasStrokeCommitFace { .index = 2, .dirty = true },
pp::panopainter::LegacyCanvasStrokeCommitFace { .index = 3, .dirty = false },
pp::panopainter::LegacyCanvasStrokeCommitFace { .index = 4, .dirty = true },
pp::panopainter::LegacyCanvasStrokeCommitFace { .index = 5, .dirty = false },
};
const auto request = pp::panopainter::make_legacy_canvas_stroke_commit_request(
faces,
sequence,
callbacks);
PP_EXPECT(h, request.context == "Canvas::stroke_commit");
PP_EXPECT(h, request.faces[0].dirty);
PP_EXPECT(h, request.faces[1].index == 1);
PP_EXPECT(h, request.faces[2].dirty);
PP_EXPECT(h, request.faces[4].dirty);
}
void retained_stroke_commit_dilate_copy_uses_layer_scratch_slot(pp::tests::Harness& h)
{
const auto sequence = plan_canvas_stroke_commit_sequence(