1212#include " flutter/display_list/dl_blend_mode.h"
1313#include " flutter/display_list/dl_builder.h"
1414#include " flutter/display_list/dl_paint.h"
15+ #include " flutter/display_list/effects/dl_image_filters.h"
1516#include " flutter/display_list/geometry/dl_rtree.h"
1617#include " flutter/display_list/skia/dl_sk_dispatcher.h"
1718#include " flutter/display_list/testing/dl_test_snippets.h"
@@ -108,7 +109,7 @@ class DisplayListTestBase : public BaseT {
108109
109110 static void check_defaults (
110111 DisplayListBuilder& builder,
111- const SkRect & cull_rect = DisplayListBuilder::kMaxCullRect ) {
112+ const DlRect & cull_rect = DisplayListBuilder::kMaxCullRect ) {
112113 DlPaint builder_paint = DisplayListBuilderTestingAttributes (builder);
113114 DlPaint defaults;
114115
@@ -131,8 +132,8 @@ class DisplayListTestBase : public BaseT {
131132 EXPECT_EQ (builder.GetTransform (), SkMatrix ());
132133 EXPECT_EQ (builder.GetTransformFullPerspective (), SkM44 ());
133134
134- EXPECT_EQ (builder.GetLocalClipBounds (), cull_rect);
135- EXPECT_EQ (builder.GetDestinationClipBounds (), cull_rect);
135+ EXPECT_EQ (builder.GetLocalClipCoverage (), cull_rect);
136+ EXPECT_EQ (builder.GetDestinationClipCoverage (), cull_rect);
136137
137138 EXPECT_EQ (builder.GetSaveCount (), 1 );
138139 }
@@ -346,7 +347,7 @@ TEST_F(DisplayListTest, BuilderCanBeReused) {
346347}
347348
348349TEST_F (DisplayListTest, SaveRestoreRestoresTransform) {
349- SkRect cull_rect = SkRect ::MakeLTRB (-10 .0f , -10 .0f , 500 .0f , 500 .0f );
350+ DlRect cull_rect = DlRect ::MakeLTRB (-10 .0f , -10 .0f , 500 .0f , 500 .0f );
350351 DisplayListBuilder builder (cull_rect);
351352
352353 builder.Save ();
@@ -395,7 +396,7 @@ TEST_F(DisplayListTest, SaveRestoreRestoresTransform) {
395396}
396397
397398TEST_F (DisplayListTest, BuildRestoresTransform) {
398- SkRect cull_rect = SkRect ::MakeLTRB (-10 .0f , -10 .0f , 500 .0f , 500 .0f );
399+ DlRect cull_rect = DlRect ::MakeLTRB (-10 .0f , -10 .0f , 500 .0f , 500 .0f );
399400 DisplayListBuilder builder (cull_rect);
400401
401402 builder.Translate (10 .0f , 10 .0f );
@@ -436,7 +437,7 @@ TEST_F(DisplayListTest, BuildRestoresTransform) {
436437}
437438
438439TEST_F (DisplayListTest, SaveRestoreRestoresClip) {
439- SkRect cull_rect = SkRect ::MakeLTRB (-10 .0f , -10 .0f , 500 .0f , 500 .0f );
440+ DlRect cull_rect = DlRect ::MakeLTRB (-10 .0f , -10 .0f , 500 .0f , 500 .0f );
440441 DisplayListBuilder builder (cull_rect);
441442
442443 builder.Save ();
@@ -456,7 +457,7 @@ TEST_F(DisplayListTest, SaveRestoreRestoresClip) {
456457}
457458
458459TEST_F (DisplayListTest, BuildRestoresClip) {
459- SkRect cull_rect = SkRect ::MakeLTRB (-10 .0f , -10 .0f , 500 .0f , 500 .0f );
460+ DlRect cull_rect = DlRect ::MakeLTRB (-10 .0f , -10 .0f , 500 .0f , 500 .0f );
460461 DisplayListBuilder builder (cull_rect);
461462
462463 builder.ClipRect (SkRect{0 .0f , 0 .0f , 10 .0f , 10 .0f });
@@ -473,7 +474,7 @@ TEST_F(DisplayListTest, BuildRestoresClip) {
473474}
474475
475476TEST_F (DisplayListTest, BuildRestoresAttributes) {
476- SkRect cull_rect = SkRect ::MakeLTRB (-10 .0f , -10 .0f , 500 .0f , 500 .0f );
477+ DlRect cull_rect = DlRect ::MakeLTRB (-10 .0f , -10 .0f , 500 .0f , 500 .0f );
477478 DisplayListBuilder builder (cull_rect);
478479 DlOpReceiver& receiver = ToReceiver (builder);
479480
@@ -658,22 +659,22 @@ TEST_F(DisplayListTest, ClippedSaveLayerContentAccountsForFilter) {
658659}
659660
660661TEST_F (DisplayListTest, OOBSaveLayerContentCulledWithBlurFilter) {
661- SkRect cull_rect = SkRect ::MakeLTRB (100 .0f , 100 .0f , 200 .0f , 200 .0f );
662- SkRect draw_rect = SkRect ::MakeLTRB (25 .0f , 25 .0f , 99 .0f , 75 .0f );
662+ DlRect cull_rect = DlRect ::MakeLTRB (100 .0f , 100 .0f , 200 .0f , 200 .0f );
663+ DlRect draw_rect = DlRect ::MakeLTRB (25 .0f , 25 .0f , 99 .0f , 75 .0f );
663664 auto filter = DlBlurImageFilter::Make (10 .0f , 10 .0f , DlTileMode::kDecal );
664665 DlPaint layer_paint = DlPaint ().setImageFilter (filter);
665666
666667 // We want a draw rect that is outside the layer bounds even though its
667668 // filtered output might be inside. The drawn rect should be culled by
668669 // the expectations of the layer bounds even though it is close enough
669670 // to be visible due to filtering.
670- ASSERT_FALSE (cull_rect.intersects (draw_rect));
671- SkRect mapped_rect;
671+ ASSERT_FALSE (cull_rect.IntersectsWithRect (draw_rect));
672+ DlRect mapped_rect;
672673 ASSERT_TRUE (filter->map_local_bounds (draw_rect, mapped_rect));
673- ASSERT_TRUE (mapped_rect.intersects (cull_rect));
674+ ASSERT_TRUE (mapped_rect.IntersectsWithRect (cull_rect));
674675
675676 DisplayListBuilder builder;
676- builder.SaveLayer (& cull_rect, &layer_paint);
677+ builder.SaveLayer (cull_rect, &layer_paint);
677678 { //
678679 builder.DrawRect (draw_rect, DlPaint ());
679680 }
@@ -687,23 +688,23 @@ TEST_F(DisplayListTest, OOBSaveLayerContentCulledWithBlurFilter) {
687688}
688689
689690TEST_F (DisplayListTest, OOBSaveLayerContentCulledWithMatrixFilter) {
690- SkRect cull_rect = SkRect ::MakeLTRB (100 .0f , 100 .0f , 200 .0f , 200 .0f );
691- SkRect draw_rect = SkRect ::MakeLTRB (25 .0f , 125 .0f , 75 .0f , 175 .0f );
692- auto filter = DlMatrixImageFilter::Make (SkMatrix::Translate ( 100 . 0f , 0 . 0f ),
693- DlImageSampling::kLinear );
691+ DlRect cull_rect = DlRect ::MakeLTRB (100 .0f , 100 .0f , 200 .0f , 200 .0f );
692+ DlRect draw_rect = DlRect ::MakeLTRB (25 .0f , 125 .0f , 75 .0f , 175 .0f );
693+ auto filter = DlMatrixImageFilter::Make (
694+ DlMatrix::MakeTranslation ({ 100 . 0f , 0 . 0f }), DlImageSampling::kLinear );
694695 DlPaint layer_paint = DlPaint ().setImageFilter (filter);
695696
696697 // We want a draw rect that is outside the layer bounds even though its
697698 // filtered output might be inside. The drawn rect should be culled by
698699 // the expectations of the layer bounds even though it is close enough
699700 // to be visible due to filtering.
700- ASSERT_FALSE (cull_rect.intersects (draw_rect));
701- SkRect mapped_rect;
701+ ASSERT_FALSE (cull_rect.IntersectsWithRect (draw_rect));
702+ DlRect mapped_rect;
702703 ASSERT_TRUE (filter->map_local_bounds (draw_rect, mapped_rect));
703- ASSERT_TRUE (mapped_rect.intersects (cull_rect));
704+ ASSERT_TRUE (mapped_rect.IntersectsWithRect (cull_rect));
704705
705706 DisplayListBuilder builder;
706- builder.SaveLayer (& cull_rect, &layer_paint);
707+ builder.SaveLayer (cull_rect, &layer_paint);
707708 { //
708709 builder.DrawRect (draw_rect, DlPaint ());
709710 }
@@ -4257,8 +4258,9 @@ TEST_F(DisplayListTest, TransformingFilterSaveLayerSimpleContentBounds) {
42574258 builder.ClipRect (SkRect::MakeLTRB (100 .0f , 100 .0f , 200 .0f , 200 .0f ));
42584259
42594260 DlPaint save_paint;
4260- auto image_filter = DlMatrixImageFilter::Make (
4261- SkMatrix::Translate (100 .0f , 100 .0f ), DlImageSampling::kNearestNeighbor );
4261+ auto image_filter =
4262+ DlMatrixImageFilter::Make (DlMatrix::MakeTranslation ({100 .0f , 100 .0f }),
4263+ DlImageSampling::kNearestNeighbor );
42624264 save_paint.setImageFilter (image_filter);
42634265 builder.SaveLayer (nullptr , &save_paint);
42644266
@@ -4275,8 +4277,9 @@ TEST_F(DisplayListTest, TransformingFilterSaveLayerFloodedContentBounds) {
42754277 builder.ClipRect (SkRect::MakeLTRB (100 .0f , 100 .0f , 200 .0f , 200 .0f ));
42764278
42774279 DlPaint save_paint;
4278- auto image_filter = DlMatrixImageFilter::Make (
4279- SkMatrix::Translate (100 .0f , 100 .0f ), DlImageSampling::kNearestNeighbor );
4280+ auto image_filter =
4281+ DlMatrixImageFilter::Make (DlMatrix::MakeTranslation ({100 .0f , 100 .0f }),
4282+ DlImageSampling::kNearestNeighbor );
42804283 save_paint.setImageFilter (image_filter);
42814284 builder.SaveLayer (nullptr , &save_paint);
42824285
@@ -5697,9 +5700,9 @@ TEST_F(DisplayListTest, BoundedRenderOpsDoNotReportUnbounded) {
56975700}
56985701
56995702TEST_F (DisplayListTest, UnboundedRenderOpsAreReportedUnlessClipped) {
5700- static const SkRect root_cull = SkRect ::MakeLTRB (100 , 100 , 200 , 200 );
5701- static const SkRect clip_rect = SkRect ::MakeLTRB (120 , 120 , 180 , 180 );
5702- static const SkRect draw_rect = SkRect ::MakeLTRB (110 , 110 , 190 , 190 );
5703+ static const DlRect root_cull = DlRect ::MakeLTRB (100 , 100 , 200 , 200 );
5704+ static const DlRect clip_rect = DlRect ::MakeLTRB (120 , 120 , 180 , 180 );
5705+ static const DlRect draw_rect = DlRect ::MakeLTRB (110 , 110 , 190 , 190 );
57035706
57045707 using Renderer = const std::function<void (DlCanvas&)>;
57055708 auto test_unbounded = [](const std::string& label, //
@@ -5710,7 +5713,7 @@ TEST_F(DisplayListTest, UnboundedRenderOpsAreReportedUnlessClipped) {
57105713 renderer (builder);
57115714 auto display_list = builder.Build ();
57125715
5713- EXPECT_EQ (display_list->bounds (), root_cull) << label;
5716+ EXPECT_EQ (display_list->GetBounds (), root_cull) << label;
57145717 EXPECT_TRUE (display_list->root_is_unbounded ()) << label;
57155718 }
57165719
@@ -5720,7 +5723,7 @@ TEST_F(DisplayListTest, UnboundedRenderOpsAreReportedUnlessClipped) {
57205723 renderer (builder);
57215724 auto display_list = builder.Build ();
57225725
5723- EXPECT_EQ (display_list->bounds (), clip_rect) << label;
5726+ EXPECT_EQ (display_list->GetBounds (), clip_rect) << label;
57245727 EXPECT_FALSE (display_list->root_is_unbounded ()) << label;
57255728 }
57265729
@@ -5731,7 +5734,7 @@ TEST_F(DisplayListTest, UnboundedRenderOpsAreReportedUnlessClipped) {
57315734 builder.Restore ();
57325735 auto display_list = builder.Build ();
57335736
5734- EXPECT_EQ (display_list->bounds (), root_cull) << label;
5737+ EXPECT_EQ (display_list->GetBounds (), root_cull) << label;
57355738 EXPECT_FALSE (display_list->root_is_unbounded ()) << label;
57365739
57375740 SAVE_LAYER_EXPECTOR (expector);
@@ -5754,7 +5757,7 @@ TEST_F(DisplayListTest, UnboundedRenderOpsAreReportedUnlessClipped) {
57545757 builder.Restore ();
57555758 auto display_list = builder.Build ();
57565759
5757- EXPECT_EQ (display_list->bounds (), clip_rect) << label;
5760+ EXPECT_EQ (display_list->GetBounds (), clip_rect) << label;
57585761 EXPECT_FALSE (display_list->root_is_unbounded ()) << label;
57595762
57605763 SAVE_LAYER_EXPECTOR (expector);
@@ -5783,13 +5786,13 @@ TEST_F(DisplayListTest, UnboundedRenderOpsAreReportedUnlessClipped) {
57835786 });
57845787
57855788 test_unbounded (" DrawPathEvenOddInverted" , [](DlCanvas& builder) {
5786- SkPath path = SkPath::Rect (draw_rect);
5789+ SkPath path = SkPath::Rect (ToSkRect ( draw_rect) );
57875790 path.setFillType (SkPathFillType::kInverseEvenOdd );
57885791 builder.DrawPath (path, DlPaint ());
57895792 });
57905793
57915794 test_unbounded (" DrawPathWindingInverted" , [](DlCanvas& builder) {
5792- SkPath path = SkPath::Rect (draw_rect);
5795+ SkPath path = SkPath::Rect (ToSkRect ( draw_rect) );
57935796 path.setFillType (SkPathFillType::kInverseWinding );
57945797 builder.DrawPath (path, DlPaint ());
57955798 });
@@ -5799,7 +5802,7 @@ TEST_F(DisplayListTest, UnboundedRenderOpsAreReportedUnlessClipped) {
57995802 nested_builder.DrawPaint (DlPaint ());
58005803 auto nested_display_list = nested_builder.Build ();
58015804
5802- EXPECT_EQ (nested_display_list->bounds (), root_cull);
5805+ EXPECT_EQ (nested_display_list->GetBounds (), root_cull);
58035806 ASSERT_TRUE (nested_display_list->root_is_unbounded ());
58045807
58055808 builder.DrawDisplayList (nested_display_list);
@@ -5818,7 +5821,7 @@ TEST_F(DisplayListTest, UnboundedRenderOpsAreReportedUnlessClipped) {
58185821 // ColorFilter must modify transparent black to be "unbounded"
58195822 ASSERT_TRUE (unbounded_cf->modifies_transparent_black ());
58205823 auto unbounded_if = DlColorFilterImageFilter::Make (unbounded_cf);
5821- SkRect output_bounds;
5824+ DlRect output_bounds;
58225825 // ImageFilter returns null from bounds queries if it is "unbounded"
58235826 ASSERT_EQ (unbounded_if->map_local_bounds (draw_rect, output_bounds),
58245827 nullptr );
0 commit comments