Extract stroke draw dual pass helper

This commit is contained in:
2026-06-13 23:22:24 +02:00
parent a99a324e5e
commit 07b188de4a
3 changed files with 102 additions and 41 deletions

View File

@@ -2061,6 +2061,37 @@ void legacy_canvas_stroke_pad_face_callbacks_preserve_order(pp::tests::Harness&
PP_EXPECT(h, steps == expected);
}
void legacy_canvas_stroke_dual_pass_request_preserves_order(pp::tests::Harness& h)
{
std::vector<std::string> steps;
const auto result = pp::panopainter::execute_legacy_canvas_stroke_dual_pass(
pp::panopainter::LegacyCanvasStrokeDualPassRequest {
.context = "compositor-test",
.bind_brush_tip = [&] {
steps.emplace_back("bind");
},
.unbind_brush_tip = [&] {
steps.emplace_back("unbind");
},
.setup_dual_shader = [&] {
steps.emplace_back("setup");
},
.execute_frame_pass = [&] {
steps.emplace_back("frame");
},
});
const std::vector<std::string> expected {
"setup",
"bind",
"frame",
"unbind",
};
PP_EXPECT(h, result.ok);
PP_EXPECT(h, result.composed_planes == 1U);
PP_EXPECT(h, steps == expected);
}
void plans_canvas_stroke_commit_erase_sequence(pp::tests::Harness& h)
{
const auto plan = plan_canvas_stroke_commit_sequence(
@@ -3939,6 +3970,9 @@ int main()
harness.run(
"legacy_canvas_stroke_dual_pass_brush_tip_dispatch_preserves_order",
legacy_canvas_stroke_dual_pass_brush_tip_dispatch_preserves_order);
harness.run(
"legacy_canvas_stroke_dual_pass_request_preserves_order",
legacy_canvas_stroke_dual_pass_request_preserves_order);
harness.run(
"legacy_canvas_stroke_pad_copy_region_preserves_coordinates",
legacy_canvas_stroke_pad_copy_region_preserves_coordinates);