| Index: cc/resources/tiling_set_raster_queue_all.cc
|
| diff --git a/cc/resources/tiling_set_raster_queue_all.cc b/cc/resources/tiling_set_raster_queue_all.cc
|
| index 6f212152a98cfcfb3caebe1951cc4ff1a77f1158..ba2f11520b8a946d3c8c5bf97857aef5260fc350 100644
|
| --- a/cc/resources/tiling_set_raster_queue_all.cc
|
| +++ b/cc/resources/tiling_set_raster_queue_all.cc
|
| @@ -118,17 +118,7 @@ void TilingSetRasterQueueAll::Pop() {
|
| AdvanceToNextStage();
|
| }
|
|
|
| -Tile* TilingSetRasterQueueAll::Top() {
|
| - DCHECK(!IsEmpty());
|
| -
|
| - IteratorType index = stages_[current_stage_].iterator_type;
|
| - DCHECK(!iterators_[index].done());
|
| - DCHECK(iterators_[index].type() == stages_[current_stage_].tile_type);
|
| -
|
| - return *iterators_[index];
|
| -}
|
| -
|
| -const Tile* TilingSetRasterQueueAll::Top() const {
|
| +const PrioritizedTile& TilingSetRasterQueueAll::Top() const {
|
| DCHECK(!IsEmpty());
|
|
|
| IteratorType index = stages_[current_stage_].iterator_type;
|
| @@ -153,39 +143,41 @@ void TilingSetRasterQueueAll::AdvanceToNextStage() {
|
|
|
| // OnePriorityRectIterator
|
| TilingSetRasterQueueAll::OnePriorityRectIterator::OnePriorityRectIterator()
|
| - : tile_(nullptr), tiling_(nullptr), tiling_data_(nullptr) {
|
| + : tiling_(nullptr), tiling_data_(nullptr) {
|
| }
|
|
|
| TilingSetRasterQueueAll::OnePriorityRectIterator::OnePriorityRectIterator(
|
| PictureLayerTiling* tiling,
|
| TilingData* tiling_data)
|
| - : tile_(nullptr), tiling_(tiling), tiling_data_(tiling_data) {
|
| + : tiling_(tiling), tiling_data_(tiling_data) {
|
| }
|
|
|
| template <typename TilingIteratorType>
|
| void TilingSetRasterQueueAll::OnePriorityRectIterator::AdvanceToNextTile(
|
| TilingIteratorType* iterator) {
|
| - tile_ = nullptr;
|
| - while (!tile_ || !TileNeedsRaster(tile_)) {
|
| + current_tile_ = PrioritizedTile();
|
| + Tile* tile = nullptr;
|
| + while (!tile || !TileNeedsRaster(tile)) {
|
| ++(*iterator);
|
| if (!(*iterator)) {
|
| - tile_ = nullptr;
|
| return;
|
| }
|
| - tile_ = tiling_->TileAt(iterator->index_x(), iterator->index_y());
|
| + tile = tiling_->TileAt(iterator->index_x(), iterator->index_y());
|
| }
|
| - tiling_->UpdateTilePriority(tile_);
|
| + tiling_->UpdateRequiredStatesOnTile(tile);
|
| + current_tile_ = tiling_->MakePrioritizedTile(tile);
|
| }
|
|
|
| template <typename TilingIteratorType>
|
| bool TilingSetRasterQueueAll::OnePriorityRectIterator::
|
| GetFirstTileAndCheckIfValid(TilingIteratorType* iterator) {
|
| - tile_ = tiling_->TileAt(iterator->index_x(), iterator->index_y());
|
| - if (!tile_ || !TileNeedsRaster(tile_)) {
|
| - tile_ = nullptr;
|
| + Tile* tile = tiling_->TileAt(iterator->index_x(), iterator->index_y());
|
| + if (!tile || !TileNeedsRaster(tile)) {
|
| + current_tile_ = PrioritizedTile();
|
| return false;
|
| }
|
| - tiling_->UpdateTilePriority(tile_);
|
| + tiling_->UpdateRequiredStatesOnTile(tile);
|
| + current_tile_ = tiling_->MakePrioritizedTile(tile);
|
| return true;
|
| }
|
|
|
| @@ -250,7 +242,7 @@ TilingSetRasterQueueAll::SkewportTilingIterator::SkewportTilingIterator(
|
| ++(*this);
|
| return;
|
| }
|
| - if (tile_->content_rect().Intersects(pending_visible_rect_))
|
| + if (current_tile_.tile()->content_rect().Intersects(pending_visible_rect_))
|
| ++(*this);
|
| }
|
|
|
| @@ -259,7 +251,7 @@ TilingSetRasterQueueAll::SkewportTilingIterator&
|
| operator++() {
|
| AdvanceToNextTile(&iterator_);
|
| while (!done()) {
|
| - if (!tile_->content_rect().Intersects(pending_visible_rect_))
|
| + if (!current_tile_.tile()->content_rect().Intersects(pending_visible_rect_))
|
| break;
|
| AdvanceToNextTile(&iterator_);
|
| }
|
| @@ -283,7 +275,7 @@ TilingSetRasterQueueAll::SoonBorderTilingIterator::SoonBorderTilingIterator(
|
| ++(*this);
|
| return;
|
| }
|
| - if (tile_->content_rect().Intersects(pending_visible_rect_))
|
| + if (current_tile_.tile()->content_rect().Intersects(pending_visible_rect_))
|
| ++(*this);
|
| }
|
|
|
| @@ -292,7 +284,7 @@ TilingSetRasterQueueAll::SoonBorderTilingIterator&
|
| operator++() {
|
| AdvanceToNextTile(&iterator_);
|
| while (!done()) {
|
| - if (!tile_->content_rect().Intersects(pending_visible_rect_))
|
| + if (!current_tile_.tile()->content_rect().Intersects(pending_visible_rect_))
|
| break;
|
| AdvanceToNextTile(&iterator_);
|
| }
|
| @@ -316,7 +308,7 @@ TilingSetRasterQueueAll::EventuallyTilingIterator::EventuallyTilingIterator(
|
| ++(*this);
|
| return;
|
| }
|
| - if (tile_->content_rect().Intersects(pending_visible_rect_))
|
| + if (current_tile_.tile()->content_rect().Intersects(pending_visible_rect_))
|
| ++(*this);
|
| }
|
|
|
| @@ -325,7 +317,7 @@ TilingSetRasterQueueAll::EventuallyTilingIterator&
|
| operator++() {
|
| AdvanceToNextTile(&iterator_);
|
| while (!done()) {
|
| - if (!tile_->content_rect().Intersects(pending_visible_rect_))
|
| + if (!current_tile_.tile()->content_rect().Intersects(pending_visible_rect_))
|
| break;
|
| AdvanceToNextTile(&iterator_);
|
| }
|
| @@ -333,17 +325,13 @@ TilingSetRasterQueueAll::EventuallyTilingIterator&
|
| }
|
|
|
| // TilingIterator
|
| -TilingSetRasterQueueAll::TilingIterator::TilingIterator()
|
| - : tiling_(NULL), current_tile_(NULL) {
|
| +TilingSetRasterQueueAll::TilingIterator::TilingIterator() : tiling_(nullptr) {
|
| }
|
|
|
| TilingSetRasterQueueAll::TilingIterator::TilingIterator(
|
| PictureLayerTiling* tiling,
|
| TilingData* tiling_data)
|
| - : tiling_(tiling),
|
| - tiling_data_(tiling_data),
|
| - phase_(VISIBLE_RECT),
|
| - current_tile_(NULL) {
|
| + : tiling_(tiling), tiling_data_(tiling_data), phase_(VISIBLE_RECT) {
|
| visible_iterator_ = VisibleTilingIterator(tiling_, tiling_data_);
|
| if (visible_iterator_.done()) {
|
| AdvancePhase();
|
| @@ -358,8 +346,8 @@ TilingSetRasterQueueAll::TilingIterator::~TilingIterator() {
|
| void TilingSetRasterQueueAll::TilingIterator::AdvancePhase() {
|
| DCHECK_LT(phase_, EVENTUALLY_RECT);
|
|
|
| - current_tile_ = nullptr;
|
| - while (!current_tile_ && phase_ < EVENTUALLY_RECT) {
|
| + current_tile_ = PrioritizedTile();
|
| + while (!current_tile_.tile() && phase_ < EVENTUALLY_RECT) {
|
| phase_ = static_cast<Phase>(phase_ + 1);
|
| switch (phase_) {
|
| case VISIBLE_RECT:
|
| @@ -429,7 +417,7 @@ TilingSetRasterQueueAll::TilingIterator&
|
| case EVENTUALLY_RECT:
|
| ++eventually_iterator_;
|
| if (eventually_iterator_.done()) {
|
| - current_tile_ = nullptr;
|
| + current_tile_ = PrioritizedTile();
|
| return *this;
|
| }
|
| current_tile_ = *eventually_iterator_;
|
|
|