| 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..e5bb3e7b5f60d6ca90fdc4678d11a2e174c24b38 100644
|
| --- a/cc/resources/raster_tile_priority_queue_required.cc
|
| +++ b/cc/resources/raster_tile_priority_queue_required.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "cc/resources/raster_tile_priority_queue_required.h"
|
|
|
| +#include "base/containers/hash_tables.h"
|
| #include "cc/resources/tiling_set_raster_queue_required.h"
|
|
|
| namespace cc {
|
| @@ -15,15 +16,30 @@ RasterTilePriorityQueueRequired::~RasterTilePriorityQueueRequired() {
|
| }
|
|
|
| void RasterTilePriorityQueueRequired::Build(
|
| - const std::vector<PictureLayerImpl::Pair>& paired_layers,
|
| + const base::hash_map<int, PictureLayerTilingSet::Pair>&
|
| + paired_picture_layer_tiling_sets,
|
| + bool has_pending_tree,
|
| Type type) {
|
| - DCHECK_NE(static_cast<int>(type), static_cast<int>(Type::ALL));
|
| - for (const auto& pair : paired_layers) {
|
| + for (const auto& paired_tiling_set_pair : paired_picture_layer_tiling_sets) {
|
| + const auto& paired_tiling_set = paired_tiling_set_pair.second;
|
| 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();
|
| + switch (type) {
|
| + case Type::REQUIRED_FOR_DRAW: {
|
| + PictureLayerTilingSet* active = paired_tiling_set.active;
|
| + if (active && active->HasValidTilePriorities())
|
| + tiling_set = active;
|
| + break;
|
| + }
|
| + case Type::REQUIRED_FOR_ACTIVATION: {
|
| + PictureLayerTilingSet* pending = paired_tiling_set.pending;
|
| + if (has_pending_tree && pending && pending->HasValidTilePriorities())
|
| + tiling_set = pending;
|
| + break;
|
| + }
|
| + case Type::ALL:
|
| + NOTREACHED();
|
| + break;
|
| + }
|
|
|
| if (!tiling_set)
|
| continue;
|
|
|