Share retained preview pass sequence helper
This commit is contained in:
@@ -2240,6 +2240,72 @@ void legacy_node_stroke_preview_mix_pass_adapter_preserves_retained_material_and
|
||||
PP_EXPECT(h, plan.shader.use_pattern == plan.material.composite_pass.use_pattern);
|
||||
}
|
||||
|
||||
void legacy_node_stroke_preview_pass_sequence_preserves_dual_main_and_composite_order(pp::tests::Harness& h)
|
||||
{
|
||||
std::vector<std::string> steps;
|
||||
const auto run_sequence = [&](bool dual_enabled) {
|
||||
steps.clear();
|
||||
const bool ok = pp::panopainter::execute_legacy_node_stroke_preview_pass_sequence(
|
||||
pp::panopainter::LegacyNodeStrokePreviewPassSequenceRequest {
|
||||
.dual_pass_enabled = dual_enabled,
|
||||
.prepare_dual_pass = [&] {
|
||||
steps.emplace_back("prepare_dual");
|
||||
},
|
||||
.execute_dual_pass = [&] {
|
||||
steps.emplace_back("execute_dual");
|
||||
},
|
||||
.capture_background = [&] {
|
||||
steps.emplace_back("capture_background");
|
||||
},
|
||||
.prepare_main_pass = [&] {
|
||||
steps.emplace_back("prepare_main");
|
||||
},
|
||||
.execute_main_pass = [&] {
|
||||
steps.emplace_back("execute_main");
|
||||
},
|
||||
.finish_main_pass = [&] {
|
||||
steps.emplace_back("finish_main");
|
||||
},
|
||||
.execute_final_composite = [&] {
|
||||
steps.emplace_back("execute_composite");
|
||||
},
|
||||
.copy_preview_result = [&] {
|
||||
steps.emplace_back("copy_preview");
|
||||
},
|
||||
});
|
||||
PP_EXPECT(h, ok);
|
||||
};
|
||||
|
||||
run_sequence(true);
|
||||
const std::vector<std::string> dual_steps {
|
||||
"prepare_dual",
|
||||
"execute_dual",
|
||||
"capture_background",
|
||||
"prepare_main",
|
||||
"execute_main",
|
||||
"finish_main",
|
||||
"execute_composite",
|
||||
"copy_preview",
|
||||
};
|
||||
PP_EXPECT(h, steps == dual_steps);
|
||||
|
||||
run_sequence(false);
|
||||
const std::vector<std::string> single_steps {
|
||||
"capture_background",
|
||||
"prepare_main",
|
||||
"execute_main",
|
||||
"finish_main",
|
||||
"execute_composite",
|
||||
"copy_preview",
|
||||
};
|
||||
PP_EXPECT(h, steps == single_steps);
|
||||
|
||||
const bool missing_required =
|
||||
pp::panopainter::execute_legacy_node_stroke_preview_pass_sequence(
|
||||
pp::panopainter::LegacyNodeStrokePreviewPassSequenceRequest {});
|
||||
PP_EXPECT(h, !missing_required);
|
||||
}
|
||||
|
||||
void plans_canvas_blend_gate_from_persisted_indices(pp::tests::Harness& h)
|
||||
{
|
||||
const std::vector<int> normal_layers { 0, 0, 0 };
|
||||
@@ -2694,6 +2760,9 @@ int main()
|
||||
harness.run(
|
||||
"legacy_node_stroke_preview_mix_pass_adapter_preserves_retained_material_and_uniforms",
|
||||
legacy_node_stroke_preview_mix_pass_adapter_preserves_retained_material_and_uniforms);
|
||||
harness.run(
|
||||
"legacy_node_stroke_preview_pass_sequence_preserves_dual_main_and_composite_order",
|
||||
legacy_node_stroke_preview_pass_sequence_preserves_dual_main_and_composite_order);
|
||||
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("plans_canvas_stroke_feedback_paths", plans_canvas_stroke_feedback_paths);
|
||||
|
||||
Reference in New Issue
Block a user