Index: cc/resources/tile_manager.cc |
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc |
index 71f2e83017547d2aa9131b37c619bf8bee749041..b86b1a0d66396ba3bbe85aa5daec8761d971723e 100644 |
--- a/cc/resources/tile_manager.cc |
+++ b/cc/resources/tile_manager.cc |
@@ -426,6 +426,11 @@ void TileManager::SynchronouslyRasterizeTiles( |
std::numeric_limits<size_t>::max(), |
&tiles_that_need_to_be_rasterized); |
+ // Since we are synchronously rasterizing all tiles, we don't require further |
+ // draws for that. Set the flag to false so that we can clear it if it was set |
+ // earlier by PrepareTiles. |
+ client_->SetIsLikelyToRequireADraw(false); |
vmpstr
2015/03/27 17:23:28
Just FYI, this function is kind of slated for remo
sunnyps
2015/03/27 18:38:04
Yeah, would be nice to keep the test while it's al
|
+ |
// We must reduce the amount of unused resources before calling |
// RunTasks to prevent usage from rising above limits. |
resource_pool_->ReduceResourceUsage(); |
@@ -876,6 +881,10 @@ void TileManager::SetTileTaskRunnerForTesting( |
tile_task_runner_->SetClient(this); |
} |
+void TileManager::CheckIfMoreTilesNeedToBePreparedForTesting() { |
+ CheckIfMoreTilesNeedToBePrepared(); |
vmpstr
2015/03/27 17:23:28
Feel free to inline this. (We don't typically impl
sunnyps
2015/03/27 18:38:04
Done.
|
+} |
+ |
bool TileManager::AreRequiredTilesReadyToDraw( |
RasterTilePriorityQueue::Type type) const { |
scoped_ptr<RasterTilePriorityQueue> raster_priority_queue( |
@@ -961,6 +970,12 @@ void TileManager::CheckIfMoreTilesNeedToBePrepared() { |
scheduled_raster_task_limit_, |
&tiles_that_need_to_be_rasterized); |
+ // Inform the client that will likely require a draw if the highest priority |
+ // tile that will be rasterized is required for draw. |
+ client_->SetIsLikelyToRequireADraw( |
+ !tiles_that_need_to_be_rasterized.empty() && |
+ (*tiles_that_need_to_be_rasterized.begin())->required_for_draw()); |
+ |
// |tiles_that_need_to_be_rasterized| will be empty when we reach a |
// steady memory state. Keep scheduling tasks until we reach this state. |
if (!tiles_that_need_to_be_rasterized.empty()) { |