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

Unified Diff: cc/resources/picture_layer_tiling_unittest.cc

Issue 513903002: cc: Always remove tiles from the recycle tree also. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: recycle: pushprops 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/resources/picture_layer_tiling.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/picture_layer_tiling_unittest.cc
diff --git a/cc/resources/picture_layer_tiling_unittest.cc b/cc/resources/picture_layer_tiling_unittest.cc
index 01d2f32b92eb80d3f8bb144c6e43bcac10cbd7d6..e99619ea4e371627bbf340c466cc7a96aedc7408 100644
--- a/cc/resources/picture_layer_tiling_unittest.cc
+++ b/cc/resources/picture_layer_tiling_unittest.cc
@@ -1959,37 +1959,17 @@ TEST(PictureLayerTilingTest, RecycledTilesCleared) {
// - Recycle tiling does _not_ have the tile in the same location (thus it
// will be shared next time a pending tiling is created).
- FakePictureLayerTilingClient client;
- scoped_ptr<TestablePictureLayerTiling> tiling;
-
- client.SetTileSize(gfx::Size(100, 100));
- client.set_tree(ACTIVE_TREE);
- client.set_max_tiles_for_interest_area(10);
- tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
- gfx::Size(10000, 10000),
- &client);
- // Create all tiles on this tiling.
- tiling->UpdateTilePriorities(ACTIVE_TREE,
- gfx::Rect(0, 0, 100, 100),
- 1.0f,
- 1.0f,
- NULL, // occlusion tracker
- NULL, // render target
- gfx::Transform()); // draw transform
-
- FakePictureLayerTilingClient second_client;
- second_client.SetTileSize(gfx::Size(100, 100));
- second_client.set_tree(PENDING_TREE);
- second_client.set_twin_tiling(tiling.get());
- second_client.set_max_tiles_for_interest_area(10);
+ FakePictureLayerTilingClient active_client;
+ scoped_ptr<TestablePictureLayerTiling> active_tiling;
- scoped_ptr<TestablePictureLayerTiling> second_tiling;
- second_tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
+ active_client.SetTileSize(gfx::Size(100, 100));
+ active_client.set_tree(ACTIVE_TREE);
+ active_client.set_max_tiles_for_interest_area(10);
+ active_tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
gfx::Size(10000, 10000),
- &second_client);
-
- // Create all tiles on the second tiling. All tiles should be shared.
- second_tiling->UpdateTilePriorities(ACTIVE_TREE,
+ &active_client);
+ // Create all tiles on this tiling.
+ active_tiling->UpdateTilePriorities(ACTIVE_TREE,
gfx::Rect(0, 0, 100, 100),
1.0f,
1.0f,
@@ -1997,38 +1977,114 @@ TEST(PictureLayerTilingTest, RecycledTilesCleared) {
NULL, // render target
gfx::Transform()); // draw transform
- // Verify that tiles exist and are shared.
- ASSERT_TRUE(tiling->TileAt(0, 0));
- ASSERT_EQ(tiling->TileAt(0, 0), second_tiling->TileAt(0, 0));
+ FakePictureLayerTilingClient recycle_client;
+ recycle_client.SetTileSize(gfx::Size(100, 100));
+ recycle_client.set_tree(PENDING_TREE);
+ recycle_client.set_twin_tiling(active_tiling.get());
+ recycle_client.set_max_tiles_for_interest_area(10);
+
+ scoped_ptr<TestablePictureLayerTiling> recycle_tiling;
+ recycle_tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
+ gfx::Size(10000, 10000),
+ &recycle_client);
+
+ // Create all tiles on the second tiling. All tiles should be shared.
+ recycle_tiling->UpdateTilePriorities(PENDING_TREE,
+ gfx::Rect(0, 0, 100, 100),
+ 1.0f,
+ 1.0f,
+ NULL, // occlusion tracker
+ NULL, // render target
+ gfx::Transform()); // draw transform
// Set the second tiling as recycled.
- client.set_twin_tiling(NULL);
- client.set_recycled_twin_tiling(second_tiling.get());
- second_client.set_twin_tiling(NULL);
+ active_client.set_twin_tiling(NULL);
+ active_client.set_recycled_twin_tiling(recycle_tiling.get());
+ recycle_client.set_twin_tiling(NULL);
+
+ // Verify that tiles exist and are shared.
+ EXPECT_TRUE(active_tiling->TileAt(0, 0));
+ EXPECT_TRUE(recycle_tiling->TileAt(0, 0));
+ EXPECT_EQ(active_tiling->TileAt(0, 0), recycle_tiling->TileAt(0, 0));
// Move the viewport far away from the (0, 0) tile.
- tiling->UpdateTilePriorities(ACTIVE_TREE,
- gfx::Rect(9000, 9000, 100, 100),
- 1.0f,
- 2.0,
- NULL, // occlusion tracker
- NULL, // render target
- gfx::Transform()); // draw transform
- // Ensure the tile was deleted.
- EXPECT_FALSE(tiling->TileAt(0, 0));
+ active_tiling->UpdateTilePriorities(ACTIVE_TREE,
+ gfx::Rect(9000, 9000, 100, 100),
+ 1.0f,
+ 2.0,
+ NULL, // occlusion tracker
+ NULL, // render target
+ gfx::Transform()); // draw transform
+ // Ensure the tile was deleted on both tilings.
+ EXPECT_FALSE(active_tiling->TileAt(0, 0));
+ EXPECT_FALSE(recycle_tiling->TileAt(0, 0));
// Move the viewport back to (0, 0) tile.
- tiling->UpdateTilePriorities(ACTIVE_TREE,
- gfx::Rect(0, 0, 100, 100),
- 1.0f,
- 3.0,
- NULL, // occlusion tracker
- NULL, // render target
- gfx::Transform()); // draw transform
+ active_tiling->UpdateTilePriorities(ACTIVE_TREE,
+ gfx::Rect(0, 0, 100, 100),
+ 1.0f,
+ 3.0,
+ NULL, // occlusion tracker
+ NULL, // render target
+ gfx::Transform()); // draw transform
// Ensure that we now have a tile here, but the recycle tiling does not.
- EXPECT_TRUE(tiling->TileAt(0, 0));
- EXPECT_FALSE(second_tiling->TileAt(0, 0));
+ EXPECT_TRUE(active_tiling->TileAt(0, 0));
+ EXPECT_FALSE(recycle_tiling->TileAt(0, 0));
+}
+
+TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) {
+ FakePictureLayerTilingClient active_client;
+ scoped_ptr<TestablePictureLayerTiling> active_tiling;
+
+ active_client.SetTileSize(gfx::Size(100, 100));
+ active_client.set_tree(ACTIVE_TREE);
+ active_tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
+ gfx::Size(100, 100),
+ &active_client);
+ // Create all tiles on this tiling.
+ active_tiling->UpdateTilePriorities(ACTIVE_TREE,
+ gfx::Rect(0, 0, 100, 100),
+ 1.0f,
+ 1.0f,
+ NULL, // occlusion tracker
+ NULL, // render target
+ gfx::Transform()); // draw transform
+
+ FakePictureLayerTilingClient recycle_client;
+ recycle_client.SetTileSize(gfx::Size(100, 100));
+ recycle_client.set_tree(PENDING_TREE);
+ recycle_client.set_twin_tiling(active_tiling.get());
+ recycle_client.set_max_tiles_for_interest_area(10);
+
+ scoped_ptr<TestablePictureLayerTiling> recycle_tiling;
+ recycle_tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
+ gfx::Size(100, 100),
+ &recycle_client);
+
+ // Create all tiles on the recycle tiling. All tiles should be shared.
+ recycle_tiling->UpdateTilePriorities(PENDING_TREE,
+ gfx::Rect(0, 0, 100, 100),
+ 1.0f,
+ 1.0f,
+ NULL, // occlusion tracker
+ NULL, // render target
+ gfx::Transform()); // draw transform
+
+ // Set the second tiling as recycled.
+ active_client.set_twin_tiling(NULL);
+ active_client.set_recycled_twin_tiling(recycle_tiling.get());
+ recycle_client.set_twin_tiling(NULL);
+
+ // Verify that tiles exist and are shared.
+ EXPECT_TRUE(active_tiling->TileAt(0, 0));
+ EXPECT_TRUE(recycle_tiling->TileAt(0, 0));
+ EXPECT_EQ(active_tiling->TileAt(0, 0), recycle_tiling->TileAt(0, 0));
+
+ // Reset the active tiling. The recycle tiles should be released too.
+ active_tiling->Reset();
+ EXPECT_FALSE(active_tiling->TileAt(0, 0));
+ EXPECT_FALSE(recycle_tiling->TileAt(0, 0));
}
} // namespace
« no previous file with comments | « cc/resources/picture_layer_tiling.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698