Index: cc/resources/tile_manager_unittest.cc |
diff --git a/cc/resources/tile_manager_unittest.cc b/cc/resources/tile_manager_unittest.cc |
index acd3a740bb3c84cb67966762fc6231b77b643739..2b2aaafd627b31c9a4a5727a3a0ce845357003df 100644 |
--- a/cc/resources/tile_manager_unittest.cc |
+++ b/cc/resources/tile_manager_unittest.cc |
@@ -166,8 +166,8 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
size_t tile_count = 0; |
std::set<Tile*> all_tiles; |
while (!queue->IsEmpty()) { |
- EXPECT_TRUE(queue->Top()); |
- all_tiles.insert(queue->Top()); |
+ EXPECT_TRUE(queue->Top().tile()); |
+ all_tiles.insert(queue->Top().tile()); |
++tile_count; |
queue->Pop(); |
} |
@@ -181,13 +181,13 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
RasterTilePriorityQueue::Type::ALL); |
bool had_low_res = false; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- EXPECT_TRUE(tile); |
- EXPECT_EQ(TilePriority::NOW, tile->priority().priority_bin); |
- if (tile->priority().resolution == LOW_RESOLUTION) |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ EXPECT_TRUE(prioritized_tile.tile()); |
+ EXPECT_EQ(TilePriority::NOW, prioritized_tile.priority().priority_bin); |
+ if (prioritized_tile.priority().resolution == LOW_RESOLUTION) |
had_low_res = true; |
else |
- smoothness_tiles.insert(tile); |
+ smoothness_tiles.insert(prioritized_tile.tile()); |
queue->Pop(); |
} |
EXPECT_EQ(all_tiles, smoothness_tiles); |
@@ -199,9 +199,9 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); |
std::set<Tile*> required_for_activation_tiles; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- EXPECT_TRUE(tile->required_for_activation()); |
- required_for_activation_tiles.insert(tile); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ EXPECT_TRUE(prioritized_tile.tile()->required_for_activation()); |
+ required_for_activation_tiles.insert(prioritized_tile.tile()); |
queue->Pop(); |
} |
EXPECT_EQ(all_tiles, required_for_activation_tiles); |
@@ -212,9 +212,9 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW); |
std::set<Tile*> required_for_draw_tiles; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- EXPECT_TRUE(tile->required_for_draw()); |
- required_for_draw_tiles.insert(tile); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ EXPECT_TRUE(prioritized_tile.tile()->required_for_draw()); |
+ required_for_draw_tiles.insert(prioritized_tile.tile()); |
queue->Pop(); |
} |
EXPECT_EQ(all_tiles, required_for_draw_tiles); |
@@ -226,9 +226,6 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
pending_layer_->HighResTiling()->Invalidate(invalidation); |
pending_layer_->LowResTiling()->Invalidate(invalidation); |
- active_layer_->ResetAllTilesPriorities(); |
- pending_layer_->ResetAllTilesPriorities(); |
- |
// Renew all of the tile priorities. |
gfx::Rect viewport(50, 50, 100, 100); |
pending_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
@@ -267,7 +264,7 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
for (size_t i = 0; i < active_low_res_tiles.size(); ++i) |
all_tiles.insert(active_low_res_tiles[i]); |
- Tile* last_tile = NULL; |
+ PrioritizedTile last_tile; |
smoothness_tiles.clear(); |
tile_count = 0; |
size_t correct_order_tiles = 0u; |
@@ -277,39 +274,41 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
std::set<Tile*> expected_required_for_draw_tiles; |
std::set<Tile*> expected_required_for_activation_tiles; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- EXPECT_TRUE(tile); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ EXPECT_TRUE(prioritized_tile.tile()); |
- if (!last_tile) |
- last_tile = tile; |
+ if (!last_tile.tile()) |
+ last_tile = prioritized_tile; |
- EXPECT_LE(last_tile->priority().priority_bin, |
- tile->priority().priority_bin); |
+ EXPECT_LE(last_tile.priority().priority_bin, |
+ prioritized_tile.priority().priority_bin); |
bool skip_updating_last_tile = false; |
- if (last_tile->priority().priority_bin == tile->priority().priority_bin) { |
- correct_order_tiles += last_tile->priority().distance_to_visible <= |
- tile->priority().distance_to_visible; |
- } else if (tile->priority().priority_bin == TilePriority::NOW) { |
+ if (last_tile.priority().priority_bin == |
+ prioritized_tile.priority().priority_bin) { |
+ correct_order_tiles += last_tile.priority().distance_to_visible <= |
+ prioritized_tile.priority().distance_to_visible; |
+ } else if (prioritized_tile.priority().priority_bin == TilePriority::NOW) { |
// Since we'd return pending tree now tiles before the eventually tiles on |
// the active tree, update the value. |
++correct_order_tiles; |
skip_updating_last_tile = true; |
} |
- if (tile->priority().priority_bin == TilePriority::NOW && |
- last_tile->priority().resolution != tile->priority().resolution) { |
+ if (prioritized_tile.priority().priority_bin == TilePriority::NOW && |
+ last_tile.priority().resolution != |
+ prioritized_tile.priority().resolution) { |
// Low resolution should come first. |
- EXPECT_EQ(LOW_RESOLUTION, last_tile->priority().resolution); |
+ EXPECT_EQ(LOW_RESOLUTION, last_tile.priority().resolution); |
} |
if (!skip_updating_last_tile) |
- last_tile = tile; |
+ last_tile = prioritized_tile; |
++tile_count; |
- smoothness_tiles.insert(tile); |
- if (tile->required_for_draw()) |
- expected_required_for_draw_tiles.insert(tile); |
- if (tile->required_for_activation()) |
- expected_required_for_activation_tiles.insert(tile); |
+ smoothness_tiles.insert(prioritized_tile.tile()); |
+ if (prioritized_tile.tile()->required_for_draw()) |
+ expected_required_for_draw_tiles.insert(prioritized_tile.tile()); |
+ if (prioritized_tile.tile()->required_for_activation()) |
+ expected_required_for_activation_tiles.insert(prioritized_tile.tile()); |
queue->Pop(); |
} |
@@ -325,9 +324,9 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); |
required_for_activation_tiles.clear(); |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- EXPECT_TRUE(tile->required_for_activation()); |
- required_for_activation_tiles.insert(tile); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ EXPECT_TRUE(prioritized_tile.tile()->required_for_activation()); |
+ required_for_activation_tiles.insert(prioritized_tile.tile()); |
queue->Pop(); |
} |
EXPECT_EQ(expected_required_for_activation_tiles, |
@@ -340,43 +339,46 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW); |
required_for_draw_tiles.clear(); |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- EXPECT_TRUE(tile->required_for_draw()); |
- required_for_draw_tiles.insert(tile); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ EXPECT_TRUE(prioritized_tile.tile()->required_for_draw()); |
+ required_for_draw_tiles.insert(prioritized_tile.tile()); |
queue->Pop(); |
} |
EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles); |
EXPECT_NE(all_tiles, required_for_draw_tiles); |
std::set<Tile*> new_content_tiles; |
- last_tile = NULL; |
+ last_tile = PrioritizedTile(); |
size_t increasing_distance_tiles = 0u; |
// Here we expect to get increasing PENDING_TREE priority_bin. |
queue = host_impl_.BuildRasterQueue(NEW_CONTENT_TAKES_PRIORITY, |
RasterTilePriorityQueue::Type::ALL); |
tile_count = 0; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- EXPECT_TRUE(tile); |
- |
- if (!last_tile) |
- last_tile = tile; |
- |
- EXPECT_LE(last_tile->priority().priority_bin, |
- tile->priority().priority_bin); |
- if (last_tile->priority().priority_bin == tile->priority().priority_bin) { |
- increasing_distance_tiles += last_tile->priority().distance_to_visible <= |
- tile->priority().distance_to_visible; |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ EXPECT_TRUE(prioritized_tile.tile()); |
+ |
+ if (!last_tile.tile()) |
+ last_tile = prioritized_tile; |
+ |
+ EXPECT_LE(last_tile.priority().priority_bin, |
+ prioritized_tile.priority().priority_bin); |
+ if (last_tile.priority().priority_bin == |
+ prioritized_tile.priority().priority_bin) { |
+ increasing_distance_tiles += |
+ last_tile.priority().distance_to_visible <= |
+ prioritized_tile.priority().distance_to_visible; |
} |
- if (tile->priority().priority_bin == TilePriority::NOW && |
- last_tile->priority().resolution != tile->priority().resolution) { |
+ if (prioritized_tile.priority().priority_bin == TilePriority::NOW && |
+ last_tile.priority().resolution != |
+ prioritized_tile.priority().resolution) { |
// High resolution should come first. |
- EXPECT_EQ(HIGH_RESOLUTION, last_tile->priority().resolution); |
+ EXPECT_EQ(HIGH_RESOLUTION, last_tile.priority().resolution); |
} |
- last_tile = tile; |
- new_content_tiles.insert(tile); |
+ last_tile = prioritized_tile; |
+ new_content_tiles.insert(prioritized_tile.tile()); |
++tile_count; |
queue->Pop(); |
} |
@@ -393,9 +395,9 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); |
required_for_activation_tiles.clear(); |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- EXPECT_TRUE(tile->required_for_activation()); |
- required_for_activation_tiles.insert(tile); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ EXPECT_TRUE(prioritized_tile.tile()->required_for_activation()); |
+ required_for_activation_tiles.insert(prioritized_tile.tile()); |
queue->Pop(); |
} |
EXPECT_EQ(expected_required_for_activation_tiles, |
@@ -408,9 +410,9 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW); |
required_for_draw_tiles.clear(); |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- EXPECT_TRUE(tile->required_for_draw()); |
- required_for_draw_tiles.insert(tile); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ EXPECT_TRUE(prioritized_tile.tile()->required_for_draw()); |
+ required_for_draw_tiles.insert(prioritized_tile.tile()); |
queue->Pop(); |
} |
EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles); |
@@ -457,7 +459,7 @@ TEST_F(TileManagerTilePriorityQueueTest, |
// Non ideal tilings with a high res pending twin have to be processed |
// because of possible activation tiles. |
if (tiling->contents_scale() == 1.f) { |
- tiling->UpdateAllTilePrioritiesForTesting(); |
+ tiling->UpdateAndGetAllPrioritizedTilesForTesting(); |
const auto& all_tiles = tiling->AllTilesForTesting(); |
for (auto* tile : all_tiles) |
EXPECT_TRUE(tile->required_for_activation()); |
@@ -473,8 +475,8 @@ TEST_F(TileManagerTilePriorityQueueTest, |
size_t tile_count = 0; |
std::set<Tile*> all_actual_tiles; |
while (!queue->IsEmpty()) { |
- EXPECT_TRUE(queue->Top()); |
- all_actual_tiles.insert(queue->Top()); |
+ EXPECT_TRUE(queue->Top().tile()); |
+ all_actual_tiles.insert(queue->Top().tile()); |
++tile_count; |
queue->Pop(); |
} |
@@ -559,11 +561,11 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueInvalidation) { |
std::set<Tile*> actual_now_tiles; |
std::set<Tile*> actual_all_tiles; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
queue->Pop(); |
- if (tile->priority().priority_bin == TilePriority::NOW) |
- actual_now_tiles.insert(tile); |
- actual_all_tiles.insert(tile); |
+ if (prioritized_tile.priority().priority_bin == TilePriority::NOW) |
+ actual_now_tiles.insert(prioritized_tile.tile()); |
+ actual_all_tiles.insert(prioritized_tile.tile()); |
} |
EXPECT_EQ(expected_now_tiles, actual_now_tiles); |
EXPECT_EQ(expected_all_tiles, actual_all_tiles); |
@@ -573,9 +575,9 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueInvalidation) { |
RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW); |
std::set<Tile*> actual_required_for_draw_tiles; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
queue->Pop(); |
- actual_required_for_draw_tiles.insert(tile); |
+ actual_required_for_draw_tiles.insert(prioritized_tile.tile()); |
} |
EXPECT_EQ(expected_required_for_draw_tiles, actual_required_for_draw_tiles); |
@@ -584,7 +586,7 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueInvalidation) { |
RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); |
std::set<Tile*> actual_required_for_activation_tiles; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
+ Tile* tile = queue->Top().tile(); |
queue->Pop(); |
actual_required_for_activation_tiles.insert(tile); |
} |
@@ -629,11 +631,11 @@ TEST_F(TileManagerTilePriorityQueueTest, ActivationComesBeforeEventually) { |
// draw. |
std::vector<Tile*> all_tiles; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- if (tile->priority().priority_bin >= TilePriority::EVENTUALLY) |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ if (prioritized_tile.priority().priority_bin >= TilePriority::EVENTUALLY) |
break; |
- all_tiles.push_back(tile); |
+ all_tiles.push_back(prioritized_tile.tile()); |
queue->Pop(); |
} |
@@ -659,8 +661,8 @@ TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
while (!raster_queue->IsEmpty()) { |
++tile_count; |
- EXPECT_TRUE(raster_queue->Top()); |
- all_tiles.insert(raster_queue->Top()); |
+ EXPECT_TRUE(raster_queue->Top().tile()); |
+ all_tiles.insert(raster_queue->Top().tile()); |
raster_queue->Pop(); |
} |
@@ -677,11 +679,11 @@ TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
// Sanity check, all tiles should be visible. |
std::set<Tile*> smoothness_tiles; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- EXPECT_TRUE(tile); |
- EXPECT_EQ(TilePriority::NOW, tile->priority().priority_bin); |
- EXPECT_TRUE(tile->HasResource()); |
- smoothness_tiles.insert(tile); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ EXPECT_TRUE(prioritized_tile.tile()); |
+ EXPECT_EQ(TilePriority::NOW, prioritized_tile.priority().priority_bin); |
+ EXPECT_TRUE(prioritized_tile.tile()->HasResource()); |
+ smoothness_tiles.insert(prioritized_tile.tile()); |
queue->Pop(); |
} |
EXPECT_EQ(all_tiles, smoothness_tiles); |
@@ -698,9 +700,6 @@ TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
pending_layer_->LowResTiling()->Invalidate(invalidation); |
pending_layer_->LowResTiling()->CreateMissingTilesInLiveTilesRect(); |
- active_layer_->ResetAllTilesPriorities(); |
- pending_layer_->ResetAllTilesPriorities(); |
- |
// Renew all of the tile priorities. |
gfx::Rect viewport(50, 50, 100, 100); |
pending_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
@@ -737,7 +736,7 @@ TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
tile_manager()->InitializeTilesWithResourcesForTesting( |
std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
- Tile* last_tile = NULL; |
+ PrioritizedTile last_tile; |
smoothness_tiles.clear(); |
tile_count = 0; |
// Here we expect to get increasing combined priority_bin. |
@@ -745,21 +744,22 @@ TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
int distance_increasing = 0; |
int distance_decreasing = 0; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ Tile* tile = prioritized_tile.tile(); |
EXPECT_TRUE(tile); |
EXPECT_TRUE(tile->HasResource()); |
- if (!last_tile) |
- last_tile = tile; |
+ if (!last_tile.tile()) |
+ last_tile = prioritized_tile; |
- const TilePriority& last_priority = last_tile->priority(); |
- const TilePriority& priority = tile->priority(); |
+ const TilePriority& last_priority = last_tile.priority(); |
+ const TilePriority& priority = prioritized_tile.priority(); |
EXPECT_GE(last_priority.priority_bin, priority.priority_bin); |
if (last_priority.priority_bin == priority.priority_bin) { |
- EXPECT_LE(last_tile->required_for_activation(), |
+ EXPECT_LE(last_tile.tile()->required_for_activation(), |
tile->required_for_activation()); |
- if (last_tile->required_for_activation() == |
+ if (last_tile.tile()->required_for_activation() == |
tile->required_for_activation()) { |
if (last_priority.distance_to_visible >= priority.distance_to_visible) |
++distance_decreasing; |
@@ -768,7 +768,7 @@ TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
} |
} |
- last_tile = tile; |
+ last_tile = prioritized_tile; |
++tile_count; |
smoothness_tiles.insert(tile); |
queue->Pop(); |
@@ -781,26 +781,27 @@ TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
EXPECT_EQ(all_tiles, smoothness_tiles); |
std::set<Tile*> new_content_tiles; |
- last_tile = NULL; |
+ last_tile = PrioritizedTile(); |
// Again, we expect to get increasing combined priority_bin. |
queue = host_impl_.BuildEvictionQueue(NEW_CONTENT_TAKES_PRIORITY); |
distance_decreasing = 0; |
distance_increasing = 0; |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ Tile* tile = prioritized_tile.tile(); |
EXPECT_TRUE(tile); |
- if (!last_tile) |
- last_tile = tile; |
+ if (!last_tile.tile()) |
+ last_tile = prioritized_tile; |
- const TilePriority& last_priority = last_tile->priority(); |
- const TilePriority& priority = tile->priority(); |
+ const TilePriority& last_priority = last_tile.priority(); |
+ const TilePriority& priority = prioritized_tile.priority(); |
EXPECT_GE(last_priority.priority_bin, priority.priority_bin); |
if (last_priority.priority_bin == priority.priority_bin) { |
- EXPECT_LE(last_tile->required_for_activation(), |
+ EXPECT_LE(last_tile.tile()->required_for_activation(), |
tile->required_for_activation()); |
- if (last_tile->required_for_activation() == |
+ if (last_tile.tile()->required_for_activation() == |
tile->required_for_activation()) { |
if (last_priority.distance_to_visible >= priority.distance_to_visible) |
++distance_decreasing; |
@@ -809,7 +810,7 @@ TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
} |
} |
- last_tile = tile; |
+ last_tile = prioritized_tile; |
new_content_tiles.insert(tile); |
queue->Pop(); |
} |
@@ -864,15 +865,13 @@ TEST_F(TileManagerTilePriorityQueueTest, |
SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
while (!raster_queue->IsEmpty()) { |
++tile_count; |
- EXPECT_TRUE(raster_queue->Top()); |
- all_tiles.insert(raster_queue->Top()); |
+ EXPECT_TRUE(raster_queue->Top().tile()); |
+ all_tiles.insert(raster_queue->Top().tile()); |
raster_queue->Pop(); |
} |
EXPECT_EQ(tile_count, all_tiles.size()); |
EXPECT_EQ(32u, tile_count); |
- pending_layer_->ResetAllTilesPriorities(); |
- |
// Renew all of the tile priorities. |
gfx::Rect viewport(layer_bounds); |
pending_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
@@ -925,15 +924,15 @@ TEST_F(TileManagerTilePriorityQueueTest, |
// Verify occlusion is considered by EvictionTilePriorityQueue. |
TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; |
size_t occluded_count = 0u; |
- Tile* last_tile = NULL; |
+ PrioritizedTile last_tile; |
scoped_ptr<EvictionTilePriorityQueue> queue( |
host_impl_.BuildEvictionQueue(tree_priority)); |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- if (!last_tile) |
- last_tile = tile; |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ if (!last_tile.tile()) |
+ last_tile = prioritized_tile; |
- bool tile_is_occluded = tile->is_occluded(); |
+ bool tile_is_occluded = prioritized_tile.is_occluded(); |
// The only way we will encounter an occluded tile after an unoccluded |
// tile is if the priorty bin decreased, the tile is required for |
@@ -941,19 +940,20 @@ TEST_F(TileManagerTilePriorityQueueTest, |
if (tile_is_occluded) { |
occluded_count++; |
- bool last_tile_is_occluded = last_tile->is_occluded(); |
+ bool last_tile_is_occluded = last_tile.is_occluded(); |
if (!last_tile_is_occluded) { |
TilePriority::PriorityBin tile_priority_bin = |
- tile->priority().priority_bin; |
+ prioritized_tile.priority().priority_bin; |
TilePriority::PriorityBin last_tile_priority_bin = |
- last_tile->priority().priority_bin; |
+ last_tile.priority().priority_bin; |
EXPECT_TRUE((tile_priority_bin < last_tile_priority_bin) || |
- tile->required_for_activation() || |
- (tile->contents_scale() != last_tile->contents_scale())); |
+ prioritized_tile.tile()->required_for_activation() || |
+ (prioritized_tile.tile()->contents_scale() != |
+ last_tile.tile()->contents_scale())); |
} |
} |
- last_tile = tile; |
+ last_tile = prioritized_tile; |
queue->Pop(); |
} |
size_t expected_occluded_count = |
@@ -1055,8 +1055,9 @@ TEST_F(TileManagerTilePriorityQueueTest, |
scoped_ptr<EvictionTilePriorityQueue> queue( |
host_impl_.BuildEvictionQueue(tree_priority)); |
while (!queue->IsEmpty()) { |
- Tile* tile = queue->Top(); |
- const TilePriority& pending_priority = tile->priority(); |
+ PrioritizedTile prioritized_tile = queue->Top(); |
+ Tile* tile = prioritized_tile.tile(); |
+ const TilePriority& pending_priority = prioritized_tile.priority(); |
EXPECT_NE(std::numeric_limits<float>::infinity(), |
pending_priority.distance_to_visible); |
if (all_pending_child_tiles.find(tile) != all_pending_child_tiles.end()) |
@@ -1083,8 +1084,8 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { |
size_t tile_count = 0; |
std::set<Tile*> all_tiles; |
while (!queue->IsEmpty()) { |
- EXPECT_TRUE(queue->Top()); |
- all_tiles.insert(queue->Top()); |
+ EXPECT_TRUE(queue->Top().tile()); |
+ all_tiles.insert(queue->Top().tile()); |
++tile_count; |
queue->Pop(); |
} |
@@ -1107,8 +1108,8 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { |
tile_count = 0; |
all_tiles.clear(); |
while (!queue->IsEmpty()) { |
- EXPECT_TRUE(queue->Top()); |
- all_tiles.insert(queue->Top()); |
+ EXPECT_TRUE(queue->Top().tile()); |
+ all_tiles.insert(queue->Top().tile()); |
++tile_count; |
queue->Pop(); |
} |
@@ -1128,8 +1129,8 @@ TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) { |
size_t tile_count = 0; |
std::set<Tile*> all_tiles; |
while (!raster_queue->IsEmpty()) { |
- EXPECT_TRUE(raster_queue->Top()); |
- all_tiles.insert(raster_queue->Top()); |
+ EXPECT_TRUE(raster_queue->Top().tile()); |
+ all_tiles.insert(raster_queue->Top().tile()); |
++tile_count; |
raster_queue->Pop(); |
} |
@@ -1154,8 +1155,8 @@ TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) { |
tile_count = 0; |
all_tiles.clear(); |
while (!queue->IsEmpty()) { |
- EXPECT_TRUE(queue->Top()); |
- all_tiles.insert(queue->Top()); |
+ EXPECT_TRUE(queue->Top().tile()); |
+ all_tiles.insert(queue->Top().tile()); |
++tile_count; |
queue->Pop(); |
} |
@@ -1216,25 +1217,25 @@ TEST_F(TileManagerTilePriorityQueueTest, |
EXPECT_FALSE(queue->IsEmpty()); |
std::set<Tile*> unique_tiles; |
- unique_tiles.insert(queue->Top()); |
- Tile* last_tile = queue->Top(); |
- have_tiles[last_tile->priority().priority_bin] = true; |
+ unique_tiles.insert(queue->Top().tile()); |
+ PrioritizedTile last_tile = queue->Top(); |
+ have_tiles[last_tile.priority().priority_bin] = true; |
// On the second iteration, mark everything as ready to draw (solid color). |
if (i == 1) { |
- TileDrawInfo& draw_info = last_tile->draw_info(); |
+ TileDrawInfo& draw_info = last_tile.tile()->draw_info(); |
draw_info.SetSolidColorForTesting(SK_ColorRED); |
} |
queue->Pop(); |
int eventually_bin_order_correct_count = 0; |
int eventually_bin_order_incorrect_count = 0; |
while (!queue->IsEmpty()) { |
- Tile* new_tile = queue->Top(); |
+ PrioritizedTile new_tile = queue->Top(); |
queue->Pop(); |
- unique_tiles.insert(new_tile); |
+ unique_tiles.insert(new_tile.tile()); |
- TilePriority last_priority = last_tile->priority(); |
- TilePriority new_priority = new_tile->priority(); |
+ TilePriority last_priority = last_tile.priority(); |
+ TilePriority new_priority = new_tile.priority(); |
EXPECT_LE(last_priority.priority_bin, new_priority.priority_bin); |
if (last_priority.priority_bin == new_priority.priority_bin) { |
if (last_priority.priority_bin == TilePriority::EVENTUALLY) { |
@@ -1242,8 +1243,8 @@ TEST_F(TileManagerTilePriorityQueueTest, |
new_priority.distance_to_visible; |
eventually_bin_order_correct_count += order_correct; |
eventually_bin_order_incorrect_count += !order_correct; |
- } else if (!soon_rect.Intersects(new_tile->content_rect()) && |
- !soon_rect.Intersects(last_tile->content_rect())) { |
+ } else if (!soon_rect.Intersects(new_tile.tile()->content_rect()) && |
+ !soon_rect.Intersects(last_tile.tile()->content_rect())) { |
EXPECT_LE(last_priority.distance_to_visible, |
new_priority.distance_to_visible); |
EXPECT_EQ(TilePriority::NOW, new_priority.priority_bin); |
@@ -1258,7 +1259,7 @@ TEST_F(TileManagerTilePriorityQueueTest, |
// On the second iteration, mark everything as ready to draw (solid |
// color). |
if (i == 1) { |
- TileDrawInfo& draw_info = last_tile->draw_info(); |
+ TileDrawInfo& draw_info = last_tile.tile()->draw_info(); |
draw_info.SetSolidColorForTesting(SK_ColorRED); |
} |
} |
@@ -1309,19 +1310,19 @@ TEST_F(TileManagerTilePriorityQueueTest, |
// There are 3 bins in TilePriority. |
bool have_tiles[3] = {}; |
- Tile* last_tile = NULL; |
+ PrioritizedTile last_tile; |
int eventually_bin_order_correct_count = 0; |
int eventually_bin_order_incorrect_count = 0; |
scoped_ptr<TilingSetRasterQueueAll> queue( |
new TilingSetRasterQueueAll(tiling_set.get(), false)); |
for (; !queue->IsEmpty(); queue->Pop()) { |
- if (!last_tile) |
+ if (!last_tile.tile()) |
last_tile = queue->Top(); |
- Tile* new_tile = queue->Top(); |
+ const PrioritizedTile& new_tile = queue->Top(); |
- TilePriority last_priority = last_tile->priority(); |
- TilePriority new_priority = new_tile->priority(); |
+ TilePriority last_priority = last_tile.priority(); |
+ TilePriority new_priority = new_tile.priority(); |
have_tiles[new_priority.priority_bin] = true; |
@@ -1332,8 +1333,8 @@ TEST_F(TileManagerTilePriorityQueueTest, |
new_priority.distance_to_visible; |
eventually_bin_order_correct_count += order_correct; |
eventually_bin_order_incorrect_count += !order_correct; |
- } else if (!soon_rect.Intersects(new_tile->content_rect()) && |
- !soon_rect.Intersects(last_tile->content_rect())) { |
+ } else if (!soon_rect.Intersects(new_tile.tile()->content_rect()) && |
+ !soon_rect.Intersects(last_tile.tile()->content_rect())) { |
EXPECT_LE(last_priority.distance_to_visible, |
new_priority.distance_to_visible); |
} else if (new_priority.distance_to_visible > 0.f) { |
@@ -1360,7 +1361,7 @@ TEST_F(TileManagerTilePriorityQueueTest, SetIsLikelyToRequireADraw) { |
scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( |
SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
EXPECT_FALSE(queue->IsEmpty()); |
- EXPECT_TRUE(queue->Top()->required_for_draw()); |
+ EXPECT_TRUE(queue->Top().tile()->required_for_draw()); |
EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw()); |
host_impl_.tile_manager()->PrepareTiles(host_impl_.global_tile_state()); |
@@ -1377,7 +1378,7 @@ TEST_F(TileManagerTilePriorityQueueTest, |
scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( |
SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
EXPECT_FALSE(queue->IsEmpty()); |
- EXPECT_TRUE(queue->Top()->required_for_draw()); |
+ EXPECT_TRUE(queue->Top().tile()->required_for_draw()); |
ManagedMemoryPolicy policy = host_impl_.ActualManagedMemoryPolicy(); |
policy.bytes_limit_when_visible = 0; |
@@ -1398,8 +1399,8 @@ TEST_F(TileManagerTilePriorityQueueTest, |
scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( |
SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
EXPECT_FALSE(queue->IsEmpty()); |
- EXPECT_TRUE(queue->Top()->required_for_draw()); |
- EXPECT_EQ(gfx::Size(256, 256), queue->Top()->desired_texture_size()); |
+ EXPECT_TRUE(queue->Top().tile()->required_for_draw()); |
+ EXPECT_EQ(gfx::Size(256, 256), queue->Top().tile()->desired_texture_size()); |
EXPECT_EQ(RGBA_8888, host_impl_.resource_provider()->best_texture_format()); |
ManagedMemoryPolicy policy = host_impl_.ActualManagedMemoryPolicy(); |