Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Side by Side Diff: cc/resources/picture_layer_tiling_unittest.cc

Issue 775483002: cc: Remove max tiles and skewport constants from tiling client. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/resources/picture_layer_tiling.h" 5 #include "cc/resources/picture_layer_tiling.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <set> 8 #include <set>
9 9
10 #include "cc/base/math_util.h" 10 #include "cc/base/math_util.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 } 47 }
48 48
49 class TestablePictureLayerTiling : public PictureLayerTiling { 49 class TestablePictureLayerTiling : public PictureLayerTiling {
50 public: 50 public:
51 using PictureLayerTiling::SetLiveTilesRect; 51 using PictureLayerTiling::SetLiveTilesRect;
52 using PictureLayerTiling::TileAt; 52 using PictureLayerTiling::TileAt;
53 53
54 static scoped_ptr<TestablePictureLayerTiling> Create( 54 static scoped_ptr<TestablePictureLayerTiling> Create(
55 float contents_scale, 55 float contents_scale,
56 const gfx::Size& layer_bounds, 56 const gfx::Size& layer_bounds,
57 PictureLayerTilingClient* client) { 57 PictureLayerTilingClient* client,
58 const LayerTreeSettings& settings) {
58 return make_scoped_ptr(new TestablePictureLayerTiling( 59 return make_scoped_ptr(new TestablePictureLayerTiling(
59 contents_scale, 60 contents_scale, layer_bounds, client,
60 layer_bounds, 61 settings.max_tiles_for_interest_area,
61 client)); 62 settings.skewport_target_time_in_seconds,
63 settings.skewport_extrapolation_limit_in_content_pixels));
62 } 64 }
63 65
64 gfx::Rect live_tiles_rect() const { return live_tiles_rect_; } 66 gfx::Rect live_tiles_rect() const { return live_tiles_rect_; }
65 bool eviction_tiles_cache_valid() const { 67 bool eviction_tiles_cache_valid() const {
66 return eviction_tiles_cache_valid_; 68 return eviction_tiles_cache_valid_;
67 } 69 }
68 70
69 using PictureLayerTiling::ComputeSkewport; 71 using PictureLayerTiling::ComputeSkewport;
70 using PictureLayerTiling::RemoveTileAt; 72 using PictureLayerTiling::RemoveTileAt;
71 73
72 protected: 74 protected:
73 TestablePictureLayerTiling(float contents_scale, 75 TestablePictureLayerTiling(float contents_scale,
74 const gfx::Size& layer_bounds, 76 const gfx::Size& layer_bounds,
75 PictureLayerTilingClient* client) 77 PictureLayerTilingClient* client,
76 : PictureLayerTiling(contents_scale, layer_bounds, client) { } 78 size_t max_tiles_for_interest_area,
79 float skewport_target_time,
80 int skewport_extrapolation_limit)
81 : PictureLayerTiling(contents_scale,
82 layer_bounds,
83 client,
84 max_tiles_for_interest_area,
85 skewport_target_time,
86 skewport_extrapolation_limit) {}
77 }; 87 };
78 88
79 class PictureLayerTilingIteratorTest : public testing::Test { 89 class PictureLayerTilingIteratorTest : public testing::Test {
80 public: 90 public:
81 PictureLayerTilingIteratorTest() {} 91 PictureLayerTilingIteratorTest() {}
82 virtual ~PictureLayerTilingIteratorTest() {} 92 virtual ~PictureLayerTilingIteratorTest() {}
83 93
84 void Initialize(const gfx::Size& tile_size, 94 void Initialize(const gfx::Size& tile_size,
85 float contents_scale, 95 float contents_scale,
86 const gfx::Size& layer_bounds) { 96 const gfx::Size& layer_bounds) {
87 client_.SetTileSize(tile_size); 97 client_.SetTileSize(tile_size);
88 client_.set_tree(PENDING_TREE); 98 client_.set_tree(PENDING_TREE);
89 tiling_ = TestablePictureLayerTiling::Create(contents_scale, 99 tiling_ = TestablePictureLayerTiling::Create(contents_scale, layer_bounds,
90 layer_bounds, 100 &client_, LayerTreeSettings());
91 &client_);
92 } 101 }
93 102
94 void SetLiveRectAndVerifyTiles(const gfx::Rect& live_tiles_rect) { 103 void SetLiveRectAndVerifyTiles(const gfx::Rect& live_tiles_rect) {
95 tiling_->SetLiveTilesRect(live_tiles_rect); 104 tiling_->SetLiveTilesRect(live_tiles_rect);
96 105
97 std::vector<Tile*> tiles = tiling_->AllTilesForTesting(); 106 std::vector<Tile*> tiles = tiling_->AllTilesForTesting();
98 for (std::vector<Tile*>::iterator iter = tiles.begin(); 107 for (std::vector<Tile*>::iterator iter = tiles.begin();
99 iter != tiles.end(); 108 iter != tiles.end();
100 ++iter) { 109 ++iter) {
101 EXPECT_TRUE(live_tiles_rect.Intersects((*iter)->content_rect())); 110 EXPECT_TRUE(live_tiles_rect.Intersects((*iter)->content_rect()));
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 182
174 void VerifyTilesCoverNonContainedRect(float rect_scale, 183 void VerifyTilesCoverNonContainedRect(float rect_scale,
175 const gfx::Rect& dest_rect) { 184 const gfx::Rect& dest_rect) {
176 float dest_to_contents_scale = tiling_->contents_scale() / rect_scale; 185 float dest_to_contents_scale = tiling_->contents_scale() / rect_scale;
177 gfx::Rect clamped_rect = gfx::ScaleToEnclosingRect( 186 gfx::Rect clamped_rect = gfx::ScaleToEnclosingRect(
178 gfx::Rect(tiling_->tiling_size()), 1.f / dest_to_contents_scale); 187 gfx::Rect(tiling_->tiling_size()), 1.f / dest_to_contents_scale);
179 clamped_rect.Intersect(dest_rect); 188 clamped_rect.Intersect(dest_rect);
180 VerifyTilesExactlyCoverRect(rect_scale, dest_rect, clamped_rect); 189 VerifyTilesExactlyCoverRect(rect_scale, dest_rect, clamped_rect);
181 } 190 }
182 191
183 void set_max_tiles_for_interest_area(size_t area) {
184 client_.set_max_tiles_for_interest_area(area);
185 }
186
187 protected: 192 protected:
188 FakePictureLayerTilingClient client_; 193 FakePictureLayerTilingClient client_;
189 scoped_ptr<TestablePictureLayerTiling> tiling_; 194 scoped_ptr<TestablePictureLayerTiling> tiling_;
190 195
191 private: 196 private:
192 DISALLOW_COPY_AND_ASSIGN(PictureLayerTilingIteratorTest); 197 DISALLOW_COPY_AND_ASSIGN(PictureLayerTilingIteratorTest);
193 }; 198 };
194 199
195 TEST_F(PictureLayerTilingIteratorTest, ResizeDeletesTiles) { 200 TEST_F(PictureLayerTilingIteratorTest, ResizeDeletesTiles) {
196 // Verifies that a resize with invalidation for newly exposed pixels will 201 // Verifies that a resize with invalidation for newly exposed pixels will
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 VerifyTilesCoverNonContainedRect(0.5f, gfx::Rect(-1000, -1000, 2000, 2000)); 529 VerifyTilesCoverNonContainedRect(0.5f, gfx::Rect(-1000, -1000, 2000, 2000));
525 530
526 // Partially covering content, but too large 531 // Partially covering content, but too large
527 VerifyTilesCoverNonContainedRect(1.0f, gfx::Rect(-1000, 100, 2000, 100)); 532 VerifyTilesCoverNonContainedRect(1.0f, gfx::Rect(-1000, 100, 2000, 100));
528 VerifyTilesCoverNonContainedRect(1.5f, gfx::Rect(-1000, 100, 2000, 100)); 533 VerifyTilesCoverNonContainedRect(1.5f, gfx::Rect(-1000, 100, 2000, 100));
529 VerifyTilesCoverNonContainedRect(0.5f, gfx::Rect(-1000, 100, 2000, 100)); 534 VerifyTilesCoverNonContainedRect(0.5f, gfx::Rect(-1000, 100, 2000, 100));
530 } 535 }
531 536
532 TEST(PictureLayerTilingTest, SkewportLimits) { 537 TEST(PictureLayerTilingTest, SkewportLimits) {
533 FakePictureLayerTilingClient client; 538 FakePictureLayerTilingClient client;
534 client.set_skewport_extrapolation_limit_in_content_pixels(75);
535 client.set_tree(ACTIVE_TREE); 539 client.set_tree(ACTIVE_TREE);
536 scoped_ptr<TestablePictureLayerTiling> tiling; 540 scoped_ptr<TestablePictureLayerTiling> tiling;
537 541
538 gfx::Rect viewport(0, 0, 100, 100); 542 gfx::Rect viewport(0, 0, 100, 100);
539 gfx::Size layer_bounds(200, 200); 543 gfx::Size layer_bounds(200, 200);
540 544
541 client.SetTileSize(gfx::Size(100, 100)); 545 client.SetTileSize(gfx::Size(100, 100));
542 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client); 546 LayerTreeSettings settings;
547 settings.max_tiles_for_interest_area = 10000;
548 settings.skewport_extrapolation_limit_in_content_pixels = 75;
549 tiling =
550 TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client, settings);
543 551
544 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); 552 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion());
545 553
546 // Move viewport down 50 pixels in 0.5 seconds. 554 // Move viewport down 50 pixels in 0.5 seconds.
547 gfx::Rect down_skewport = 555 gfx::Rect down_skewport =
548 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100)); 556 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100));
549 557
550 EXPECT_EQ(0, down_skewport.x()); 558 EXPECT_EQ(0, down_skewport.x());
551 EXPECT_EQ(50, down_skewport.y()); 559 EXPECT_EQ(50, down_skewport.y());
552 EXPECT_EQ(100, down_skewport.width()); 560 EXPECT_EQ(100, down_skewport.width());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 606
599 TEST(PictureLayerTilingTest, ComputeSkewport) { 607 TEST(PictureLayerTilingTest, ComputeSkewport) {
600 FakePictureLayerTilingClient client; 608 FakePictureLayerTilingClient client;
601 scoped_ptr<TestablePictureLayerTiling> tiling; 609 scoped_ptr<TestablePictureLayerTiling> tiling;
602 610
603 gfx::Rect viewport(0, 0, 100, 100); 611 gfx::Rect viewport(0, 0, 100, 100);
604 gfx::Size layer_bounds(200, 200); 612 gfx::Size layer_bounds(200, 200);
605 613
606 client.SetTileSize(gfx::Size(100, 100)); 614 client.SetTileSize(gfx::Size(100, 100));
607 client.set_tree(ACTIVE_TREE); 615 client.set_tree(ACTIVE_TREE);
608 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client); 616 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client,
617 LayerTreeSettings());
609 618
610 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); 619 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion());
611 620
612 // Move viewport down 50 pixels in 0.5 seconds. 621 // Move viewport down 50 pixels in 0.5 seconds.
613 gfx::Rect down_skewport = 622 gfx::Rect down_skewport =
614 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100)); 623 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100));
615 624
616 EXPECT_EQ(0, down_skewport.x()); 625 EXPECT_EQ(0, down_skewport.x());
617 EXPECT_EQ(50, down_skewport.y()); 626 EXPECT_EQ(50, down_skewport.y());
618 EXPECT_EQ(100, down_skewport.width()); 627 EXPECT_EQ(100, down_skewport.width());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 666
658 TEST(PictureLayerTilingTest, ViewportDistanceWithScale) { 667 TEST(PictureLayerTilingTest, ViewportDistanceWithScale) {
659 FakePictureLayerTilingClient client; 668 FakePictureLayerTilingClient client;
660 scoped_ptr<TestablePictureLayerTiling> tiling; 669 scoped_ptr<TestablePictureLayerTiling> tiling;
661 670
662 gfx::Rect viewport(0, 0, 100, 100); 671 gfx::Rect viewport(0, 0, 100, 100);
663 gfx::Size layer_bounds(1500, 1500); 672 gfx::Size layer_bounds(1500, 1500);
664 673
665 client.SetTileSize(gfx::Size(10, 10)); 674 client.SetTileSize(gfx::Size(10, 10));
666 client.set_tree(ACTIVE_TREE); 675 client.set_tree(ACTIVE_TREE);
676 LayerTreeSettings settings;
677 settings.max_tiles_for_interest_area = 10000;
667 678
668 // Tiling at 0.25 scale: this should create 47x47 tiles of size 10x10. 679 // Tiling at 0.25 scale: this should create 47x47 tiles of size 10x10.
669 // The reason is that each tile has a one pixel border, so tile at (1, 2) 680 // The reason is that each tile has a one pixel border, so tile at (1, 2)
670 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at 681 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at
671 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the 682 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the
672 // tiling. 683 // tiling.
673 tiling = TestablePictureLayerTiling::Create(0.25f, layer_bounds, &client); 684 tiling = TestablePictureLayerTiling::Create(0.25f, layer_bounds, &client,
685 settings);
674 gfx::Rect viewport_in_content_space = 686 gfx::Rect viewport_in_content_space =
675 gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f)); 687 gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f));
676 688
677 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); 689 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion());
678 tiling->UpdateAllTilePrioritiesForTesting(); 690 tiling->UpdateAllTilePrioritiesForTesting();
679 691
680 gfx::Rect soon_rect = viewport; 692 gfx::Rect soon_rect = viewport;
681 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); 693 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f);
682 gfx::Rect soon_rect_in_content_space = 694 gfx::Rect soon_rect_in_content_space =
683 gfx::ToEnclosedRect(gfx::ScaleRect(soon_rect, 0.25f)); 695 gfx::ToEnclosedRect(gfx::ScaleRect(soon_rect, 0.25f));
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
817 priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE); 829 priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
818 EXPECT_FLOAT_EQ(136.f, priority.distance_to_visible); 830 EXPECT_FLOAT_EQ(136.f, priority.distance_to_visible);
819 831
820 priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE); 832 priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
821 EXPECT_FLOAT_EQ(56.f, priority.distance_to_visible); 833 EXPECT_FLOAT_EQ(56.f, priority.distance_to_visible);
822 834
823 priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE); 835 priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
824 EXPECT_FLOAT_EQ(8.f, priority.distance_to_visible); 836 EXPECT_FLOAT_EQ(8.f, priority.distance_to_visible);
825 837
826 // Test additional scales. 838 // Test additional scales.
827 tiling = TestablePictureLayerTiling::Create(0.2f, layer_bounds, &client); 839 tiling = TestablePictureLayerTiling::Create(0.2f, layer_bounds, &client,
840 LayerTreeSettings());
828 tiling->ComputeTilePriorityRects(viewport, 1.0f, 4.0, Occlusion()); 841 tiling->ComputeTilePriorityRects(viewport, 1.0f, 4.0, Occlusion());
829 tiling->UpdateAllTilePrioritiesForTesting(); 842 tiling->UpdateAllTilePrioritiesForTesting();
830 843
831 priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE); 844 priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
832 EXPECT_FLOAT_EQ(110.f, priority.distance_to_visible); 845 EXPECT_FLOAT_EQ(110.f, priority.distance_to_visible);
833 846
834 priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE); 847 priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
835 EXPECT_FLOAT_EQ(70.f, priority.distance_to_visible); 848 EXPECT_FLOAT_EQ(70.f, priority.distance_to_visible);
836 849
837 priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE); 850 priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
1077 scoped_ptr<TestablePictureLayerTiling> tiling; 1090 scoped_ptr<TestablePictureLayerTiling> tiling;
1078 1091
1079 gfx::Rect viewport(50, 50, 100, 100); 1092 gfx::Rect viewport(50, 50, 100, 100);
1080 gfx::Size layer_bounds(800, 800); 1093 gfx::Size layer_bounds(800, 800);
1081 1094
1082 gfx::Rect soon_rect = viewport; 1095 gfx::Rect soon_rect = viewport;
1083 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); 1096 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f);
1084 1097
1085 client.SetTileSize(gfx::Size(30, 30)); 1098 client.SetTileSize(gfx::Size(30, 30));
1086 client.set_tree(ACTIVE_TREE); 1099 client.set_tree(ACTIVE_TREE);
1100 LayerTreeSettings settings;
1101 settings.max_tiles_for_interest_area = 10000;
1087 1102
1088 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client); 1103 tiling =
1104 TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client, settings);
1089 tiling->ComputeTilePriorityRects(viewport, 1.0f, 1.0, Occlusion()); 1105 tiling->ComputeTilePriorityRects(viewport, 1.0f, 1.0, Occlusion());
1090 tiling->UpdateAllTilePrioritiesForTesting(); 1106 tiling->UpdateAllTilePrioritiesForTesting();
1091 1107
1092 PictureLayerTiling::TilingRasterTileIterator empty_iterator; 1108 PictureLayerTiling::TilingRasterTileIterator empty_iterator;
1093 EXPECT_FALSE(empty_iterator); 1109 EXPECT_FALSE(empty_iterator);
1094 1110
1095 std::vector<Tile*> all_tiles = tiling->AllTilesForTesting(); 1111 std::vector<Tile*> all_tiles = tiling->AllTilesForTesting();
1096 1112
1097 // Sanity check. 1113 // Sanity check.
1098 EXPECT_EQ(841u, all_tiles.size()); 1114 EXPECT_EQ(841u, all_tiles.size());
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
1182 TEST(PictureLayerTilingTest, TilingRasterTileIteratorMovingViewport) { 1198 TEST(PictureLayerTilingTest, TilingRasterTileIteratorMovingViewport) {
1183 FakePictureLayerTilingClient client; 1199 FakePictureLayerTilingClient client;
1184 scoped_ptr<TestablePictureLayerTiling> tiling; 1200 scoped_ptr<TestablePictureLayerTiling> tiling;
1185 1201
1186 gfx::Rect viewport(50, 0, 100, 100); 1202 gfx::Rect viewport(50, 0, 100, 100);
1187 gfx::Rect moved_viewport(50, 0, 100, 500); 1203 gfx::Rect moved_viewport(50, 0, 100, 500);
1188 gfx::Size layer_bounds(1000, 1000); 1204 gfx::Size layer_bounds(1000, 1000);
1189 1205
1190 client.SetTileSize(gfx::Size(30, 30)); 1206 client.SetTileSize(gfx::Size(30, 30));
1191 client.set_tree(ACTIVE_TREE); 1207 client.set_tree(ACTIVE_TREE);
1208 LayerTreeSettings settings;
1209 settings.max_tiles_for_interest_area = 10000;
1192 1210
1193 tiling = TestablePictureLayerTiling::Create(1.f, layer_bounds, &client); 1211 tiling =
1212 TestablePictureLayerTiling::Create(1.f, layer_bounds, &client, settings);
1194 tiling->ComputeTilePriorityRects(viewport, 1.0f, 1.0, Occlusion()); 1213 tiling->ComputeTilePriorityRects(viewport, 1.0f, 1.0, Occlusion());
1195 tiling->ComputeTilePriorityRects(moved_viewport, 1.0f, 2.0, Occlusion()); 1214 tiling->ComputeTilePriorityRects(moved_viewport, 1.0f, 2.0, Occlusion());
1196 tiling->UpdateAllTilePrioritiesForTesting(); 1215 tiling->UpdateAllTilePrioritiesForTesting();
1197 1216
1198 gfx::Rect soon_rect = moved_viewport; 1217 gfx::Rect soon_rect = moved_viewport;
1199 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); 1218 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f);
1200 1219
1201 // There are 3 bins in TilePriority. 1220 // There are 3 bins in TilePriority.
1202 bool have_tiles[3] = {}; 1221 bool have_tiles[3] = {};
1203 Tile* last_tile = NULL; 1222 Tile* last_tile = NULL;
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1318 bool intersects = rect.Intersects(geometry_rect); 1337 bool intersects = rect.Intersects(geometry_rect);
1319 bool expected_exists = intersect_exists ? intersects : !intersects; 1338 bool expected_exists = intersect_exists ? intersects : !intersects;
1320 EXPECT_EQ(expected_exists, tile != NULL) 1339 EXPECT_EQ(expected_exists, tile != NULL)
1321 << "Rects intersecting " << rect.ToString() << " should exist. " 1340 << "Rects intersecting " << rect.ToString() << " should exist. "
1322 << "Current tile rect is " << geometry_rect.ToString(); 1341 << "Current tile rect is " << geometry_rect.ToString();
1323 } 1342 }
1324 1343
1325 TEST_F(PictureLayerTilingIteratorTest, 1344 TEST_F(PictureLayerTilingIteratorTest,
1326 TilesExistLargeViewportAndLayerWithSmallVisibleArea) { 1345 TilesExistLargeViewportAndLayerWithSmallVisibleArea) {
1327 gfx::Size layer_bounds(10000, 10000); 1346 gfx::Size layer_bounds(10000, 10000);
1328 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); 1347 client_.SetTileSize(gfx::Size(100, 100));
1348 client_.set_tree(PENDING_TREE);
1349 LayerTreeSettings settings;
1350 settings.max_tiles_for_interest_area = 1;
1351
1352 tiling_ =
1353 TestablePictureLayerTiling::Create(1.f, layer_bounds, &client_, settings);
1329 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); 1354 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds));
1330 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); 1355 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false));
1331 1356
1332 gfx::Rect visible_rect(8000, 8000, 50, 50); 1357 gfx::Rect visible_rect(8000, 8000, 50, 50);
1333 1358
1334 client_.set_tree(ACTIVE_TREE); 1359 client_.set_tree(ACTIVE_TREE);
1335 set_max_tiles_for_interest_area(1);
1336 tiling_->ComputeTilePriorityRects(visible_rect, // visible content rect 1360 tiling_->ComputeTilePriorityRects(visible_rect, // visible content rect
1337 1.f, // current contents scale 1361 1.f, // current contents scale
1338 1.0, // current frame time 1362 1.0, // current frame time
1339 Occlusion()); 1363 Occlusion());
1340 VerifyTiles(1.f, 1364 VerifyTiles(1.f,
1341 gfx::Rect(layer_bounds), 1365 gfx::Rect(layer_bounds),
1342 base::Bind(&TilesIntersectingRectExist, visible_rect, true)); 1366 base::Bind(&TilesIntersectingRectExist, visible_rect, true));
1343 } 1367 }
1344 1368
1345 TEST_F(PictureLayerTilingIteratorTest, AddTilingsToMatchScale) { 1369 TEST_F(PictureLayerTilingIteratorTest, AddTilingsToMatchScale) {
1346 gfx::Size layer_bounds(1099, 801); 1370 gfx::Size layer_bounds(1099, 801);
1347 gfx::Size tile_size(100, 100); 1371 gfx::Size tile_size(100, 100);
1348 1372
1349 client_.SetTileSize(tile_size); 1373 client_.SetTileSize(tile_size);
1350 client_.set_tree(PENDING_TREE); 1374 client_.set_tree(PENDING_TREE);
1351 1375
1352 auto active_set = PictureLayerTilingSet::Create(&client_); 1376 LayerTreeSettings defaults;
1377 auto active_set = PictureLayerTilingSet::Create(
1378 &client_, 10000, defaults.skewport_target_time_in_seconds,
1379 defaults.skewport_extrapolation_limit_in_content_pixels);
1353 1380
1354 active_set->AddTiling(1.f, layer_bounds); 1381 active_set->AddTiling(1.f, layer_bounds);
1355 1382
1356 VerifyTiles(active_set->tiling_at(0), 1.f, gfx::Rect(layer_bounds), 1383 VerifyTiles(active_set->tiling_at(0), 1.f, gfx::Rect(layer_bounds),
1357 base::Bind(&TileExists, false)); 1384 base::Bind(&TileExists, false));
1358 1385
1359 UpdateAllTilePriorities(active_set.get(), 1386 UpdateAllTilePriorities(active_set.get(),
1360 gfx::Rect(layer_bounds), // visible content rect 1387 gfx::Rect(layer_bounds), // visible content rect
1361 1.f, // current contents scale 1388 1.f, // current contents scale
1362 1.0); // current frame time 1389 1.0); // current frame time
1363 1390
1364 // The active tiling has tiles now. 1391 // The active tiling has tiles now.
1365 VerifyTiles(active_set->tiling_at(0), 1.f, gfx::Rect(layer_bounds), 1392 VerifyTiles(active_set->tiling_at(0), 1.f, gfx::Rect(layer_bounds),
1366 base::Bind(&TileExists, true)); 1393 base::Bind(&TileExists, true));
1367 1394
1368 // Add the same tilings to the pending set. 1395 // Add the same tilings to the pending set.
1369 auto pending_set = PictureLayerTilingSet::Create(&client_); 1396 auto pending_set = PictureLayerTilingSet::Create(
1397 &client_, 10000, defaults.skewport_target_time_in_seconds,
1398 defaults.skewport_extrapolation_limit_in_content_pixels);
1370 Region invalidation; 1399 Region invalidation;
1371 pending_set->SyncTilingsForTesting(*active_set, layer_bounds, invalidation, 1400 pending_set->SyncTilingsForTesting(*active_set, layer_bounds, invalidation,
1372 0.f, client_.raster_source()); 1401 0.f, client_.raster_source());
1373 1402
1374 // The pending tiling starts with no tiles. 1403 // The pending tiling starts with no tiles.
1375 VerifyTiles(pending_set->tiling_at(0), 1.f, gfx::Rect(layer_bounds), 1404 VerifyTiles(pending_set->tiling_at(0), 1.f, gfx::Rect(layer_bounds),
1376 base::Bind(&TileExists, false)); 1405 base::Bind(&TileExists, false));
1377 1406
1378 // ComputeTilePriorityRects on the pending tiling at the same frame time. The 1407 // ComputeTilePriorityRects on the pending tiling at the same frame time. The
1379 // pending tiling should get tiles. 1408 // pending tiling should get tiles.
(...skipping 19 matching lines...) Expand all
1399 float current_layer_contents_scale = 1.f; 1428 float current_layer_contents_scale = 1.f;
1400 gfx::Transform current_screen_transform; 1429 gfx::Transform current_screen_transform;
1401 double current_frame_time_in_seconds = 1.0; 1430 double current_frame_time_in_seconds = 1.0;
1402 1431
1403 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1432 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1404 current_screen_transform, device_viewport); 1433 current_screen_transform, device_viewport);
1405 1434
1406 client.SetTileSize(gfx::Size(100, 100)); 1435 client.SetTileSize(gfx::Size(100, 100));
1407 client.set_tree(ACTIVE_TREE); 1436 client.set_tree(ACTIVE_TREE);
1408 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1437 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1409 current_layer_bounds, 1438 current_layer_bounds, &client,
1410 &client); 1439 LayerTreeSettings());
1411 1440
1412 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1441 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1413 current_layer_contents_scale, 1442 current_layer_contents_scale,
1414 current_frame_time_in_seconds, Occlusion()); 1443 current_frame_time_in_seconds, Occlusion());
1415 tiling->UpdateAllTilePrioritiesForTesting(); 1444 tiling->UpdateAllTilePrioritiesForTesting();
1416 1445
1417 ASSERT_TRUE(tiling->TileAt(0, 0)); 1446 ASSERT_TRUE(tiling->TileAt(0, 0));
1418 ASSERT_TRUE(tiling->TileAt(0, 1)); 1447 ASSERT_TRUE(tiling->TileAt(0, 1));
1419 ASSERT_TRUE(tiling->TileAt(1, 0)); 1448 ASSERT_TRUE(tiling->TileAt(1, 0));
1420 ASSERT_TRUE(tiling->TileAt(1, 1)); 1449 ASSERT_TRUE(tiling->TileAt(1, 1));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1453 1482
1454 current_screen_transform.Translate(850, 0); 1483 current_screen_transform.Translate(850, 0);
1455 last_screen_transform = current_screen_transform; 1484 last_screen_transform = current_screen_transform;
1456 1485
1457 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1486 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1458 current_screen_transform, device_viewport); 1487 current_screen_transform, device_viewport);
1459 1488
1460 client.SetTileSize(gfx::Size(100, 100)); 1489 client.SetTileSize(gfx::Size(100, 100));
1461 client.set_tree(ACTIVE_TREE); 1490 client.set_tree(ACTIVE_TREE);
1462 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1491 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1463 current_layer_bounds, 1492 current_layer_bounds, &client,
1464 &client); 1493 LayerTreeSettings());
1465 1494
1466 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1495 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1467 current_layer_contents_scale, 1496 current_layer_contents_scale,
1468 current_frame_time_in_seconds, Occlusion()); 1497 current_frame_time_in_seconds, Occlusion());
1469 tiling->UpdateAllTilePrioritiesForTesting(); 1498 tiling->UpdateAllTilePrioritiesForTesting();
1470 1499
1471 ASSERT_TRUE(tiling->TileAt(0, 0)); 1500 ASSERT_TRUE(tiling->TileAt(0, 0));
1472 ASSERT_TRUE(tiling->TileAt(0, 1)); 1501 ASSERT_TRUE(tiling->TileAt(0, 1));
1473 ASSERT_TRUE(tiling->TileAt(1, 0)); 1502 ASSERT_TRUE(tiling->TileAt(1, 0));
1474 ASSERT_TRUE(tiling->TileAt(1, 1)); 1503 ASSERT_TRUE(tiling->TileAt(1, 1));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1517 1546
1518 current_screen_transform.Translate(705, 505); 1547 current_screen_transform.Translate(705, 505);
1519 last_screen_transform = current_screen_transform; 1548 last_screen_transform = current_screen_transform;
1520 1549
1521 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1550 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1522 current_screen_transform, device_viewport); 1551 current_screen_transform, device_viewport);
1523 1552
1524 client.SetTileSize(gfx::Size(100, 100)); 1553 client.SetTileSize(gfx::Size(100, 100));
1525 client.set_tree(ACTIVE_TREE); 1554 client.set_tree(ACTIVE_TREE);
1526 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1555 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1527 current_layer_bounds, 1556 current_layer_bounds, &client,
1528 &client); 1557 LayerTreeSettings());
1529 1558
1530 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1559 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1531 current_layer_contents_scale, 1560 current_layer_contents_scale,
1532 current_frame_time_in_seconds, Occlusion()); 1561 current_frame_time_in_seconds, Occlusion());
1533 tiling->UpdateAllTilePrioritiesForTesting(); 1562 tiling->UpdateAllTilePrioritiesForTesting();
1534 1563
1535 ASSERT_TRUE(tiling->TileAt(0, 0)); 1564 ASSERT_TRUE(tiling->TileAt(0, 0));
1536 ASSERT_TRUE(tiling->TileAt(0, 1)); 1565 ASSERT_TRUE(tiling->TileAt(0, 1));
1537 ASSERT_TRUE(tiling->TileAt(1, 0)); 1566 ASSERT_TRUE(tiling->TileAt(1, 0));
1538 ASSERT_TRUE(tiling->TileAt(1, 1)); 1567 ASSERT_TRUE(tiling->TileAt(1, 1));
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1575 current_screen_transform.Translate(600, 750); 1604 current_screen_transform.Translate(600, 750);
1576 current_screen_transform.RotateAboutZAxis(45); 1605 current_screen_transform.RotateAboutZAxis(45);
1577 last_screen_transform = current_screen_transform; 1606 last_screen_transform = current_screen_transform;
1578 1607
1579 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1608 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1580 current_screen_transform, device_viewport); 1609 current_screen_transform, device_viewport);
1581 1610
1582 client.SetTileSize(gfx::Size(100, 100)); 1611 client.SetTileSize(gfx::Size(100, 100));
1583 client.set_tree(ACTIVE_TREE); 1612 client.set_tree(ACTIVE_TREE);
1584 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1613 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1585 current_layer_bounds, 1614 current_layer_bounds, &client,
1586 &client); 1615 LayerTreeSettings());
1587 1616
1588 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1617 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1589 current_layer_contents_scale, 1618 current_layer_contents_scale,
1590 current_frame_time_in_seconds, Occlusion()); 1619 current_frame_time_in_seconds, Occlusion());
1591 tiling->UpdateAllTilePrioritiesForTesting(); 1620 tiling->UpdateAllTilePrioritiesForTesting();
1592 1621
1593 ASSERT_TRUE(tiling->TileAt(0, 0)); 1622 ASSERT_TRUE(tiling->TileAt(0, 0));
1594 ASSERT_TRUE(tiling->TileAt(0, 1)); 1623 ASSERT_TRUE(tiling->TileAt(0, 1));
1595 ASSERT_TRUE(tiling->TileAt(1, 0)); 1624 ASSERT_TRUE(tiling->TileAt(1, 0));
1596 ASSERT_TRUE(tiling->TileAt(1, 1)); 1625 ASSERT_TRUE(tiling->TileAt(1, 1));
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1657 gfx::QuadF(gfx::RectF(0, 0, 200, 200)), 1686 gfx::QuadF(gfx::RectF(0, 0, 200, 200)),
1658 &clipped); 1687 &clipped);
1659 ASSERT_FALSE(clipped); 1688 ASSERT_FALSE(clipped);
1660 1689
1661 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1690 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1662 current_screen_transform, device_viewport); 1691 current_screen_transform, device_viewport);
1663 1692
1664 client.SetTileSize(gfx::Size(100, 100)); 1693 client.SetTileSize(gfx::Size(100, 100));
1665 client.set_tree(ACTIVE_TREE); 1694 client.set_tree(ACTIVE_TREE);
1666 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1695 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1667 current_layer_bounds, 1696 current_layer_bounds, &client,
1668 &client); 1697 LayerTreeSettings());
1669 1698
1670 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1699 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1671 current_layer_contents_scale, 1700 current_layer_contents_scale,
1672 current_frame_time_in_seconds, Occlusion()); 1701 current_frame_time_in_seconds, Occlusion());
1673 tiling->UpdateAllTilePrioritiesForTesting(); 1702 tiling->UpdateAllTilePrioritiesForTesting();
1674 1703
1675 ASSERT_TRUE(tiling->TileAt(0, 0)); 1704 ASSERT_TRUE(tiling->TileAt(0, 0));
1676 ASSERT_TRUE(tiling->TileAt(0, 1)); 1705 ASSERT_TRUE(tiling->TileAt(0, 1));
1677 ASSERT_TRUE(tiling->TileAt(1, 0)); 1706 ASSERT_TRUE(tiling->TileAt(1, 0));
1678 ASSERT_TRUE(tiling->TileAt(1, 1)); 1707 ASSERT_TRUE(tiling->TileAt(1, 1));
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1749 gfx::QuadF(gfx::RectF(100, 0, 100, 200)), 1778 gfx::QuadF(gfx::RectF(100, 0, 100, 200)),
1750 &clipped); 1779 &clipped);
1751 ASSERT_FALSE(clipped); 1780 ASSERT_FALSE(clipped);
1752 1781
1753 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1782 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1754 current_screen_transform, device_viewport); 1783 current_screen_transform, device_viewport);
1755 1784
1756 client.SetTileSize(gfx::Size(100, 100)); 1785 client.SetTileSize(gfx::Size(100, 100));
1757 client.set_tree(ACTIVE_TREE); 1786 client.set_tree(ACTIVE_TREE);
1758 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1787 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1759 current_layer_bounds, 1788 current_layer_bounds, &client,
1760 &client); 1789 LayerTreeSettings());
1761 1790
1762 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1791 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1763 current_layer_contents_scale, 1792 current_layer_contents_scale,
1764 current_frame_time_in_seconds, Occlusion()); 1793 current_frame_time_in_seconds, Occlusion());
1765 tiling->UpdateAllTilePrioritiesForTesting(); 1794 tiling->UpdateAllTilePrioritiesForTesting();
1766 1795
1767 ASSERT_TRUE(tiling->TileAt(0, 0)); 1796 ASSERT_TRUE(tiling->TileAt(0, 0));
1768 ASSERT_TRUE(tiling->TileAt(0, 1)); 1797 ASSERT_TRUE(tiling->TileAt(0, 1));
1769 ASSERT_TRUE(tiling->TileAt(1, 0)); 1798 ASSERT_TRUE(tiling->TileAt(1, 0));
1770 ASSERT_TRUE(tiling->TileAt(1, 1)); 1799 ASSERT_TRUE(tiling->TileAt(1, 1));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1810 1839
1811 // Offscreen layer is coming closer to viewport at 1000 pixels per second. 1840 // Offscreen layer is coming closer to viewport at 1000 pixels per second.
1812 current_screen_transform.Translate(1800, 0); 1841 current_screen_transform.Translate(1800, 0);
1813 last_screen_transform.Translate(2800, 0); 1842 last_screen_transform.Translate(2800, 0);
1814 1843
1815 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1844 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1816 current_screen_transform, device_viewport); 1845 current_screen_transform, device_viewport);
1817 1846
1818 client.SetTileSize(gfx::Size(100, 100)); 1847 client.SetTileSize(gfx::Size(100, 100));
1819 client.set_tree(ACTIVE_TREE); 1848 client.set_tree(ACTIVE_TREE);
1849 LayerTreeSettings settings;
1850 settings.max_tiles_for_interest_area = 10000;
1820 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1851 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1821 current_layer_bounds, 1852 current_layer_bounds, &client,
1822 &client); 1853 settings);
1823 1854
1824 // previous ("last") frame 1855 // previous ("last") frame
1825 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1856 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1826 last_layer_contents_scale, 1857 last_layer_contents_scale,
1827 last_frame_time_in_seconds, Occlusion()); 1858 last_frame_time_in_seconds, Occlusion());
1828 1859
1829 // current frame 1860 // current frame
1830 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1861 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1831 current_layer_contents_scale, 1862 current_layer_contents_scale,
1832 current_frame_time_in_seconds, Occlusion()); 1863 current_frame_time_in_seconds, Occlusion());
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1886 current_screen_transform.RotateAboutZAxis(45); 1917 current_screen_transform.RotateAboutZAxis(45);
1887 1918
1888 last_screen_transform.Translate(400, 550); 1919 last_screen_transform.Translate(400, 550);
1889 1920
1890 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1921 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1891 current_screen_transform, device_viewport); 1922 current_screen_transform, device_viewport);
1892 1923
1893 client.SetTileSize(gfx::Size(100, 100)); 1924 client.SetTileSize(gfx::Size(100, 100));
1894 client.set_tree(ACTIVE_TREE); 1925 client.set_tree(ACTIVE_TREE);
1895 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1926 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1896 current_layer_bounds, 1927 current_layer_bounds, &client,
1897 &client); 1928 LayerTreeSettings());
1898 1929
1899 // previous ("last") frame 1930 // previous ("last") frame
1900 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1931 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1901 last_layer_contents_scale, 1932 last_layer_contents_scale,
1902 last_frame_time_in_seconds, Occlusion()); 1933 last_frame_time_in_seconds, Occlusion());
1903 1934
1904 // current frame 1935 // current frame
1905 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1936 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1906 current_layer_contents_scale, 1937 current_layer_contents_scale,
1907 current_frame_time_in_seconds, Occlusion()); 1938 current_frame_time_in_seconds, Occlusion());
(...skipping 26 matching lines...) Expand all
1934 // - Viewport moves back and a new active tiling tile is created. 1965 // - Viewport moves back and a new active tiling tile is created.
1935 // Result: 1966 // Result:
1936 // - Recycle tiling does _not_ have the tile in the same location (thus it 1967 // - Recycle tiling does _not_ have the tile in the same location (thus it
1937 // will be shared next time a pending tiling is created). 1968 // will be shared next time a pending tiling is created).
1938 1969
1939 FakePictureLayerTilingClient active_client; 1970 FakePictureLayerTilingClient active_client;
1940 scoped_ptr<TestablePictureLayerTiling> active_tiling; 1971 scoped_ptr<TestablePictureLayerTiling> active_tiling;
1941 1972
1942 active_client.SetTileSize(gfx::Size(100, 100)); 1973 active_client.SetTileSize(gfx::Size(100, 100));
1943 active_client.set_tree(ACTIVE_TREE); 1974 active_client.set_tree(ACTIVE_TREE);
1944 active_client.set_max_tiles_for_interest_area(10); 1975 LayerTreeSettings settings;
1976 settings.max_tiles_for_interest_area = 10;
1945 active_tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1977 active_tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1946 gfx::Size(10000, 10000), 1978 gfx::Size(10000, 10000),
1947 &active_client); 1979 &active_client, settings);
1948 // Create all tiles on this tiling. 1980 // Create all tiles on this tiling.
1949 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, 1981 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f,
1950 Occlusion()); 1982 Occlusion());
1951 1983
1952 FakePictureLayerTilingClient recycle_client; 1984 FakePictureLayerTilingClient recycle_client;
1953 recycle_client.SetTileSize(gfx::Size(100, 100)); 1985 recycle_client.SetTileSize(gfx::Size(100, 100));
1954 recycle_client.set_tree(PENDING_TREE); 1986 recycle_client.set_tree(PENDING_TREE);
1955 recycle_client.set_twin_tiling(active_tiling.get()); 1987 recycle_client.set_twin_tiling(active_tiling.get());
1956 recycle_client.set_max_tiles_for_interest_area(10);
1957 1988
1958 scoped_ptr<TestablePictureLayerTiling> recycle_tiling; 1989 scoped_ptr<TestablePictureLayerTiling> recycle_tiling;
1959 recycle_tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1990 recycle_tiling = TestablePictureLayerTiling::Create(
1960 gfx::Size(10000, 10000), 1991 1.0f, // contents_scale
1961 &recycle_client); 1992 gfx::Size(10000, 10000), &recycle_client, settings);
1962 1993
1963 // Create all tiles on the second tiling. All tiles should be shared. 1994 // Create all tiles on the second tiling. All tiles should be shared.
1964 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1995 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f,
1965 1.0f, Occlusion()); 1996 1.0f, Occlusion());
1966 1997
1967 // Set the second tiling as recycled. 1998 // Set the second tiling as recycled.
1968 active_client.set_twin_tiling(NULL); 1999 active_client.set_twin_tiling(NULL);
1969 active_client.set_recycled_twin_tiling(recycle_tiling.get()); 2000 active_client.set_recycled_twin_tiling(recycle_tiling.get());
1970 recycle_client.set_twin_tiling(NULL); 2001 recycle_client.set_twin_tiling(NULL);
1971 2002
(...skipping 17 matching lines...) Expand all
1989 EXPECT_TRUE(active_tiling->TileAt(0, 0)); 2020 EXPECT_TRUE(active_tiling->TileAt(0, 0));
1990 EXPECT_FALSE(recycle_tiling->TileAt(0, 0)); 2021 EXPECT_FALSE(recycle_tiling->TileAt(0, 0));
1991 } 2022 }
1992 2023
1993 TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) { 2024 TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) {
1994 FakePictureLayerTilingClient active_client; 2025 FakePictureLayerTilingClient active_client;
1995 scoped_ptr<TestablePictureLayerTiling> active_tiling; 2026 scoped_ptr<TestablePictureLayerTiling> active_tiling;
1996 2027
1997 active_client.SetTileSize(gfx::Size(100, 100)); 2028 active_client.SetTileSize(gfx::Size(100, 100));
1998 active_client.set_tree(ACTIVE_TREE); 2029 active_client.set_tree(ACTIVE_TREE);
1999 active_tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 2030 active_tiling = TestablePictureLayerTiling::Create(
2000 gfx::Size(100, 100), 2031 1.0f, // contents_scale
2001 &active_client); 2032 gfx::Size(100, 100), &active_client, LayerTreeSettings());
2002 // Create all tiles on this tiling. 2033 // Create all tiles on this tiling.
2003 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, 2034 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f,
2004 Occlusion()); 2035 Occlusion());
2005 2036
2006 FakePictureLayerTilingClient recycle_client; 2037 FakePictureLayerTilingClient recycle_client;
2007 recycle_client.SetTileSize(gfx::Size(100, 100)); 2038 recycle_client.SetTileSize(gfx::Size(100, 100));
2008 recycle_client.set_tree(PENDING_TREE); 2039 recycle_client.set_tree(PENDING_TREE);
2009 recycle_client.set_twin_tiling(active_tiling.get()); 2040 recycle_client.set_twin_tiling(active_tiling.get());
2010 recycle_client.set_max_tiles_for_interest_area(10);
2011 2041
2042 LayerTreeSettings settings;
2043 settings.max_tiles_for_interest_area = 10;
2012 scoped_ptr<TestablePictureLayerTiling> recycle_tiling; 2044 scoped_ptr<TestablePictureLayerTiling> recycle_tiling;
2013 recycle_tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 2045 recycle_tiling = TestablePictureLayerTiling::Create(
2014 gfx::Size(100, 100), 2046 1.0f, // contents_scale
2015 &recycle_client); 2047 gfx::Size(100, 100), &recycle_client, settings);
2016 2048
2017 // Create all tiles on the recycle tiling. All tiles should be shared. 2049 // Create all tiles on the recycle tiling. All tiles should be shared.
2018 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 2050 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f,
2019 1.0f, Occlusion()); 2051 1.0f, Occlusion());
2020 2052
2021 // Set the second tiling as recycled. 2053 // Set the second tiling as recycled.
2022 active_client.set_twin_tiling(NULL); 2054 active_client.set_twin_tiling(NULL);
2023 active_client.set_recycled_twin_tiling(recycle_tiling.get()); 2055 active_client.set_recycled_twin_tiling(recycle_tiling.get());
2024 recycle_client.set_twin_tiling(NULL); 2056 recycle_client.set_twin_tiling(NULL);
2025 2057
(...skipping 26 matching lines...) Expand all
2052 tiling_->Resize(gfx::Size(250, 150)); 2084 tiling_->Resize(gfx::Size(250, 150));
2053 2085
2054 // Tile size in the tiling should be resized to 250x200. 2086 // Tile size in the tiling should be resized to 250x200.
2055 EXPECT_EQ(250, tiling_->TilingDataForTesting().max_texture_size().width()); 2087 EXPECT_EQ(250, tiling_->TilingDataForTesting().max_texture_size().width());
2056 EXPECT_EQ(200, tiling_->TilingDataForTesting().max_texture_size().height()); 2088 EXPECT_EQ(200, tiling_->TilingDataForTesting().max_texture_size().height());
2057 EXPECT_EQ(0u, tiling_->AllRefTilesForTesting().size()); 2089 EXPECT_EQ(0u, tiling_->AllRefTilesForTesting().size());
2058 } 2090 }
2059 2091
2060 } // namespace 2092 } // namespace
2061 } // namespace cc 2093 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/picture_layer_tiling_set_unittest.cc ('k') | cc/test/fake_picture_layer_tiling_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698