Index: cc/resources/tiling_set_raster_queue_all.h |
diff --git a/cc/resources/tiling_set_raster_queue_all.h b/cc/resources/tiling_set_raster_queue_all.h |
deleted file mode 100644 |
index 8c8b01224e5628aede31ef6af3a179796a95e844..0000000000000000000000000000000000000000 |
--- a/cc/resources/tiling_set_raster_queue_all.h |
+++ /dev/null |
@@ -1,199 +0,0 @@ |
-// 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_TILING_SET_RASTER_QUEUE_ALL_H_ |
-#define CC_RESOURCES_TILING_SET_RASTER_QUEUE_ALL_H_ |
- |
-#include "base/containers/stack_container.h" |
-#include "cc/base/cc_export.h" |
-#include "cc/resources/picture_layer_tiling_set.h" |
-#include "cc/resources/prioritized_tile.h" |
-#include "cc/resources/tile.h" |
-#include "cc/resources/tile_priority.h" |
- |
-namespace cc { |
- |
-// This queue returns all tiles required to be rasterized from HIGH_RESOLUTION |
-// and LOW_RESOLUTION tilings. |
-class CC_EXPORT TilingSetRasterQueueAll { |
- public: |
- TilingSetRasterQueueAll(PictureLayerTilingSet* tiling_set, |
- bool prioritize_low_res); |
- ~TilingSetRasterQueueAll(); |
- |
- const PrioritizedTile& Top() const; |
- void Pop(); |
- bool IsEmpty() const; |
- |
- private: |
- // Helper base class for individual region iterators. |
- class OnePriorityRectIterator { |
- public: |
- OnePriorityRectIterator(); |
- OnePriorityRectIterator( |
- PictureLayerTiling* tiling, |
- TilingData* tiling_data, |
- PictureLayerTiling::PriorityRectType priority_rect_type); |
- |
- bool done() const { return !current_tile_.tile(); } |
- const PrioritizedTile& operator*() const { return current_tile_; } |
- |
- protected: |
- ~OnePriorityRectIterator() = default; |
- bool TileNeedsRaster(Tile* tile) const { |
- return tile->draw_info().NeedsRaster() && !tiling_->IsTileOccluded(tile); |
- } |
- |
- template <typename TilingIteratorType> |
- void AdvanceToNextTile(TilingIteratorType* iterator); |
- template <typename TilingIteratorType> |
- bool GetFirstTileAndCheckIfValid(TilingIteratorType* iterator); |
- |
- PrioritizedTile current_tile_; |
- PictureLayerTiling* tiling_; |
- TilingData* tiling_data_; |
- PictureLayerTiling::PriorityRectType priority_rect_type_; |
- }; |
- |
- // Iterates over visible rect only, left to right top to bottom order. |
- class VisibleTilingIterator : public OnePriorityRectIterator { |
- public: |
- VisibleTilingIterator() = default; |
- VisibleTilingIterator(PictureLayerTiling* tiling, TilingData* tiling_data); |
- |
- VisibleTilingIterator& operator++(); |
- |
- private: |
- TilingData::Iterator iterator_; |
- }; |
- |
- class PendingVisibleTilingIterator : public OnePriorityRectIterator { |
- public: |
- PendingVisibleTilingIterator() = default; |
- PendingVisibleTilingIterator(PictureLayerTiling* tiling, |
- TilingData* tiling_data); |
- |
- PendingVisibleTilingIterator& operator++(); |
- |
- private: |
- TilingData::DifferenceIterator iterator_; |
- }; |
- |
- // Iterates over skewport only, spiral around the visible rect. |
- class SkewportTilingIterator : public OnePriorityRectIterator { |
- public: |
- SkewportTilingIterator() = default; |
- SkewportTilingIterator(PictureLayerTiling* tiling, TilingData* tiling_data); |
- |
- SkewportTilingIterator& operator++(); |
- |
- private: |
- TilingData::SpiralDifferenceIterator iterator_; |
- gfx::Rect pending_visible_rect_; |
- }; |
- |
- // Iterates over soon border only, spiral around the visible rect. |
- class SoonBorderTilingIterator : public OnePriorityRectIterator { |
- public: |
- SoonBorderTilingIterator() = default; |
- SoonBorderTilingIterator(PictureLayerTiling* tiling, |
- TilingData* tiling_data); |
- |
- SoonBorderTilingIterator& operator++(); |
- |
- private: |
- TilingData::SpiralDifferenceIterator iterator_; |
- gfx::Rect pending_visible_rect_; |
- }; |
- |
- // Iterates over eventually rect only, spiral around the soon rect. |
- class EventuallyTilingIterator : public OnePriorityRectIterator { |
- public: |
- EventuallyTilingIterator() = default; |
- EventuallyTilingIterator(PictureLayerTiling* tiling, |
- TilingData* tiling_data); |
- |
- EventuallyTilingIterator& operator++(); |
- |
- private: |
- TilingData::SpiralDifferenceIterator iterator_; |
- gfx::Rect pending_visible_rect_; |
- }; |
- |
- // Iterates over all of the above phases in the following order: visible, |
- // skewport, soon border, eventually. |
- class TilingIterator { |
- public: |
- TilingIterator(); |
- explicit TilingIterator(PictureLayerTiling* tiling, |
- TilingData* tiling_data); |
- ~TilingIterator(); |
- |
- bool done() const { return !current_tile_.tile(); } |
- const PrioritizedTile& operator*() const { return current_tile_; } |
- TilePriority::PriorityBin type() const { |
- switch (phase_) { |
- case Phase::VISIBLE_RECT: |
- return TilePriority::NOW; |
- case Phase::PENDING_VISIBLE_RECT: |
- case Phase::SKEWPORT_RECT: |
- case Phase::SOON_BORDER_RECT: |
- return TilePriority::SOON; |
- case Phase::EVENTUALLY_RECT: |
- return TilePriority::EVENTUALLY; |
- } |
- NOTREACHED(); |
- return TilePriority::EVENTUALLY; |
- } |
- |
- TilingIterator& operator++(); |
- |
- private: |
- using Phase = PictureLayerTiling::PriorityRectType; |
- |
- void AdvancePhase(); |
- |
- PictureLayerTiling* tiling_; |
- TilingData* tiling_data_; |
- |
- Phase phase_; |
- |
- PrioritizedTile current_tile_; |
- VisibleTilingIterator visible_iterator_; |
- PendingVisibleTilingIterator pending_visible_iterator_; |
- SkewportTilingIterator skewport_iterator_; |
- SoonBorderTilingIterator soon_border_iterator_; |
- EventuallyTilingIterator eventually_iterator_; |
- }; |
- |
- enum IteratorType { |
- LOW_RES, |
- HIGH_RES, |
- ACTIVE_NON_IDEAL_PENDING_HIGH_RES, |
- NUM_ITERATORS |
- }; |
- |
- void AdvanceToNextStage(); |
- |
- PictureLayerTilingSet* tiling_set_; |
- |
- struct IterationStage { |
- IterationStage(IteratorType type, TilePriority::PriorityBin bin); |
- IteratorType iterator_type; |
- TilePriority::PriorityBin tile_type; |
- }; |
- |
- size_t current_stage_; |
- |
- // The max number of stages is 6: 1 low res, 3 high res, and 2 active non |
- // ideal pending high res. |
- base::StackVector<IterationStage, 6> stages_; |
- TilingIterator iterators_[NUM_ITERATORS]; |
- |
- DISALLOW_COPY_AND_ASSIGN(TilingSetRasterQueueAll); |
-}; |
- |
-} // namespace cc |
- |
-#endif // CC_RESOURCES_TILING_SET_RASTER_QUEUE_ALL_H_ |