Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1410)

Unified Diff: cc/resources/tiling_set_raster_queue_all.h

Issue 1051993002: cc: Remove tile sharing from tilings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..f2a669982b5ae37c360dd57588cf31345349c2e8 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;
@@ -131,8 +147,14 @@ class CC_EXPORT TilingSetRasterQueueAll {
TilingIterator& operator++();
private:
+ // PENDING VISIBLE RECT refers to the visible rect that will become current
+ // upon activation (ie, the pending tree's visible rect). Tiles in this
+ // region that are not part of the current visible rect are all handled
+ // here. Note that when processing a pending tree, this rect is the same as
+ // the visible rect so no tiles are processed in this case.
enum Phase {
VISIBLE_RECT,
+ PENDING_VISIBLE_RECT,
SKEWPORT_RECT,
SOON_BORDER_RECT,
EVENTUALLY_RECT
@@ -147,6 +169,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_;

Powered by Google App Engine
This is Rietveld 408576698