// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_RESOURCES_EVICTION_TILE_PRIORITY_QUEUE_H_ #define CC_RESOURCES_EVICTION_TILE_PRIORITY_QUEUE_H_ #include #include #include #include "cc/base/cc_export.h" #include "cc/layers/picture_layer_impl.h" #include "cc/resources/tile_priority.h" #include "cc/resources/tiling_set_eviction_queue.h" namespace cc { class CC_EXPORT EvictionTilePriorityQueue { public: EvictionTilePriorityQueue(); ~EvictionTilePriorityQueue(); void Build(const std::vector& active_layers, const std::vector& pending_layers, TreePriority tree_priority); bool IsEmpty() const; Tile* Top(); void Pop(); private: ScopedPtrVector& GetNextQueues(); ScopedPtrVector active_queues_; ScopedPtrVector pending_queues_; TreePriority tree_priority_; DISALLOW_COPY_AND_ASSIGN(EvictionTilePriorityQueue); }; } // namespace cc #endif // CC_RESOURCES_EVICTION_TILE_PRIORITY_QUEUE_H_