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

Side by Side Diff: cc/resources/picture_layer_tiling.cc

Issue 246673005: cc: Start using raster/eviction iterators in tile manager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 #include "cc/resources/picture_layer_tiling.h" 5 #include "cc/resources/picture_layer_tiling.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <limits> 9 #include <limits>
10 10
(...skipping 820 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 } 831 }
832 832
833 current_tile_ = 833 current_tile_ =
834 tiling_->TileAt(visible_iterator_.index_x(), visible_iterator_.index_y()); 834 tiling_->TileAt(visible_iterator_.index_x(), visible_iterator_.index_y());
835 if (!current_tile_ || !TileNeedsRaster(current_tile_)) 835 if (!current_tile_ || !TileNeedsRaster(current_tile_))
836 ++(*this); 836 ++(*this);
837 } 837 }
838 838
839 PictureLayerTiling::TilingRasterTileIterator::~TilingRasterTileIterator() {} 839 PictureLayerTiling::TilingRasterTileIterator::~TilingRasterTileIterator() {}
840 840
841 bool
842 PictureLayerTiling::TilingRasterTileIterator::HasTilesRequiredForActivation()
843 const {
844 if (!*this || get_type() != TilePriority::NOW)
845 return false;
846
847 for (TilingData::Iterator it = visible_iterator_; it; ++it) {
848 std::pair<int, int> next_index = visible_iterator_.index();
849 Tile* tile = tiling_->TileAt(next_index.first, next_index.second);
850 if (tile && tile->required_for_activation())
851 return true;
852 }
853 return false;
854 }
855
841 void PictureLayerTiling::TilingRasterTileIterator::AdvancePhase() { 856 void PictureLayerTiling::TilingRasterTileIterator::AdvancePhase() {
842 DCHECK_LT(type_, TilePriority::EVENTUALLY); 857 DCHECK_LT(type_, TilePriority::EVENTUALLY);
843 858
844 do { 859 do {
845 type_ = static_cast<TilePriority::PriorityBin>(type_ + 1); 860 type_ = static_cast<TilePriority::PriorityBin>(type_ + 1);
846 if (type_ == TilePriority::EVENTUALLY) { 861 if (type_ == TilePriority::EVENTUALLY) {
847 spiral_iterator_ = TilingData::SpiralDifferenceIterator( 862 spiral_iterator_ = TilingData::SpiralDifferenceIterator(
848 &tiling_->tiling_data_, 863 &tiling_->tiling_data_,
849 eventually_rect_in_content_space_, 864 eventually_rect_in_content_space_,
850 skewport_in_content_space_, 865 skewport_in_content_space_,
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
955 tiling_->UpdateEvictionCacheIfNeeded(tree_priority_); 970 tiling_->UpdateEvictionCacheIfNeeded(tree_priority_);
956 tile_iterator_ = tiling_->eviction_tiles_cache_.begin(); 971 tile_iterator_ = tiling_->eviction_tiles_cache_.begin();
957 is_valid_ = true; 972 is_valid_ = true;
958 if (tile_iterator_ != tiling_->eviction_tiles_cache_.end() && 973 if (tile_iterator_ != tiling_->eviction_tiles_cache_.end() &&
959 !(*tile_iterator_)->HasResources()) { 974 !(*tile_iterator_)->HasResources()) {
960 ++(*this); 975 ++(*this);
961 } 976 }
962 } 977 }
963 978
964 } // namespace cc 979 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698