Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3648)

Unified Diff: cc/resources/eviction_tile_priority_queue.cc

Issue 900073003: cc: Rework how picture layer tiling set gets into raster queues. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/resources/eviction_tile_priority_queue.h ('k') | cc/resources/picture_layer_tiling.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/eviction_tile_priority_queue.cc
diff --git a/cc/resources/eviction_tile_priority_queue.cc b/cc/resources/eviction_tile_priority_queue.cc
index b1ca48de5b46251930a1814881cde8dc2519ca29..6dd061b5219048c261242070053c903c385ae672 100644
--- a/cc/resources/eviction_tile_priority_queue.cc
+++ b/cc/resources/eviction_tile_priority_queue.cc
@@ -4,6 +4,8 @@
#include "cc/resources/eviction_tile_priority_queue.h"
+#include "base/containers/hash_tables.h"
+
namespace cc {
namespace {
@@ -78,6 +80,18 @@ class EvictionOrderComparator {
} // namespace
+// static
+scoped_ptr<EvictionTilePriorityQueue> EvictionTilePriorityQueue::Create(
+ const base::hash_map<int, PictureLayerTilingSet::Pair>&
+ paired_picture_layer_tiling_sets,
+ bool has_pending_tree,
+ TreePriority tree_priority) {
+ scoped_ptr<EvictionTilePriorityQueue> queue(new EvictionTilePriorityQueue);
+ queue->Build(paired_picture_layer_tiling_sets, has_pending_tree,
+ tree_priority);
+ return queue;
+}
+
EvictionTilePriorityQueue::EvictionTilePriorityQueue() {
}
@@ -85,16 +99,19 @@ EvictionTilePriorityQueue::~EvictionTilePriorityQueue() {
}
void EvictionTilePriorityQueue::Build(
- const std::vector<PictureLayerImpl::Pair>& paired_layers,
+ const base::hash_map<int, PictureLayerTilingSet::Pair>&
+ paired_picture_layer_tiling_sets,
+ bool has_pending_tree,
TreePriority tree_priority) {
tree_priority_ = tree_priority;
- for (std::vector<PictureLayerImpl::Pair>::const_iterator it =
- paired_layers.begin();
- it != paired_layers.end();
- ++it) {
- paired_queues_.push_back(
- make_scoped_ptr(new PairedTilingSetQueue(*it, tree_priority_)));
+ for (const auto& paired_tiling_set_pair : paired_picture_layer_tiling_sets) {
+ const auto& paired_tiling_set = paired_tiling_set_pair.second;
+ PictureLayerTilingSet* active = paired_tiling_set.active;
+ PictureLayerTilingSet* pending =
+ has_pending_tree ? paired_tiling_set.pending : nullptr;
+ paired_queues_.push_back(make_scoped_ptr(
+ new PairedTilingSetQueue(active, pending, tree_priority_)));
}
paired_queues_.make_heap(EvictionOrderComparator(tree_priority_));
@@ -122,18 +139,17 @@ EvictionTilePriorityQueue::PairedTilingSetQueue::PairedTilingSetQueue() {
}
EvictionTilePriorityQueue::PairedTilingSetQueue::PairedTilingSetQueue(
- const PictureLayerImpl::Pair& layer_pair,
+ PictureLayerTilingSet* active_set,
+ PictureLayerTilingSet* pending_set,
TreePriority tree_priority) {
- bool skip_shared_out_of_order_tiles = layer_pair.active && layer_pair.pending;
- if (layer_pair.active) {
+ bool skip_shared_out_of_order_tiles = active_set && pending_set;
+ if (active_set) {
active_queue = make_scoped_ptr(new TilingSetEvictionQueue(
- layer_pair.active->picture_layer_tiling_set(), tree_priority,
- skip_shared_out_of_order_tiles));
+ active_set, tree_priority, skip_shared_out_of_order_tiles));
}
- if (layer_pair.pending) {
+ if (pending_set) {
pending_queue = make_scoped_ptr(new TilingSetEvictionQueue(
- layer_pair.pending->picture_layer_tiling_set(), tree_priority,
- skip_shared_out_of_order_tiles));
+ pending_set, tree_priority, skip_shared_out_of_order_tiles));
}
}
« no previous file with comments | « cc/resources/eviction_tile_priority_queue.h ('k') | cc/resources/picture_layer_tiling.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698