@@ -532,13 +532,13 @@ TEST_F(DisplayListTest, UnclippedSaveLayerContentAccountsForFilter) {
532
532
builder.Restore ();
533
533
auto display_list = builder.Build ();
534
534
535
- EXPECT_EQ (display_list->op_count (), 6u );
535
+ ASSERT_EQ (display_list->op_count (), 6u );
536
536
EXPECT_EQ (display_list->total_depth (), 2u );
537
537
538
538
SkRect result_rect = draw_rect.makeOutset (30 .0f , 30 .0f );
539
539
ASSERT_TRUE (result_rect.intersect (clip_rect));
540
540
ASSERT_EQ (result_rect, SkRect::MakeLTRB (100 .0f , 110 .0f , 131 .0f , 190 .0f ));
541
- EXPECT_EQ (display_list->bounds (), result_rect);
541
+ ASSERT_EQ (display_list->bounds (), result_rect);
542
542
}
543
543
544
544
TEST_F (DisplayListTest, ClippedSaveLayerContentAccountsForFilter) {
@@ -565,72 +565,13 @@ TEST_F(DisplayListTest, ClippedSaveLayerContentAccountsForFilter) {
565
565
builder.Restore ();
566
566
auto display_list = builder.Build ();
567
567
568
- EXPECT_EQ (display_list->op_count (), 6u );
568
+ ASSERT_EQ (display_list->op_count (), 6u );
569
569
EXPECT_EQ (display_list->total_depth (), 2u );
570
570
571
571
SkRect result_rect = draw_rect.makeOutset (30 .0f , 30 .0f );
572
572
ASSERT_TRUE (result_rect.intersect (clip_rect));
573
573
ASSERT_EQ (result_rect, SkRect::MakeLTRB (100 .0f , 110 .0f , 129 .0f , 190 .0f ));
574
- EXPECT_EQ (display_list->bounds (), result_rect);
575
- }
576
-
577
- TEST_F (DisplayListTest, OOBSaveLayerContentCulledWithBlurFilter) {
578
- SkRect cull_rect = SkRect::MakeLTRB (100 .0f , 100 .0f , 200 .0f , 200 .0f );
579
- SkRect draw_rect = SkRect::MakeLTRB (25 .0f , 25 .0f , 99 .0f , 75 .0f );
580
- auto filter = DlBlurImageFilter::Make (10 .0f , 10 .0f , DlTileMode::kDecal );
581
- DlPaint layer_paint = DlPaint ().setImageFilter (filter);
582
-
583
- // We want a draw rect that is outside the layer bounds even though its
584
- // filtered output might be inside. The drawn rect should be culled by
585
- // the expectations of the layer bounds even though it is close enough
586
- // to be visible due to filtering.
587
- ASSERT_FALSE (cull_rect.intersects (draw_rect));
588
- SkRect mapped_rect;
589
- ASSERT_TRUE (filter->map_local_bounds (draw_rect, mapped_rect));
590
- ASSERT_TRUE (mapped_rect.intersects (cull_rect));
591
-
592
- DisplayListBuilder builder;
593
- builder.SaveLayer (&cull_rect, &layer_paint);
594
- { //
595
- builder.DrawRect (draw_rect, DlPaint ());
596
- }
597
- builder.Restore ();
598
- auto display_list = builder.Build ();
599
-
600
- EXPECT_EQ (display_list->op_count (), 2u );
601
- EXPECT_EQ (display_list->total_depth (), 1u );
602
-
603
- EXPECT_TRUE (display_list->bounds ().isEmpty ()) << display_list->bounds ();
604
- }
605
-
606
- TEST_F (DisplayListTest, OOBSaveLayerContentCulledWithMatrixFilter) {
607
- SkRect cull_rect = SkRect::MakeLTRB (100 .0f , 100 .0f , 200 .0f , 200 .0f );
608
- SkRect draw_rect = SkRect::MakeLTRB (25 .0f , 125 .0f , 75 .0f , 175 .0f );
609
- auto filter = DlMatrixImageFilter::Make (SkMatrix::Translate (100 .0f , 0 .0f ),
610
- DlImageSampling::kLinear );
611
- DlPaint layer_paint = DlPaint ().setImageFilter (filter);
612
-
613
- // We want a draw rect that is outside the layer bounds even though its
614
- // filtered output might be inside. The drawn rect should be culled by
615
- // the expectations of the layer bounds even though it is close enough
616
- // to be visible due to filtering.
617
- ASSERT_FALSE (cull_rect.intersects (draw_rect));
618
- SkRect mapped_rect;
619
- ASSERT_TRUE (filter->map_local_bounds (draw_rect, mapped_rect));
620
- ASSERT_TRUE (mapped_rect.intersects (cull_rect));
621
-
622
- DisplayListBuilder builder;
623
- builder.SaveLayer (&cull_rect, &layer_paint);
624
- { //
625
- builder.DrawRect (draw_rect, DlPaint ());
626
- }
627
- builder.Restore ();
628
- auto display_list = builder.Build ();
629
-
630
- EXPECT_EQ (display_list->op_count (), 2u );
631
- EXPECT_EQ (display_list->total_depth (), 1u );
632
-
633
- EXPECT_TRUE (display_list->bounds ().isEmpty ()) << display_list->bounds ();
574
+ ASSERT_EQ (display_list->bounds (), result_rect);
634
575
}
635
576
636
577
TEST_F (DisplayListTest, SingleOpSizes) {
@@ -1203,33 +1144,14 @@ TEST_F(DisplayListTest, SingleOpsMightSupportGroupOpacityBlendMode) {
1203
1144
1204
1145
TEST_F (DisplayListTest, OverlappingOpsDoNotSupportGroupOpacity) {
1205
1146
DisplayListBuilder builder;
1147
+ DlOpReceiver& receiver = ToReceiver (builder);
1206
1148
for (int i = 0 ; i < 10 ; i++) {
1207
- builder. DrawRect (SkRect::MakeXYWH (i * 10 , 0 , 30 , 30 ), DlPaint ( ));
1149
+ receiver. drawRect (SkRect::MakeXYWH (i * 10 , 0 , 30 , 30 ));
1208
1150
}
1209
1151
auto display_list = builder.Build ();
1210
1152
EXPECT_FALSE (display_list->can_apply_group_opacity ());
1211
1153
}
1212
1154
1213
- TEST_F (DisplayListTest, LineOfNonOverlappingOpsSupportGroupOpacity) {
1214
- DisplayListBuilder builder;
1215
- for (int i = 0 ; i < 10 ; i++) {
1216
- builder.DrawRect (SkRect::MakeXYWH (i * 30 , 0 , 30 , 30 ), DlPaint ());
1217
- }
1218
- auto display_list = builder.Build ();
1219
- EXPECT_TRUE (display_list->can_apply_group_opacity ());
1220
- }
1221
-
1222
- TEST_F (DisplayListTest, CrossOfNonOverlappingOpsSupportGroupOpacity) {
1223
- DisplayListBuilder builder;
1224
- builder.DrawRect (SkRect::MakeLTRB (200 , 200 , 300 , 300 ), DlPaint ()); // center
1225
- builder.DrawRect (SkRect::MakeLTRB (100 , 200 , 200 , 300 ), DlPaint ()); // left
1226
- builder.DrawRect (SkRect::MakeLTRB (200 , 100 , 300 , 200 ), DlPaint ()); // above
1227
- builder.DrawRect (SkRect::MakeLTRB (300 , 200 , 400 , 300 ), DlPaint ()); // right
1228
- builder.DrawRect (SkRect::MakeLTRB (200 , 300 , 300 , 400 ), DlPaint ()); // below
1229
- auto display_list = builder.Build ();
1230
- EXPECT_TRUE (display_list->can_apply_group_opacity ());
1231
- }
1232
-
1233
1155
TEST_F (DisplayListTest, SaveLayerFalseSupportsGroupOpacityOverlappingChidren) {
1234
1156
DisplayListBuilder builder;
1235
1157
DlOpReceiver& receiver = ToReceiver (builder);
@@ -1326,8 +1248,7 @@ class SaveLayerOptionsExpector : public virtual DlOpReceiver,
1326
1248
void saveLayer (const SkRect& bounds,
1327
1249
const SaveLayerOptions options,
1328
1250
const DlImageFilter* backdrop) override {
1329
- EXPECT_EQ (options, expected_[save_layer_count_])
1330
- << " index " << save_layer_count_;
1251
+ EXPECT_EQ (options, expected_[save_layer_count_]);
1331
1252
save_layer_count_++;
1332
1253
}
1333
1254
@@ -3937,7 +3858,7 @@ TEST_F(DisplayListTest, SaveContentDepthTest) {
3937
3858
3938
3859
builder.Save (); // covers depth 1->9
3939
3860
{
3940
- builder.Translate (5 , 5 ); // triggers deferred save at depth 1
3861
+ builder.Translate (5 , 5 );
3941
3862
builder.DrawRect ({10 , 10 , 20 , 20 }, DlPaint ()); // depth 2
3942
3863
3943
3864
builder.DrawDisplayList (child, 1 .0f ); // depth 3 (content) + 4 (self)
@@ -3947,12 +3868,12 @@ TEST_F(DisplayListTest, SaveContentDepthTest) {
3947
3868
builder.DrawRect ({12 , 12 , 22 , 22 }, DlPaint ()); // depth 5
3948
3869
builder.DrawRect ({14 , 14 , 24 , 24 }, DlPaint ()); // depth 6
3949
3870
}
3950
- builder.Restore (); // layer is restored with depth 6
3871
+ builder.Restore (); // layer is restored with depth 7
3951
3872
3952
3873
builder.DrawRect ({16 , 16 , 26 , 26 }, DlPaint ()); // depth 8
3953
3874
builder.DrawRect ({18 , 18 , 28 , 28 }, DlPaint ()); // depth 9
3954
3875
}
3955
- builder.Restore (); // save is restored with depth 9
3876
+ builder.Restore ();
3956
3877
3957
3878
builder.DrawRect ({16 , 16 , 26 , 26 }, DlPaint ()); // depth 10
3958
3879
builder.DrawRect ({18 , 18 , 28 , 28 }, DlPaint ()); // depth 11
0 commit comments