Index: cc/resources/raster_tile_priority_queue_required.cc |
diff --git a/cc/resources/raster_tile_priority_queue_required.cc b/cc/resources/raster_tile_priority_queue_required.cc |
index 3bf00ed33789aff3231aee88fe46898a24b498f9..a6605fd3c53d71cce07ec2aec63a79157a5a4efb 100644 |
--- a/cc/resources/raster_tile_priority_queue_required.cc |
+++ b/cc/resources/raster_tile_priority_queue_required.cc |
@@ -18,24 +18,48 @@ void RasterTilePriorityQueueRequired::Build( |
const std::vector<PictureLayerImpl::Pair>& paired_layers, |
Type type) { |
DCHECK_NE(static_cast<int>(type), static_cast<int>(Type::ALL)); |
- for (const auto& pair : paired_layers) { |
- PictureLayerTilingSet* tiling_set = nullptr; |
- if (type == Type::REQUIRED_FOR_DRAW && pair.active) |
- tiling_set = pair.active->picture_layer_tiling_set(); |
- else if (type == Type::REQUIRED_FOR_ACTIVATION && pair.pending) |
- tiling_set = pair.pending->picture_layer_tiling_set(); |
+ if (type == Type::REQUIRED_FOR_DRAW) |
+ BuildRequiredForDraw(paired_layers); |
+ else |
+ BuildRequiredForActivation(paired_layers); |
+} |
- if (!tiling_set) |
+void RasterTilePriorityQueueRequired::BuildRequiredForDraw( |
+ const std::vector<PictureLayerImpl::Pair>& paired_layers) { |
+ for (const auto& pair : paired_layers) { |
+ if (!pair.active) |
continue; |
- |
scoped_ptr<TilingSetRasterQueueRequired> tiling_set_queue( |
- new TilingSetRasterQueueRequired(tiling_set, type)); |
+ new TilingSetRasterQueueRequired( |
+ pair.active->picture_layer_tiling_set(), Type::REQUIRED_FOR_DRAW)); |
if (tiling_set_queue->IsEmpty()) |
continue; |
tiling_set_queues_.push_back(tiling_set_queue.Pass()); |
} |
} |
+void RasterTilePriorityQueueRequired::BuildRequiredForActivation( |
+ const std::vector<PictureLayerImpl::Pair>& paired_layers) { |
+ for (const auto& pair : paired_layers) { |
+ if (pair.active) { |
+ scoped_ptr<TilingSetRasterQueueRequired> tiling_set_queue( |
+ new TilingSetRasterQueueRequired( |
+ pair.active->picture_layer_tiling_set(), |
+ Type::REQUIRED_FOR_ACTIVATION)); |
+ if (!tiling_set_queue->IsEmpty()) |
+ tiling_set_queues_.push_back(tiling_set_queue.Pass()); |
+ } |
+ if (pair.pending) { |
+ scoped_ptr<TilingSetRasterQueueRequired> tiling_set_queue( |
+ new TilingSetRasterQueueRequired( |
+ pair.pending->picture_layer_tiling_set(), |
+ Type::REQUIRED_FOR_ACTIVATION)); |
+ if (!tiling_set_queue->IsEmpty()) |
+ tiling_set_queues_.push_back(tiling_set_queue.Pass()); |
+ } |
+ } |
+} |
+ |
bool RasterTilePriorityQueueRequired::IsEmpty() const { |
return tiling_set_queues_.empty(); |
} |