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

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

Issue 366113002: cc: Do not cleanup tiles with raster tasks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits updated. Created 6 years, 4 months 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
« no previous file with comments | « cc/resources/picture_layer_tiling_set_unittest.cc ('k') | cc/resources/prioritized_tile_set.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 76
77 class PictureLayerTilingIteratorTest : public testing::Test { 77 class PictureLayerTilingIteratorTest : public testing::Test {
78 public: 78 public:
79 PictureLayerTilingIteratorTest() {} 79 PictureLayerTilingIteratorTest() {}
80 virtual ~PictureLayerTilingIteratorTest() {} 80 virtual ~PictureLayerTilingIteratorTest() {}
81 81
82 void Initialize(const gfx::Size& tile_size, 82 void Initialize(const gfx::Size& tile_size,
83 float contents_scale, 83 float contents_scale,
84 const gfx::Size& layer_bounds) { 84 const gfx::Size& layer_bounds) {
85 client_.SetTileSize(tile_size); 85 client_.SetTileSize(tile_size);
86 client_.set_tree(PENDING_TREE);
86 tiling_ = TestablePictureLayerTiling::Create(contents_scale, 87 tiling_ = TestablePictureLayerTiling::Create(contents_scale,
87 layer_bounds, 88 layer_bounds,
88 &client_); 89 &client_);
89 } 90 }
90 91
91 void SetLiveRectAndVerifyTiles(const gfx::Rect& live_tiles_rect) { 92 void SetLiveRectAndVerifyTiles(const gfx::Rect& live_tiles_rect) {
92 tiling_->SetLiveTilesRect(live_tiles_rect); 93 tiling_->SetLiveTilesRect(live_tiles_rect);
93 94
94 std::vector<Tile*> tiles = tiling_->AllTilesForTesting(); 95 std::vector<Tile*> tiles = tiling_->AllTilesForTesting();
95 for (std::vector<Tile*>::iterator iter = tiles.begin(); 96 for (std::vector<Tile*>::iterator iter = tiles.begin();
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 332
332 // Partially covering content, but too large 333 // Partially covering content, but too large
333 VerifyTilesCoverNonContainedRect(1.0f, gfx::Rect(-1000, 100, 2000, 100)); 334 VerifyTilesCoverNonContainedRect(1.0f, gfx::Rect(-1000, 100, 2000, 100));
334 VerifyTilesCoverNonContainedRect(1.5f, gfx::Rect(-1000, 100, 2000, 100)); 335 VerifyTilesCoverNonContainedRect(1.5f, gfx::Rect(-1000, 100, 2000, 100));
335 VerifyTilesCoverNonContainedRect(0.5f, gfx::Rect(-1000, 100, 2000, 100)); 336 VerifyTilesCoverNonContainedRect(0.5f, gfx::Rect(-1000, 100, 2000, 100));
336 } 337 }
337 338
338 TEST(PictureLayerTilingTest, SkewportLimits) { 339 TEST(PictureLayerTilingTest, SkewportLimits) {
339 FakePictureLayerTilingClient client; 340 FakePictureLayerTilingClient client;
340 client.set_skewport_extrapolation_limit_in_content_pixels(75); 341 client.set_skewport_extrapolation_limit_in_content_pixels(75);
342 client.set_tree(ACTIVE_TREE);
341 scoped_ptr<TestablePictureLayerTiling> tiling; 343 scoped_ptr<TestablePictureLayerTiling> tiling;
342 344
343 gfx::Rect viewport(0, 0, 100, 100); 345 gfx::Rect viewport(0, 0, 100, 100);
344 gfx::Size layer_bounds(200, 200); 346 gfx::Size layer_bounds(200, 200);
345 347
346 client.SetTileSize(gfx::Size(100, 100)); 348 client.SetTileSize(gfx::Size(100, 100));
347 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client); 349 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client);
348 350
349 tiling->UpdateTilePriorities( 351 tiling->UpdateTilePriorities(
350 ACTIVE_TREE, viewport, 1.f, 1.0, NULL, NULL, gfx::Transform()); 352 ACTIVE_TREE, viewport, 1.f, 1.0, NULL, NULL, gfx::Transform());
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 } 405 }
404 406
405 TEST(PictureLayerTilingTest, ComputeSkewport) { 407 TEST(PictureLayerTilingTest, ComputeSkewport) {
406 FakePictureLayerTilingClient client; 408 FakePictureLayerTilingClient client;
407 scoped_ptr<TestablePictureLayerTiling> tiling; 409 scoped_ptr<TestablePictureLayerTiling> tiling;
408 410
409 gfx::Rect viewport(0, 0, 100, 100); 411 gfx::Rect viewport(0, 0, 100, 100);
410 gfx::Size layer_bounds(200, 200); 412 gfx::Size layer_bounds(200, 200);
411 413
412 client.SetTileSize(gfx::Size(100, 100)); 414 client.SetTileSize(gfx::Size(100, 100));
415 client.set_tree(ACTIVE_TREE);
413 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client); 416 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client);
414 417
415 tiling->UpdateTilePriorities( 418 tiling->UpdateTilePriorities(
416 ACTIVE_TREE, viewport, 1.f, 1.0, NULL, NULL, gfx::Transform()); 419 ACTIVE_TREE, viewport, 1.f, 1.0, NULL, NULL, gfx::Transform());
417 420
418 // Move viewport down 50 pixels in 0.5 seconds. 421 // Move viewport down 50 pixels in 0.5 seconds.
419 gfx::Rect down_skewport = 422 gfx::Rect down_skewport =
420 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100)); 423 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100));
421 424
422 EXPECT_EQ(0, down_skewport.x()); 425 EXPECT_EQ(0, down_skewport.x());
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 } 465 }
463 466
464 TEST(PictureLayerTilingTest, ViewportDistanceWithScale) { 467 TEST(PictureLayerTilingTest, ViewportDistanceWithScale) {
465 FakePictureLayerTilingClient client; 468 FakePictureLayerTilingClient client;
466 scoped_ptr<TestablePictureLayerTiling> tiling; 469 scoped_ptr<TestablePictureLayerTiling> tiling;
467 470
468 gfx::Rect viewport(0, 0, 100, 100); 471 gfx::Rect viewport(0, 0, 100, 100);
469 gfx::Size layer_bounds(1500, 1500); 472 gfx::Size layer_bounds(1500, 1500);
470 473
471 client.SetTileSize(gfx::Size(10, 10)); 474 client.SetTileSize(gfx::Size(10, 10));
475 client.set_tree(ACTIVE_TREE);
472 476
473 // Tiling at 0.25 scale: this should create 47x47 tiles of size 10x10. 477 // Tiling at 0.25 scale: this should create 47x47 tiles of size 10x10.
474 // The reason is that each tile has a one pixel border, so tile at (1, 2) 478 // The reason is that each tile has a one pixel border, so tile at (1, 2)
475 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at 479 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at
476 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the 480 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the
477 // tiling. 481 // tiling.
478 tiling = TestablePictureLayerTiling::Create(0.25f, layer_bounds, &client); 482 tiling = TestablePictureLayerTiling::Create(0.25f, layer_bounds, &client);
479 gfx::Rect viewport_in_content_space = 483 gfx::Rect viewport_in_content_space =
480 gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f)); 484 gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f));
481 485
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 FakePictureLayerTilingClient client; 853 FakePictureLayerTilingClient client;
850 scoped_ptr<TestablePictureLayerTiling> tiling; 854 scoped_ptr<TestablePictureLayerTiling> tiling;
851 855
852 gfx::Rect viewport(50, 50, 100, 100); 856 gfx::Rect viewport(50, 50, 100, 100);
853 gfx::Size layer_bounds(800, 800); 857 gfx::Size layer_bounds(800, 800);
854 858
855 gfx::Rect soon_rect = viewport; 859 gfx::Rect soon_rect = viewport;
856 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); 860 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f);
857 861
858 client.SetTileSize(gfx::Size(30, 30)); 862 client.SetTileSize(gfx::Size(30, 30));
863 client.set_tree(ACTIVE_TREE);
859 864
860 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client); 865 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client);
861 tiling->UpdateTilePriorities( 866 tiling->UpdateTilePriorities(
862 ACTIVE_TREE, viewport, 1.0f, 1.0, NULL, NULL, gfx::Transform()); 867 ACTIVE_TREE, viewport, 1.0f, 1.0, NULL, NULL, gfx::Transform());
863 868
864 PictureLayerTiling::TilingRasterTileIterator empty_iterator; 869 PictureLayerTiling::TilingRasterTileIterator empty_iterator;
865 EXPECT_FALSE(empty_iterator); 870 EXPECT_FALSE(empty_iterator);
866 871
867 std::vector<Tile*> all_tiles = tiling->AllTilesForTesting(); 872 std::vector<Tile*> all_tiles = tiling->AllTilesForTesting();
868 873
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 962
958 TEST(PictureLayerTilingTest, TilingRasterTileIteratorMovingViewport) { 963 TEST(PictureLayerTilingTest, TilingRasterTileIteratorMovingViewport) {
959 FakePictureLayerTilingClient client; 964 FakePictureLayerTilingClient client;
960 scoped_ptr<TestablePictureLayerTiling> tiling; 965 scoped_ptr<TestablePictureLayerTiling> tiling;
961 966
962 gfx::Rect viewport(50, 0, 100, 100); 967 gfx::Rect viewport(50, 0, 100, 100);
963 gfx::Rect moved_viewport(50, 0, 100, 500); 968 gfx::Rect moved_viewport(50, 0, 100, 500);
964 gfx::Size layer_bounds(1000, 1000); 969 gfx::Size layer_bounds(1000, 1000);
965 970
966 client.SetTileSize(gfx::Size(30, 30)); 971 client.SetTileSize(gfx::Size(30, 30));
972 client.set_tree(ACTIVE_TREE);
967 973
968 tiling = TestablePictureLayerTiling::Create(1.f, layer_bounds, &client); 974 tiling = TestablePictureLayerTiling::Create(1.f, layer_bounds, &client);
969 tiling->UpdateTilePriorities( 975 tiling->UpdateTilePriorities(
970 ACTIVE_TREE, viewport, 1.0f, 1.0, NULL, NULL, gfx::Transform()); 976 ACTIVE_TREE, viewport, 1.0f, 1.0, NULL, NULL, gfx::Transform());
971 tiling->UpdateTilePriorities( 977 tiling->UpdateTilePriorities(
972 ACTIVE_TREE, moved_viewport, 1.0f, 2.0, NULL, NULL, gfx::Transform()); 978 ACTIVE_TREE, moved_viewport, 1.0f, 2.0, NULL, NULL, gfx::Transform());
973 979
974 gfx::Rect soon_rect = moved_viewport; 980 gfx::Rect soon_rect = moved_viewport;
975 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); 981 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f);
976 982
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 scoped_ptr<ResourceProvider> resource_provider = ResourceProvider::Create( 1038 scoped_ptr<ResourceProvider> resource_provider = ResourceProvider::Create(
1033 output_surface.get(), &shared_bitmap_manager, 0, false, 1, false); 1039 output_surface.get(), &shared_bitmap_manager, 0, false, 1, false);
1034 1040
1035 FakePictureLayerTilingClient client(resource_provider.get()); 1041 FakePictureLayerTilingClient client(resource_provider.get());
1036 scoped_ptr<TestablePictureLayerTiling> tiling; 1042 scoped_ptr<TestablePictureLayerTiling> tiling;
1037 1043
1038 gfx::Rect viewport(50, 50, 100, 100); 1044 gfx::Rect viewport(50, 50, 100, 100);
1039 gfx::Size layer_bounds(200, 200); 1045 gfx::Size layer_bounds(200, 200);
1040 1046
1041 client.SetTileSize(gfx::Size(30, 30)); 1047 client.SetTileSize(gfx::Size(30, 30));
1048 client.set_tree(ACTIVE_TREE);
1042 1049
1043 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client); 1050 tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client);
1044 tiling->UpdateTilePriorities( 1051 tiling->UpdateTilePriorities(
1045 ACTIVE_TREE, viewport, 1.0f, 1.0, NULL, NULL, gfx::Transform()); 1052 ACTIVE_TREE, viewport, 1.0f, 1.0, NULL, NULL, gfx::Transform());
1046 1053
1047 PictureLayerTiling::TilingRasterTileIterator empty_iterator; 1054 PictureLayerTiling::TilingRasterTileIterator empty_iterator;
1048 EXPECT_FALSE(empty_iterator); 1055 EXPECT_FALSE(empty_iterator);
1049 1056
1050 std::vector<Tile*> all_tiles = tiling->AllTilesForTesting(); 1057 std::vector<Tile*> all_tiles = tiling->AllTilesForTesting();
1051 1058
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1085 EXPECT_GT(all_tiles_set.size(), 0u); 1092 EXPECT_GT(all_tiles_set.size(), 0u);
1086 EXPECT_EQ(all_tiles_set, eviction_tiles); 1093 EXPECT_EQ(all_tiles_set, eviction_tiles);
1087 } 1094 }
1088 1095
1089 TEST_F(PictureLayerTilingIteratorTest, TilesExist) { 1096 TEST_F(PictureLayerTilingIteratorTest, TilesExist) {
1090 gfx::Size layer_bounds(1099, 801); 1097 gfx::Size layer_bounds(1099, 801);
1091 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); 1098 Initialize(gfx::Size(100, 100), 1.f, layer_bounds);
1092 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); 1099 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds));
1093 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); 1100 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false));
1094 1101
1102 client_.set_tree(ACTIVE_TREE);
1095 tiling_->UpdateTilePriorities( 1103 tiling_->UpdateTilePriorities(
1096 ACTIVE_TREE, 1104 ACTIVE_TREE,
1097 gfx::Rect(layer_bounds), // visible content rect 1105 gfx::Rect(layer_bounds), // visible content rect
1098 1.f, // current contents scale 1106 1.f, // current contents scale
1099 1.0, // current frame time 1107 1.0, // current frame time
1100 NULL, // occlusion tracker 1108 NULL, // occlusion tracker
1101 NULL, // render target 1109 NULL, // render target
1102 gfx::Transform()); // draw transform 1110 gfx::Transform()); // draw transform
1103 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true)); 1111 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true));
1104 1112
1105 // Make the viewport rect empty. All tiles are killed and become zombies. 1113 // Make the viewport rect empty. All tiles are killed and become zombies.
1106 tiling_->UpdateTilePriorities(ACTIVE_TREE, 1114 tiling_->UpdateTilePriorities(ACTIVE_TREE,
1107 gfx::Rect(), // visible content rect 1115 gfx::Rect(), // visible content rect
1108 1.f, // current contents scale 1116 1.f, // current contents scale
1109 2.0, // current frame time 1117 2.0, // current frame time
1110 NULL, // occlusion tracker 1118 NULL, // occlusion tracker
1111 NULL, // render target 1119 NULL, // render target
1112 gfx::Transform()); // draw transform 1120 gfx::Transform()); // draw transform
1113 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); 1121 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false));
1114 } 1122 }
1115 1123
1116 TEST_F(PictureLayerTilingIteratorTest, TilesExistGiantViewport) { 1124 TEST_F(PictureLayerTilingIteratorTest, TilesExistGiantViewport) {
1117 gfx::Size layer_bounds(1099, 801); 1125 gfx::Size layer_bounds(1099, 801);
1118 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); 1126 Initialize(gfx::Size(100, 100), 1.f, layer_bounds);
1119 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); 1127 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds));
1120 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); 1128 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false));
1121 1129
1122 gfx::Rect giant_rect(-10000000, -10000000, 1000000000, 1000000000); 1130 gfx::Rect giant_rect(-10000000, -10000000, 1000000000, 1000000000);
1123 1131
1132 client_.set_tree(ACTIVE_TREE);
1124 tiling_->UpdateTilePriorities( 1133 tiling_->UpdateTilePriorities(
1125 ACTIVE_TREE, 1134 ACTIVE_TREE,
1126 gfx::Rect(layer_bounds), // visible content rect 1135 gfx::Rect(layer_bounds), // visible content rect
1127 1.f, // current contents scale 1136 1.f, // current contents scale
1128 1.0, // current frame time 1137 1.0, // current frame time
1129 NULL, // occlusion tracker 1138 NULL, // occlusion tracker
1130 NULL, // render target 1139 NULL, // render target
1131 gfx::Transform()); // draw transform 1140 gfx::Transform()); // draw transform
1132 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true)); 1141 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true));
1133 1142
(...skipping 12 matching lines...) Expand all
1146 gfx::Size layer_bounds(1099, 801); 1155 gfx::Size layer_bounds(1099, 801);
1147 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); 1156 Initialize(gfx::Size(100, 100), 1.f, layer_bounds);
1148 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); 1157 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds));
1149 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); 1158 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false));
1150 1159
1151 // This rect does not intersect with the layer, as the layer is outside the 1160 // This rect does not intersect with the layer, as the layer is outside the
1152 // viewport. 1161 // viewport.
1153 gfx::Rect viewport_rect(1100, 0, 1000, 1000); 1162 gfx::Rect viewport_rect(1100, 0, 1000, 1000);
1154 EXPECT_FALSE(viewport_rect.Intersects(gfx::Rect(layer_bounds))); 1163 EXPECT_FALSE(viewport_rect.Intersects(gfx::Rect(layer_bounds)));
1155 1164
1165 client_.set_tree(ACTIVE_TREE);
1156 tiling_->UpdateTilePriorities(ACTIVE_TREE, 1166 tiling_->UpdateTilePriorities(ACTIVE_TREE,
1157 viewport_rect, // visible content rect 1167 viewport_rect, // visible content rect
1158 1.f, // current contents scale 1168 1.f, // current contents scale
1159 1.0, // current frame time 1169 1.0, // current frame time
1160 NULL, // occlusion tracker 1170 NULL, // occlusion tracker
1161 NULL, // render target 1171 NULL, // render target
1162 gfx::Transform()); // draw transform 1172 gfx::Transform()); // draw transform
1163 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true)); 1173 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true));
1164 } 1174 }
1165 1175
(...skipping 10 matching lines...) Expand all
1176 1186
1177 TEST_F(PictureLayerTilingIteratorTest, 1187 TEST_F(PictureLayerTilingIteratorTest,
1178 TilesExistLargeViewportAndLayerWithSmallVisibleArea) { 1188 TilesExistLargeViewportAndLayerWithSmallVisibleArea) {
1179 gfx::Size layer_bounds(10000, 10000); 1189 gfx::Size layer_bounds(10000, 10000);
1180 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); 1190 Initialize(gfx::Size(100, 100), 1.f, layer_bounds);
1181 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); 1191 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds));
1182 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); 1192 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false));
1183 1193
1184 gfx::Rect visible_rect(8000, 8000, 50, 50); 1194 gfx::Rect visible_rect(8000, 8000, 50, 50);
1185 1195
1196 client_.set_tree(ACTIVE_TREE);
1186 set_max_tiles_for_interest_area(1); 1197 set_max_tiles_for_interest_area(1);
1187 tiling_->UpdateTilePriorities(ACTIVE_TREE, 1198 tiling_->UpdateTilePriorities(ACTIVE_TREE,
1188 visible_rect, // visible content rect 1199 visible_rect, // visible content rect
1189 1.f, // current contents scale 1200 1.f, // current contents scale
1190 1.0, // current frame time 1201 1.0, // current frame time
1191 NULL, // occlusion tracker 1202 NULL, // occlusion tracker
1192 NULL, // render target 1203 NULL, // render target
1193 gfx::Transform()); // draw transform 1204 gfx::Transform()); // draw transform
1194 VerifyTiles(1.f, 1205 VerifyTiles(1.f,
1195 gfx::Rect(layer_bounds), 1206 gfx::Rect(layer_bounds),
1196 base::Bind(&TilesIntersectingRectExist, visible_rect, true)); 1207 base::Bind(&TilesIntersectingRectExist, visible_rect, true));
1197 } 1208 }
1198 1209
1199 static void CountExistingTiles(int *count, 1210 static void CountExistingTiles(int *count,
1200 Tile* tile, 1211 Tile* tile,
1201 const gfx::Rect& geometry_rect) { 1212 const gfx::Rect& geometry_rect) {
1202 if (tile != NULL) 1213 if (tile != NULL)
1203 ++(*count); 1214 ++(*count);
1204 } 1215 }
1205 1216
1206 TEST_F(PictureLayerTilingIteratorTest, 1217 TEST_F(PictureLayerTilingIteratorTest,
1207 TilesExistLargeViewportAndLayerWithLargeVisibleArea) { 1218 TilesExistLargeViewportAndLayerWithLargeVisibleArea) {
1208 gfx::Size layer_bounds(10000, 10000); 1219 gfx::Size layer_bounds(10000, 10000);
1209 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); 1220 Initialize(gfx::Size(100, 100), 1.f, layer_bounds);
1210 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); 1221 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds));
1211 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); 1222 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false));
1212 1223
1224 client_.set_tree(ACTIVE_TREE);
1213 set_max_tiles_for_interest_area(1); 1225 set_max_tiles_for_interest_area(1);
1214 tiling_->UpdateTilePriorities( 1226 tiling_->UpdateTilePriorities(
1215 ACTIVE_TREE, 1227 ACTIVE_TREE,
1216 gfx::Rect(layer_bounds), // visible content rect 1228 gfx::Rect(layer_bounds), // visible content rect
1217 1.f, // current contents scale 1229 1.f, // current contents scale
1218 1.0, // current frame time 1230 1.0, // current frame time
1219 NULL, // occlusion tracker 1231 NULL, // occlusion tracker
1220 NULL, // render target 1232 NULL, // render target
1221 gfx::Transform()); // draw transform 1233 gfx::Transform()); // draw transform
1222 1234
1223 int num_tiles = 0; 1235 int num_tiles = 0;
1224 VerifyTiles(1.f, 1236 VerifyTiles(1.f,
1225 gfx::Rect(layer_bounds), 1237 gfx::Rect(layer_bounds),
1226 base::Bind(&CountExistingTiles, &num_tiles)); 1238 base::Bind(&CountExistingTiles, &num_tiles));
1227 // If we're making a rect the size of one tile, it can only overlap up to 4 1239 // If we're making a rect the size of one tile, it can only overlap up to 4
1228 // tiles depending on its position. 1240 // tiles depending on its position.
1229 EXPECT_LE(num_tiles, 4); 1241 EXPECT_LE(num_tiles, 4);
1230 VerifyTiles(1.f, gfx::Rect(), base::Bind(&TileExists, false)); 1242 VerifyTiles(1.f, gfx::Rect(), base::Bind(&TileExists, false));
1231 } 1243 }
1232 1244
1233 TEST_F(PictureLayerTilingIteratorTest, AddTilingsToMatchScale) { 1245 TEST_F(PictureLayerTilingIteratorTest, AddTilingsToMatchScale) {
1234 gfx::Size layer_bounds(1099, 801); 1246 gfx::Size layer_bounds(1099, 801);
1235 gfx::Size tile_size(100, 100); 1247 gfx::Size tile_size(100, 100);
1236 1248
1237 client_.SetTileSize(tile_size); 1249 client_.SetTileSize(tile_size);
1250 client_.set_tree(PENDING_TREE);
1238 1251
1239 PictureLayerTilingSet active_set(&client_, layer_bounds); 1252 PictureLayerTilingSet active_set(&client_, layer_bounds);
1240 1253
1241 active_set.AddTiling(1.f); 1254 active_set.AddTiling(1.f);
1242 1255
1243 VerifyTiles(active_set.tiling_at(0), 1256 VerifyTiles(active_set.tiling_at(0),
1244 1.f, 1257 1.f,
1245 gfx::Rect(layer_bounds), 1258 gfx::Rect(layer_bounds),
1246 base::Bind(&TileExists, false)); 1259 base::Bind(&TileExists, false));
1247 1260
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1293 gfx::Size last_layer_bounds(200, 200); 1306 gfx::Size last_layer_bounds(200, 200);
1294 gfx::Size current_layer_bounds(200, 200); 1307 gfx::Size current_layer_bounds(200, 200);
1295 float current_layer_contents_scale = 1.f; 1308 float current_layer_contents_scale = 1.f;
1296 gfx::Transform current_screen_transform; 1309 gfx::Transform current_screen_transform;
1297 double current_frame_time_in_seconds = 1.0; 1310 double current_frame_time_in_seconds = 1.0;
1298 1311
1299 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1312 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1300 current_screen_transform, device_viewport); 1313 current_screen_transform, device_viewport);
1301 1314
1302 client.SetTileSize(gfx::Size(100, 100)); 1315 client.SetTileSize(gfx::Size(100, 100));
1316 client.set_tree(ACTIVE_TREE);
1303 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1317 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1304 current_layer_bounds, 1318 current_layer_bounds,
1305 &client); 1319 &client);
1306 1320
1307 tiling->UpdateTilePriorities(ACTIVE_TREE, 1321 tiling->UpdateTilePriorities(ACTIVE_TREE,
1308 viewport_in_layer_space, 1322 viewport_in_layer_space,
1309 current_layer_contents_scale, 1323 current_layer_contents_scale,
1310 current_frame_time_in_seconds, 1324 current_frame_time_in_seconds,
1311 NULL, // occlusion tracker 1325 NULL, // occlusion tracker
1312 NULL, // render target 1326 NULL, // render target
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1349 gfx::Transform current_screen_transform; 1363 gfx::Transform current_screen_transform;
1350 double current_frame_time_in_seconds = 1.0; 1364 double current_frame_time_in_seconds = 1.0;
1351 1365
1352 current_screen_transform.Translate(850, 0); 1366 current_screen_transform.Translate(850, 0);
1353 last_screen_transform = current_screen_transform; 1367 last_screen_transform = current_screen_transform;
1354 1368
1355 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1369 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1356 current_screen_transform, device_viewport); 1370 current_screen_transform, device_viewport);
1357 1371
1358 client.SetTileSize(gfx::Size(100, 100)); 1372 client.SetTileSize(gfx::Size(100, 100));
1373 client.set_tree(ACTIVE_TREE);
1359 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1374 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1360 current_layer_bounds, 1375 current_layer_bounds,
1361 &client); 1376 &client);
1362 1377
1363 tiling->UpdateTilePriorities(ACTIVE_TREE, 1378 tiling->UpdateTilePriorities(ACTIVE_TREE,
1364 viewport_in_layer_space, 1379 viewport_in_layer_space,
1365 current_layer_contents_scale, 1380 current_layer_contents_scale,
1366 current_frame_time_in_seconds, 1381 current_frame_time_in_seconds,
1367 NULL, // occlusion tracker 1382 NULL, // occlusion tracker
1368 NULL, // render target 1383 NULL, // render target
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1415 gfx::Transform current_screen_transform; 1430 gfx::Transform current_screen_transform;
1416 double current_frame_time_in_seconds = 1.0; 1431 double current_frame_time_in_seconds = 1.0;
1417 1432
1418 current_screen_transform.Translate(705, 505); 1433 current_screen_transform.Translate(705, 505);
1419 last_screen_transform = current_screen_transform; 1434 last_screen_transform = current_screen_transform;
1420 1435
1421 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1436 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1422 current_screen_transform, device_viewport); 1437 current_screen_transform, device_viewport);
1423 1438
1424 client.SetTileSize(gfx::Size(100, 100)); 1439 client.SetTileSize(gfx::Size(100, 100));
1440 client.set_tree(ACTIVE_TREE);
1425 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1441 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1426 current_layer_bounds, 1442 current_layer_bounds,
1427 &client); 1443 &client);
1428 1444
1429 tiling->UpdateTilePriorities(ACTIVE_TREE, 1445 tiling->UpdateTilePriorities(ACTIVE_TREE,
1430 viewport_in_layer_space, 1446 viewport_in_layer_space,
1431 current_layer_contents_scale, 1447 current_layer_contents_scale,
1432 current_frame_time_in_seconds, 1448 current_frame_time_in_seconds,
1433 NULL, // occlusion tracker 1449 NULL, // occlusion tracker
1434 NULL, // render target 1450 NULL, // render target
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1475 // A diagonally rotated layer that is partially off the bottom of the screen. 1491 // A diagonally rotated layer that is partially off the bottom of the screen.
1476 // In this configuration, only the top-left tile would be visible. 1492 // In this configuration, only the top-left tile would be visible.
1477 current_screen_transform.Translate(600, 750); 1493 current_screen_transform.Translate(600, 750);
1478 current_screen_transform.RotateAboutZAxis(45); 1494 current_screen_transform.RotateAboutZAxis(45);
1479 last_screen_transform = current_screen_transform; 1495 last_screen_transform = current_screen_transform;
1480 1496
1481 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1497 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1482 current_screen_transform, device_viewport); 1498 current_screen_transform, device_viewport);
1483 1499
1484 client.SetTileSize(gfx::Size(100, 100)); 1500 client.SetTileSize(gfx::Size(100, 100));
1501 client.set_tree(ACTIVE_TREE);
1485 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1502 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1486 current_layer_bounds, 1503 current_layer_bounds,
1487 &client); 1504 &client);
1488 1505
1489 tiling->UpdateTilePriorities(ACTIVE_TREE, 1506 tiling->UpdateTilePriorities(ACTIVE_TREE,
1490 viewport_in_layer_space, 1507 viewport_in_layer_space,
1491 current_layer_contents_scale, 1508 current_layer_contents_scale,
1492 current_frame_time_in_seconds, 1509 current_frame_time_in_seconds,
1493 NULL, // occlusion tracker 1510 NULL, // occlusion tracker
1494 NULL, // render target 1511 NULL, // render target
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1559 bool clipped; 1576 bool clipped;
1560 MathUtil::MapQuad(current_screen_transform, 1577 MathUtil::MapQuad(current_screen_transform,
1561 gfx::QuadF(gfx::RectF(0, 0, 200, 200)), 1578 gfx::QuadF(gfx::RectF(0, 0, 200, 200)),
1562 &clipped); 1579 &clipped);
1563 ASSERT_FALSE(clipped); 1580 ASSERT_FALSE(clipped);
1564 1581
1565 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1582 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1566 current_screen_transform, device_viewport); 1583 current_screen_transform, device_viewport);
1567 1584
1568 client.SetTileSize(gfx::Size(100, 100)); 1585 client.SetTileSize(gfx::Size(100, 100));
1586 client.set_tree(ACTIVE_TREE);
1569 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1587 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1570 current_layer_bounds, 1588 current_layer_bounds,
1571 &client); 1589 &client);
1572 1590
1573 tiling->UpdateTilePriorities(ACTIVE_TREE, 1591 tiling->UpdateTilePriorities(ACTIVE_TREE,
1574 viewport_in_layer_space, 1592 viewport_in_layer_space,
1575 current_layer_contents_scale, 1593 current_layer_contents_scale,
1576 current_frame_time_in_seconds, 1594 current_frame_time_in_seconds,
1577 NULL, // occlusion tracker 1595 NULL, // occlusion tracker
1578 NULL, // render target 1596 NULL, // render target
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1653 1671
1654 MathUtil::MapQuad(current_screen_transform, 1672 MathUtil::MapQuad(current_screen_transform,
1655 gfx::QuadF(gfx::RectF(100, 0, 100, 200)), 1673 gfx::QuadF(gfx::RectF(100, 0, 100, 200)),
1656 &clipped); 1674 &clipped);
1657 ASSERT_FALSE(clipped); 1675 ASSERT_FALSE(clipped);
1658 1676
1659 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1677 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1660 current_screen_transform, device_viewport); 1678 current_screen_transform, device_viewport);
1661 1679
1662 client.SetTileSize(gfx::Size(100, 100)); 1680 client.SetTileSize(gfx::Size(100, 100));
1681 client.set_tree(ACTIVE_TREE);
1663 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1682 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1664 current_layer_bounds, 1683 current_layer_bounds,
1665 &client); 1684 &client);
1666 1685
1667 tiling->UpdateTilePriorities(ACTIVE_TREE, 1686 tiling->UpdateTilePriorities(ACTIVE_TREE,
1668 viewport_in_layer_space, 1687 viewport_in_layer_space,
1669 current_layer_contents_scale, 1688 current_layer_contents_scale,
1670 current_frame_time_in_seconds, 1689 current_frame_time_in_seconds,
1671 NULL, // occlusion tracker 1690 NULL, // occlusion tracker
1672 NULL, // render target 1691 NULL, // render target
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1717 double current_frame_time_in_seconds = 2.0; 1736 double current_frame_time_in_seconds = 2.0;
1718 1737
1719 // Offscreen layer is coming closer to viewport at 1000 pixels per second. 1738 // Offscreen layer is coming closer to viewport at 1000 pixels per second.
1720 current_screen_transform.Translate(1800, 0); 1739 current_screen_transform.Translate(1800, 0);
1721 last_screen_transform.Translate(2800, 0); 1740 last_screen_transform.Translate(2800, 0);
1722 1741
1723 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1742 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1724 current_screen_transform, device_viewport); 1743 current_screen_transform, device_viewport);
1725 1744
1726 client.SetTileSize(gfx::Size(100, 100)); 1745 client.SetTileSize(gfx::Size(100, 100));
1746 client.set_tree(ACTIVE_TREE);
1727 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1747 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1728 current_layer_bounds, 1748 current_layer_bounds,
1729 &client); 1749 &client);
1730 1750
1731 // previous ("last") frame 1751 // previous ("last") frame
1732 tiling->UpdateTilePriorities(ACTIVE_TREE, 1752 tiling->UpdateTilePriorities(ACTIVE_TREE,
1733 viewport_in_layer_space, 1753 viewport_in_layer_space,
1734 last_layer_contents_scale, 1754 last_layer_contents_scale,
1735 last_frame_time_in_seconds, 1755 last_frame_time_in_seconds,
1736 NULL, // occlusion tracker 1756 NULL, // occlusion tracker
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1798 // because it is rotating toward the viewport. 1818 // because it is rotating toward the viewport.
1799 current_screen_transform.Translate(400, 550); 1819 current_screen_transform.Translate(400, 550);
1800 current_screen_transform.RotateAboutZAxis(45); 1820 current_screen_transform.RotateAboutZAxis(45);
1801 1821
1802 last_screen_transform.Translate(400, 550); 1822 last_screen_transform.Translate(400, 550);
1803 1823
1804 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1824 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1805 current_screen_transform, device_viewport); 1825 current_screen_transform, device_viewport);
1806 1826
1807 client.SetTileSize(gfx::Size(100, 100)); 1827 client.SetTileSize(gfx::Size(100, 100));
1828 client.set_tree(ACTIVE_TREE);
1808 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale 1829 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1809 current_layer_bounds, 1830 current_layer_bounds,
1810 &client); 1831 &client);
1811 1832
1812 // previous ("last") frame 1833 // previous ("last") frame
1813 tiling->UpdateTilePriorities(ACTIVE_TREE, 1834 tiling->UpdateTilePriorities(ACTIVE_TREE,
1814 viewport_in_layer_space, 1835 viewport_in_layer_space,
1815 last_layer_contents_scale, 1836 last_layer_contents_scale,
1816 last_frame_time_in_seconds, 1837 last_frame_time_in_seconds,
1817 NULL, // occlusion tracker 1838 NULL, // occlusion tracker
(...skipping 22 matching lines...) Expand all
1840 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible); 1861 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
1841 EXPECT_EQ(TilePriority::NOW, priority.priority_bin); 1862 EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
1842 1863
1843 priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE); 1864 priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
1844 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible); 1865 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
1845 EXPECT_EQ(TilePriority::NOW, priority.priority_bin); 1866 EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
1846 } 1867 }
1847 1868
1848 } // namespace 1869 } // namespace
1849 } // namespace cc 1870 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/picture_layer_tiling_set_unittest.cc ('k') | cc/resources/prioritized_tile_set.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698