| 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();
|
| }
|
|
|