Chromium Code Reviews| Index: cc/resources/picture_layer_tiling.cc |
| diff --git a/cc/resources/picture_layer_tiling.cc b/cc/resources/picture_layer_tiling.cc |
| index 3a82e23fe52f8658a8e85673de04a98455841821..3c79dc11f7cd400ddd9c32ec30d84ed39a4ad3b5 100644 |
| --- a/cc/resources/picture_layer_tiling.cc |
| +++ b/cc/resources/picture_layer_tiling.cc |
| @@ -789,14 +789,15 @@ bool PictureLayerTiling::IsTileRequiredForDrawIfVisible( |
| return true; |
| } |
| -void PictureLayerTiling::UpdateTileAndTwinPriority(Tile* tile) const { |
| - UpdateTilePriority(tile); |
| +void PictureLayerTiling::UpdateTilePriority(Tile* tile) const { |
|
danakj
2015/01/07 20:05:31
I liked the old function name, how come it changed
vmpstr
2015/01/08 00:23:59
I thought it would make more sense, but I think yo
|
| + WhichTree tree = client_->GetTree(); |
| + WhichTree twin_tree = tree == ACTIVE_TREE ? PENDING_TREE : ACTIVE_TREE; |
| + |
| + UpdateTilePriorityForTree(tile, tree); |
| const PictureLayerTiling* twin_tiling = |
| client_->GetPendingOrActiveTwinTiling(this); |
| if (!tile->is_shared() || !twin_tiling) { |
| - WhichTree tree = client_->GetTree(); |
| - WhichTree twin_tree = tree == ACTIVE_TREE ? PENDING_TREE : ACTIVE_TREE; |
| tile->SetPriority(twin_tree, TilePriority()); |
| tile->set_is_occluded(twin_tree, false); |
| if (twin_tree == PENDING_TREE) |
| @@ -806,16 +807,16 @@ void PictureLayerTiling::UpdateTileAndTwinPriority(Tile* tile) const { |
| return; |
| } |
| - twin_tiling->UpdateTilePriority(tile); |
| + twin_tiling->UpdateTilePriorityForTree(tile, twin_tree); |
| } |
| -void PictureLayerTiling::UpdateTilePriority(Tile* tile) const { |
| +void PictureLayerTiling::UpdateTilePriorityForTree(Tile* tile, |
| + WhichTree tree) const { |
| // TODO(vmpstr): This code should return the priority instead of setting it on |
| // the tile. This should be a part of the change to move tile priority from |
| // tiles into iterators. |
| TilePriority::PriorityBin max_tile_priority_bin = |
| client_->GetMaxTilePriorityBin(); |
| - WhichTree tree = client_->GetTree(); |
| DCHECK_EQ(TileAt(tile->tiling_i_index(), tile->tiling_j_index()), tile); |
| gfx::Rect tile_bounds = |
| @@ -1033,136 +1034,4 @@ gfx::Rect PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( |
| return result; |
| } |
| -PictureLayerTiling::TilingRasterTileIterator::TilingRasterTileIterator() |
| - : tiling_(NULL), current_tile_(NULL) {} |
| - |
| -PictureLayerTiling::TilingRasterTileIterator::TilingRasterTileIterator( |
| - PictureLayerTiling* tiling) |
| - : tiling_(tiling), phase_(VISIBLE_RECT), current_tile_(NULL) { |
| - if (!tiling_->has_visible_rect_tiles_) { |
| - AdvancePhase(); |
| - return; |
| - } |
| - |
| - visible_iterator_ = TilingData::Iterator(&tiling_->tiling_data_, |
| - tiling_->current_visible_rect_, |
| - false /* include_borders */); |
| - if (!visible_iterator_) { |
| - AdvancePhase(); |
| - return; |
| - } |
| - |
| - current_tile_ = |
| - tiling_->TileAt(visible_iterator_.index_x(), visible_iterator_.index_y()); |
| - if (!current_tile_ || !TileNeedsRaster(current_tile_)) { |
| - ++(*this); |
| - return; |
| - } |
| - tiling_->UpdateTileAndTwinPriority(current_tile_); |
| -} |
| - |
| -PictureLayerTiling::TilingRasterTileIterator::~TilingRasterTileIterator() {} |
| - |
| -void PictureLayerTiling::TilingRasterTileIterator::AdvancePhase() { |
| - DCHECK_LT(phase_, EVENTUALLY_RECT); |
| - |
| - do { |
| - phase_ = static_cast<Phase>(phase_ + 1); |
| - switch (phase_) { |
| - case VISIBLE_RECT: |
| - NOTREACHED(); |
| - return; |
| - case SKEWPORT_RECT: |
| - if (!tiling_->has_skewport_rect_tiles_) |
| - continue; |
| - |
| - spiral_iterator_ = TilingData::SpiralDifferenceIterator( |
| - &tiling_->tiling_data_, |
| - tiling_->current_skewport_rect_, |
| - tiling_->current_visible_rect_, |
| - tiling_->current_visible_rect_); |
| - break; |
| - case SOON_BORDER_RECT: |
| - if (!tiling_->has_soon_border_rect_tiles_) |
| - continue; |
| - |
| - spiral_iterator_ = TilingData::SpiralDifferenceIterator( |
| - &tiling_->tiling_data_, |
| - tiling_->current_soon_border_rect_, |
| - tiling_->current_skewport_rect_, |
| - tiling_->current_visible_rect_); |
| - break; |
| - case EVENTUALLY_RECT: |
| - if (!tiling_->has_eventually_rect_tiles_) { |
| - current_tile_ = NULL; |
| - return; |
| - } |
| - |
| - spiral_iterator_ = TilingData::SpiralDifferenceIterator( |
| - &tiling_->tiling_data_, |
| - tiling_->current_eventually_rect_, |
| - tiling_->current_skewport_rect_, |
| - tiling_->current_soon_border_rect_); |
| - break; |
| - } |
| - |
| - while (spiral_iterator_) { |
| - current_tile_ = tiling_->TileAt(spiral_iterator_.index_x(), |
| - spiral_iterator_.index_y()); |
| - if (current_tile_ && TileNeedsRaster(current_tile_)) |
| - break; |
| - ++spiral_iterator_; |
| - } |
| - |
| - if (!spiral_iterator_ && phase_ == EVENTUALLY_RECT) { |
| - current_tile_ = NULL; |
| - break; |
| - } |
| - } while (!spiral_iterator_); |
| - |
| - if (current_tile_) |
| - tiling_->UpdateTileAndTwinPriority(current_tile_); |
| -} |
| - |
| -PictureLayerTiling::TilingRasterTileIterator& |
| -PictureLayerTiling::TilingRasterTileIterator:: |
| -operator++() { |
| - current_tile_ = NULL; |
| - while (!current_tile_ || !TileNeedsRaster(current_tile_)) { |
| - std::pair<int, int> next_index; |
| - switch (phase_) { |
| - case VISIBLE_RECT: |
| - ++visible_iterator_; |
| - if (!visible_iterator_) { |
| - AdvancePhase(); |
| - return *this; |
| - } |
| - next_index = visible_iterator_.index(); |
| - break; |
| - case SKEWPORT_RECT: |
| - case SOON_BORDER_RECT: |
| - ++spiral_iterator_; |
| - if (!spiral_iterator_) { |
| - AdvancePhase(); |
| - return *this; |
| - } |
| - next_index = spiral_iterator_.index(); |
| - break; |
| - case EVENTUALLY_RECT: |
| - ++spiral_iterator_; |
| - if (!spiral_iterator_) { |
| - current_tile_ = NULL; |
| - return *this; |
| - } |
| - next_index = spiral_iterator_.index(); |
| - break; |
| - } |
| - current_tile_ = tiling_->TileAt(next_index.first, next_index.second); |
| - } |
| - |
| - if (current_tile_) |
| - tiling_->UpdateTileAndTwinPriority(current_tile_); |
| - return *this; |
| -} |
| - |
| } // namespace cc |