Extract draw merge erase branch helper

This commit is contained in:
2026-06-13 22:47:28 +02:00
parent 42d4f6df1b
commit e8fdd96d37
5 changed files with 94 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
#include "assets/image_pixels.h"
#include "legacy_canvas_draw_merge_services.h"
#include "legacy_canvas_stroke_commit_services.h"
#include "legacy_node_stroke_preview_execution_services.h"
#include "paint_renderer/compositor.h"
@@ -3171,6 +3172,28 @@ void canvas_blend_gate_combines_layer_and_stroke_complexity(pp::tests::Harness&
PP_EXPECT(h, plan.value().path == StrokeCompositePath::framebuffer_fetch);
}
void legacy_canvas_draw_merge_temporary_erase_helper_preserves_order(pp::tests::Harness& h)
{
std::vector<std::string> order;
const auto execution = pp::panopainter::make_legacy_canvas_draw_merge_temporary_erase_composite(
[&] { order.emplace_back("setup"); },
[&] { order.emplace_back("bind_samplers"); },
[&] { order.emplace_back("bind_textures"); },
[&] { order.emplace_back("draw"); },
[&] { order.emplace_back("unbind_textures"); });
pp::panopainter::execute_legacy_canvas_draw_merge_temporary_composite(execution);
const std::vector<std::string> expected {
"setup",
"bind_samplers",
"bind_textures",
"draw",
"unbind_textures",
};
PP_EXPECT(h, order == expected);
}
void plans_canvas_stroke_feedback_paths(pp::tests::Harness& h)
{
const Extent2D extent { .width = 32, .height = 16 };
@@ -3531,6 +3554,9 @@ int main()
harness.run("plans_canvas_blend_gate_from_persisted_indices", plans_canvas_blend_gate_from_persisted_indices);
harness.run("canvas_blend_gate_preserves_legacy_fallbacks", canvas_blend_gate_preserves_legacy_fallbacks);
harness.run("canvas_blend_gate_combines_layer_and_stroke_complexity", canvas_blend_gate_combines_layer_and_stroke_complexity);
harness.run(
"legacy_canvas_draw_merge_temporary_erase_helper_preserves_order",
legacy_canvas_draw_merge_temporary_erase_helper_preserves_order);
harness.run("plans_canvas_stroke_feedback_paths", plans_canvas_stroke_feedback_paths);
harness.run("canvas_stroke_feedback_preserves_legacy_fallback", canvas_stroke_feedback_preserves_legacy_fallback);
harness.run("plans_canvas_stroke_rasterization_boundary", plans_canvas_stroke_rasterization_boundary);