Index: cc/resources/raster_tile_priority_queue.h |
diff --git a/cc/resources/raster_tile_priority_queue.h b/cc/resources/raster_tile_priority_queue.h |
index 65c924798a8338de2e6002254a2c481f8fc742ca..5ee99f1cc44b406e1989270444db575259316a12 100644 |
--- a/cc/resources/raster_tile_priority_queue.h |
+++ b/cc/resources/raster_tile_priority_queue.h |
@@ -5,77 +5,35 @@ |
#ifndef CC_RESOURCES_RASTER_TILE_PRIORITY_QUEUE_H_ |
#define CC_RESOURCES_RASTER_TILE_PRIORITY_QUEUE_H_ |
-#include <set> |
-#include <utility> |
#include <vector> |
#include "cc/base/cc_export.h" |
#include "cc/layers/picture_layer_impl.h" |
#include "cc/resources/tile_priority.h" |
-#include "cc/resources/tiling_set_raster_queue.h" |
namespace cc { |
+class Tile; |
-// TODO(vmpstr): Consider virtualizing this and adding ::Create with the |
-// parameters of ::Build that would create a simpler queue for required only |
-// tiles (ie, there's no need for the heap if all we're interested in are the |
-// required tiles. |
class CC_EXPORT RasterTilePriorityQueue { |
public: |
enum class Type { ALL, REQUIRED_FOR_ACTIVATION, REQUIRED_FOR_DRAW }; |
- class PairedTilingSetQueue { |
- public: |
- PairedTilingSetQueue(); |
- PairedTilingSetQueue(const PictureLayerImpl::Pair& layer_pair, |
- TreePriority tree_priority, |
- Type type); |
- ~PairedTilingSetQueue(); |
+ // TODO(vmpstr): Make this work with PictureLayerTilingSet pairs instead. |
+ static scoped_ptr<RasterTilePriorityQueue> Create( |
+ const std::vector<PictureLayerImpl::Pair>& paired_layers, |
+ TreePriority tree_priority, |
+ Type type); |
- bool IsEmpty() const; |
- Tile* Top(TreePriority tree_priority); |
- void Pop(TreePriority tree_priority); |
+ virtual ~RasterTilePriorityQueue() {} |
- WhichTree NextTileIteratorTree(TreePriority tree_priority) const; |
- void SkipTilesReturnedByTwin(TreePriority tree_priority); |
+ virtual bool IsEmpty() const = 0; |
+ virtual Tile* Top() = 0; |
+ virtual void Pop() = 0; |
- scoped_refptr<base::debug::ConvertableToTraceFormat> StateAsValue() const; |
- |
- const TilingSetRasterQueue* active_queue() const { |
- return active_queue_.get(); |
- } |
- const TilingSetRasterQueue* pending_queue() const { |
- return pending_queue_.get(); |
- } |
- |
- private: |
- scoped_ptr<TilingSetRasterQueue> active_queue_; |
- scoped_ptr<TilingSetRasterQueue> pending_queue_; |
- bool has_both_layers_; |
- |
- // Set of returned tiles (excluding the current one) for DCHECKing. |
- std::set<const Tile*> returned_tiles_for_debug_; |
- }; |
- |
- RasterTilePriorityQueue(); |
- ~RasterTilePriorityQueue(); |
- |
- void Build(const std::vector<PictureLayerImpl::Pair>& paired_layers, |
- TreePriority tree_priority, |
- Type type); |
- void Reset(); |
- |
- bool IsEmpty() const; |
- Tile* Top(); |
- void Pop(); |
+ protected: |
+ RasterTilePriorityQueue() {} |
private: |
- // TODO(vmpstr): This is potentially unnecessary if it becomes the case that |
- // PairedTilingSetQueue is fast enough to copy. In that case, we can use |
- // objects directly (ie std::vector<PairedTilingSetQueue>. |
- ScopedPtrVector<PairedTilingSetQueue> paired_queues_; |
- TreePriority tree_priority_; |
- |
DISALLOW_COPY_AND_ASSIGN(RasterTilePriorityQueue); |
}; |