OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CC_TILES_TILING_SET_RASTER_QUEUE_ALL_H_ | 5 #ifndef CC_TILES_TILING_SET_RASTER_QUEUE_ALL_H_ |
6 #define CC_TILES_TILING_SET_RASTER_QUEUE_ALL_H_ | 6 #define CC_TILES_TILING_SET_RASTER_QUEUE_ALL_H_ |
7 | 7 |
8 #include "base/containers/stack_container.h" | 8 #include "base/containers/stack_container.h" |
9 #include "cc/base/cc_export.h" | 9 #include "cc/base/cc_export.h" |
10 #include "cc/tiles/picture_layer_tiling_set.h" | 10 #include "cc/tiles/picture_layer_tiling_set.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 template <typename TilingIteratorType> | 48 template <typename TilingIteratorType> |
49 void AdvanceToNextTile(TilingIteratorType* iterator); | 49 void AdvanceToNextTile(TilingIteratorType* iterator); |
50 template <typename TilingIteratorType> | 50 template <typename TilingIteratorType> |
51 bool GetFirstTileAndCheckIfValid(TilingIteratorType* iterator); | 51 bool GetFirstTileAndCheckIfValid(TilingIteratorType* iterator); |
52 bool IsTileValid(const Tile* tile) const; | 52 bool IsTileValid(const Tile* tile) const; |
53 | 53 |
54 PrioritizedTile current_tile_; | 54 PrioritizedTile current_tile_; |
55 PictureLayerTiling* tiling_; | 55 PictureLayerTiling* tiling_; |
56 TilingData* tiling_data_; | 56 TilingData* tiling_data_; |
57 PictureLayerTiling::PriorityRectType priority_rect_type_; | 57 PictureLayerTiling::PriorityRectType priority_rect_type_; |
| 58 gfx::Rect pending_visible_rect_; |
58 }; | 59 }; |
59 | 60 |
60 // Iterates over visible rect only, left to right top to bottom order. | 61 // Iterates over visible rect only, left to right top to bottom order. |
61 class VisibleTilingIterator : public OnePriorityRectIterator { | 62 class VisibleTilingIterator : public OnePriorityRectIterator { |
62 public: | 63 public: |
63 VisibleTilingIterator() = default; | 64 VisibleTilingIterator() = default; |
64 VisibleTilingIterator(PictureLayerTiling* tiling, TilingData* tiling_data); | 65 VisibleTilingIterator(PictureLayerTiling* tiling, TilingData* tiling_data); |
65 | 66 |
66 VisibleTilingIterator& operator++(); | 67 VisibleTilingIterator& operator++(); |
67 | 68 |
(...skipping 16 matching lines...) Expand all Loading... |
84 // Iterates over skewport only, spiral around the visible rect. | 85 // Iterates over skewport only, spiral around the visible rect. |
85 class SkewportTilingIterator : public OnePriorityRectIterator { | 86 class SkewportTilingIterator : public OnePriorityRectIterator { |
86 public: | 87 public: |
87 SkewportTilingIterator() = default; | 88 SkewportTilingIterator() = default; |
88 SkewportTilingIterator(PictureLayerTiling* tiling, TilingData* tiling_data); | 89 SkewportTilingIterator(PictureLayerTiling* tiling, TilingData* tiling_data); |
89 | 90 |
90 SkewportTilingIterator& operator++(); | 91 SkewportTilingIterator& operator++(); |
91 | 92 |
92 private: | 93 private: |
93 TilingData::SpiralDifferenceIterator iterator_; | 94 TilingData::SpiralDifferenceIterator iterator_; |
94 gfx::Rect pending_visible_rect_; | |
95 }; | 95 }; |
96 | 96 |
97 // Iterates over soon border only, spiral around the visible rect. | 97 // Iterates over soon border only, spiral around the visible rect. |
98 class SoonBorderTilingIterator : public OnePriorityRectIterator { | 98 class SoonBorderTilingIterator : public OnePriorityRectIterator { |
99 public: | 99 public: |
100 SoonBorderTilingIterator() = default; | 100 SoonBorderTilingIterator() = default; |
101 SoonBorderTilingIterator(PictureLayerTiling* tiling, | 101 SoonBorderTilingIterator(PictureLayerTiling* tiling, |
102 TilingData* tiling_data); | 102 TilingData* tiling_data); |
103 | 103 |
104 SoonBorderTilingIterator& operator++(); | 104 SoonBorderTilingIterator& operator++(); |
105 | 105 |
106 private: | 106 private: |
107 TilingData::SpiralDifferenceIterator iterator_; | 107 TilingData::SpiralDifferenceIterator iterator_; |
108 gfx::Rect pending_visible_rect_; | |
109 }; | 108 }; |
110 | 109 |
111 // Iterates over eventually rect only, spiral around the soon rect. | 110 // Iterates over eventually rect only, spiral around the soon rect. |
112 class EventuallyTilingIterator : public OnePriorityRectIterator { | 111 class EventuallyTilingIterator : public OnePriorityRectIterator { |
113 public: | 112 public: |
114 EventuallyTilingIterator() = default; | 113 EventuallyTilingIterator() = default; |
115 EventuallyTilingIterator(PictureLayerTiling* tiling, | 114 EventuallyTilingIterator(PictureLayerTiling* tiling, |
116 TilingData* tiling_data); | 115 TilingData* tiling_data); |
117 | 116 |
118 EventuallyTilingIterator& operator++(); | 117 EventuallyTilingIterator& operator++(); |
119 | 118 |
120 private: | 119 private: |
121 TilingData::SpiralDifferenceIterator iterator_; | 120 TilingData::SpiralDifferenceIterator iterator_; |
122 gfx::Rect pending_visible_rect_; | |
123 }; | 121 }; |
124 | 122 |
125 // Iterates over all of the above phases in the following order: visible, | 123 // Iterates over all of the above phases in the following order: visible, |
126 // skewport, soon border, eventually. | 124 // skewport, soon border, eventually. |
127 class TilingIterator { | 125 class TilingIterator { |
128 public: | 126 public: |
129 TilingIterator(); | 127 TilingIterator(); |
130 explicit TilingIterator(PictureLayerTiling* tiling, | 128 explicit TilingIterator(PictureLayerTiling* tiling, |
131 TilingData* tiling_data); | 129 TilingData* tiling_data); |
132 ~TilingIterator(); | 130 ~TilingIterator(); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 // ideal pending high res. | 189 // ideal pending high res. |
192 base::StackVector<IterationStage, 6> stages_; | 190 base::StackVector<IterationStage, 6> stages_; |
193 TilingIterator iterators_[NUM_ITERATORS]; | 191 TilingIterator iterators_[NUM_ITERATORS]; |
194 | 192 |
195 DISALLOW_COPY_AND_ASSIGN(TilingSetRasterQueueAll); | 193 DISALLOW_COPY_AND_ASSIGN(TilingSetRasterQueueAll); |
196 }; | 194 }; |
197 | 195 |
198 } // namespace cc | 196 } // namespace cc |
199 | 197 |
200 #endif // CC_TILES_TILING_SET_RASTER_QUEUE_ALL_H_ | 198 #endif // CC_TILES_TILING_SET_RASTER_QUEUE_ALL_H_ |
OLD | NEW |