Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit fe260ce

Browse files
committed
Add a test for nested display list rtree
1 parent f2b524f commit fe260ce

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

display_list/display_list_unittests.cc

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1650,6 +1650,26 @@ TEST(DisplayList, RTreeOfSaveLayerFilterScene) {
16501650
test_rtree(rtree, {19, 19, 51, 51}, rects, {0, 1});
16511651
}
16521652

1653+
TEST(DisplayList, NestedDisplayListRTreesAreSparse) {
1654+
DisplayListBuilder nested_dl_builder;
1655+
nested_dl_builder.drawRect({10, 10, 20, 20});
1656+
nested_dl_builder.drawRect({50, 50, 60, 60});
1657+
auto nested_display_list = nested_dl_builder.Build();
1658+
1659+
DisplayListBuilder builder;
1660+
builder.drawDisplayList(nested_display_list);
1661+
auto display_list = builder.Build();
1662+
1663+
auto rtree = display_list->rtree();
1664+
std::vector<SkRect> rects = {
1665+
{10, 10, 20, 20},
1666+
{50, 50, 60, 60},
1667+
};
1668+
1669+
// Hitting both sub-dl drawRect calls
1670+
test_rtree(rtree, {19, 19, 51, 51}, rects, {0, 1});
1671+
}
1672+
16531673
TEST(DisplayList, RemoveUnnecessarySaveRestorePairs) {
16541674
{
16551675
DisplayListBuilder builder;

display_list/display_list_utils.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -682,7 +682,7 @@ void DisplayListBoundsCalculator::drawDisplayList(
682682
display_list->rtree()->searchNonOverlappingDrawnRects(bounds);
683683
for (const SkRect& rect : rects) {
684684
// TODO (https://github.com/flutter/flutter/issues/114919): Attributes
685-
// are not neccessarily `kDrawDisplayListFlags`.
685+
// are not necessarily `kDrawDisplayListFlags`.
686686
AccumulateOpBounds(rect, kDrawDisplayListFlags);
687687
}
688688
return;

0 commit comments

Comments
 (0)