From f9bb6334a3f008626d9b1d88cf3cc3cdfd7f8061 Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Thu, 19 Oct 2023 16:54:36 -0700 Subject: [PATCH] [Impeller] added tests to assert empty saveLayer behaviors --- impeller/aiks/aiks_unittests.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/impeller/aiks/aiks_unittests.cc b/impeller/aiks/aiks_unittests.cc index b0e4139f4e6d3..14d70f2d27f7f 100644 --- a/impeller/aiks/aiks_unittests.cc +++ b/impeller/aiks/aiks_unittests.cc @@ -3700,6 +3700,26 @@ TEST_P(AiksTest, BlurHasNoEdge) { }, }; canvas.DrawRect(Rect{300, 300, 200, 200}, blur); +} + +TEST_P(AiksTest, EmptySaveLayerIgnoresPaint) { + Canvas canvas; + canvas.Scale(GetContentScale()); + canvas.DrawPaint(Paint{.color = Color::Red()}); + canvas.ClipRect({100, 100, 200, 200}); + canvas.SaveLayer(Paint{.color = Color::Blue()}); + canvas.Restore(); + ASSERT_TRUE(OpenPlaygroundHere(canvas.EndRecordingAsPicture())); +} + +TEST_P(AiksTest, EmptySaveLayerRendersWithClear) { + Canvas canvas; + canvas.Scale(GetContentScale()); + auto image = std::make_shared(CreateTextureForFixture("airplane.jpg")); + canvas.DrawImage(image, {10, 10}, {}); + canvas.ClipRect({100, 100, 200, 200}); + canvas.SaveLayer(Paint{.blend_mode = BlendMode::kClear}); + canvas.Restore(); ASSERT_TRUE(OpenPlaygroundHere(canvas.EndRecordingAsPicture())); }