Chromium Code Reviews| 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 |
| index ebca838f232b288c00e6e6770d3d97e997d23bf2..5120601f3cb2bc4c1c6d31bb87215b211d68eee1 100644 |
| --- a/cc/resources/tiling_set_raster_queue_all.h |
| +++ b/cc/resources/tiling_set_raster_queue_all.h |
| @@ -64,6 +64,18 @@ class CC_EXPORT TilingSetRasterQueueAll { |
| 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: |
| @@ -74,6 +86,7 @@ class CC_EXPORT TilingSetRasterQueueAll { |
| private: |
| TilingData::SpiralDifferenceIterator iterator_; |
| + gfx::Rect pending_visible_rect_; |
| }; |
| // Iterates over soon border only, spiral around the visible rect. |
| @@ -87,6 +100,7 @@ class CC_EXPORT TilingSetRasterQueueAll { |
| private: |
| TilingData::SpiralDifferenceIterator iterator_; |
| + gfx::Rect pending_visible_rect_; |
| }; |
| // Iterates over eventually rect only, spiral around the soon rect. |
| @@ -100,6 +114,7 @@ class CC_EXPORT TilingSetRasterQueueAll { |
| private: |
| TilingData::SpiralDifferenceIterator iterator_; |
| + gfx::Rect pending_visible_rect_; |
| }; |
| // Iterates over all of the above phases in the following order: visible, |
| @@ -109,7 +124,7 @@ class CC_EXPORT TilingSetRasterQueueAll { |
| TilingIterator(); |
| explicit TilingIterator(PictureLayerTiling* tiling, |
| TilingData* tiling_data); |
| - ~TilingIterator() = default; |
| + ~TilingIterator(); |
| bool done() const { return current_tile_ == nullptr; } |
| const Tile* operator*() const { return current_tile_; } |
| @@ -118,6 +133,7 @@ class CC_EXPORT TilingSetRasterQueueAll { |
| switch (phase_) { |
| case VISIBLE_RECT: |
| return TilePriority::NOW; |
| + case PENDING_VISIBLE_RECT: |
| case SKEWPORT_RECT: |
| case SOON_BORDER_RECT: |
| return TilePriority::SOON; |
| @@ -133,6 +149,7 @@ class CC_EXPORT TilingSetRasterQueueAll { |
| private: |
| enum Phase { |
| VISIBLE_RECT, |
|
enne (OOO)
2015/04/02 21:45:34
Should this be ACTIVE_VISIBLE_RECT?
|
| + PENDING_VISIBLE_RECT, |
|
enne (OOO)
2015/04/02 21:45:34
This is nice!
|
| SKEWPORT_RECT, |
| SOON_BORDER_RECT, |
| EVENTUALLY_RECT |
| @@ -147,6 +164,7 @@ class CC_EXPORT TilingSetRasterQueueAll { |
| Tile* current_tile_; |
| VisibleTilingIterator visible_iterator_; |
| + PendingVisibleTilingIterator pending_visible_iterator_; |
| SkewportTilingIterator skewport_iterator_; |
| SoonBorderTilingIterator soon_border_iterator_; |
| EventuallyTilingIterator eventually_iterator_; |