Index: cc/tiles/picture_layer_tiling_set.cc |
diff --git a/cc/tiles/picture_layer_tiling_set.cc b/cc/tiles/picture_layer_tiling_set.cc |
index 0848e61d79869613a2762ee8a7dd8cd97c858e23..bf6e54ef0b775b1a598b45512258a9b347ba7450 100644 |
--- a/cc/tiles/picture_layer_tiling_set.cc |
+++ b/cc/tiles/picture_layer_tiling_set.cc |
@@ -16,7 +16,8 @@ namespace { |
class LargestToSmallestScaleFunctor { |
public: |
- bool operator() (PictureLayerTiling* left, PictureLayerTiling* right) { |
+ bool operator()(const scoped_ptr<PictureLayerTiling>& left, |
+ const scoped_ptr<PictureLayerTiling>& right) { |
return left->contents_scale() > right->contents_scale(); |
} |
}; |
@@ -71,7 +72,7 @@ void PictureLayerTilingSet::CopyTilingsAndPropertiesFromPendingTwin( |
} |
bool tiling_sort_required = false; |
- for (PictureLayerTiling* pending_twin_tiling : pending_twin_set->tilings_) { |
+ for (const auto& pending_twin_tiling : pending_twin_set->tilings_) { |
float contents_scale = pending_twin_tiling->contents_scale(); |
PictureLayerTiling* this_tiling = FindTilingWithScale(contents_scale); |
if (!this_tiling) { |
@@ -80,15 +81,17 @@ void PictureLayerTilingSet::CopyTilingsAndPropertiesFromPendingTwin( |
tiling_interest_area_padding_, skewport_target_time_in_seconds_, |
skewport_extrapolation_limit_in_content_pixels_); |
tilings_.push_back(new_tiling.Pass()); |
- this_tiling = tilings_.back(); |
+ this_tiling = tilings_.back().get(); |
tiling_sort_required = true; |
} |
- this_tiling->TakeTilesAndPropertiesFrom(pending_twin_tiling, |
+ this_tiling->TakeTilesAndPropertiesFrom(pending_twin_tiling.get(), |
layer_invalidation); |
} |
- if (tiling_sort_required) |
- tilings_.sort(LargestToSmallestScaleFunctor()); |
+ if (tiling_sort_required) { |
+ std::sort(tilings_.begin(), tilings_.end(), |
+ LargestToSmallestScaleFunctor()); |
+ } |
} |
void PictureLayerTilingSet::UpdateTilingsToCurrentRasterSourceForActivation( |
@@ -107,7 +110,7 @@ void PictureLayerTilingSet::UpdateTilingsToCurrentRasterSourceForActivation( |
// If the tiling is not shared (FindTilingWithScale returns nullptr), then |
// invalidate tiles and update them to the new raster source. |
- for (PictureLayerTiling* tiling : tilings_) { |
+ for (const auto& tiling : tilings_) { |
if (pending_twin_set->FindTilingWithScale(tiling->contents_scale())) |
continue; |
@@ -139,7 +142,7 @@ void PictureLayerTilingSet::UpdateTilingsToCurrentRasterSourceForCommit( |
RemoveTilingsAboveScale(maximum_contents_scale); |
// Invalidate tiles and update them to the new raster source. |
- for (PictureLayerTiling* tiling : tilings_) { |
+ for (const scoped_ptr<PictureLayerTiling>& tiling : tilings_) { |
DCHECK(tree_ != PENDING_TREE || !tiling->has_tiles()); |
tiling->SetRasterSourceAndResize(raster_source); |
@@ -159,7 +162,7 @@ void PictureLayerTilingSet::UpdateTilingsToCurrentRasterSourceForCommit( |
void PictureLayerTilingSet::UpdateRasterSourceDueToLCDChange( |
const scoped_refptr<DisplayListRasterSource>& raster_source, |
const Region& layer_invalidation) { |
- for (PictureLayerTiling* tiling : tilings_) { |
+ for (const auto& tiling : tilings_) { |
tiling->SetRasterSourceAndResize(raster_source); |
tiling->Invalidate(layer_invalidation); |
// Since the invalidation changed, we need to create any missing tiles in |
@@ -171,7 +174,7 @@ void PictureLayerTilingSet::UpdateRasterSourceDueToLCDChange( |
void PictureLayerTilingSet::VerifyTilings( |
const PictureLayerTilingSet* pending_twin_set) const { |
#if DCHECK_IS_ON() |
- for (PictureLayerTiling* tiling : tilings_) { |
+ for (const auto& tiling : tilings_) { |
DCHECK(tiling->tile_size() == |
client_->CalculateTileSize(tiling->tiling_size())) |
<< "tile_size: " << tiling->tile_size().ToString() |
@@ -202,7 +205,7 @@ void PictureLayerTilingSet::CleanUpTilings( |
const std::vector<PictureLayerTiling*>& needed_tilings, |
PictureLayerTilingSet* twin_set) { |
std::vector<PictureLayerTiling*> to_remove; |
- for (auto* tiling : tilings_) { |
+ for (const auto& tiling : tilings_) { |
// Keep all tilings within the min/max scales. |
if (tiling->contents_scale() >= min_acceptable_high_res_scale && |
tiling->contents_scale() <= max_acceptable_high_res_scale) { |
@@ -214,12 +217,12 @@ void PictureLayerTilingSet::CleanUpTilings( |
continue; |
// Don't remove tilings that are required. |
- if (std::find(needed_tilings.begin(), needed_tilings.end(), tiling) != |
+ if (std::find(needed_tilings.begin(), needed_tilings.end(), tiling.get()) != |
needed_tilings.end()) { |
continue; |
} |
- to_remove.push_back(tiling); |
+ to_remove.push_back(tiling.get()); |
} |
for (auto* tiling : to_remove) { |
@@ -229,14 +232,16 @@ void PictureLayerTilingSet::CleanUpTilings( |
} |
void PictureLayerTilingSet::RemoveNonIdealTilings() { |
- auto to_remove = tilings_.remove_if([](PictureLayerTiling* t) { |
- return t->resolution() == NON_IDEAL_RESOLUTION; |
- }); |
+ auto to_remove = |
+ std::remove_if(tilings_.begin(), tilings_.end(), |
+ [](const scoped_ptr<PictureLayerTiling>& t) { |
+ return t->resolution() == NON_IDEAL_RESOLUTION; |
+ }); |
tilings_.erase(to_remove, tilings_.end()); |
} |
void PictureLayerTilingSet::MarkAllTilingsNonIdeal() { |
- for (auto* tiling : tilings_) |
+ for (const auto& tiling : tilings_) |
tiling->set_resolution(NON_IDEAL_RESOLUTION); |
} |
@@ -252,50 +257,53 @@ PictureLayerTiling* PictureLayerTilingSet::AddTiling( |
tree_, contents_scale, raster_source, client_, |
tiling_interest_area_padding_, skewport_target_time_in_seconds_, |
skewport_extrapolation_limit_in_content_pixels_)); |
- PictureLayerTiling* appended = tilings_.back(); |
+ PictureLayerTiling* appended = tilings_.back().get(); |
- tilings_.sort(LargestToSmallestScaleFunctor()); |
+ std::sort(tilings_.begin(), tilings_.end(), LargestToSmallestScaleFunctor()); |
return appended; |
} |
int PictureLayerTilingSet::NumHighResTilings() const { |
return std::count_if(tilings_.begin(), tilings_.end(), |
- [](PictureLayerTiling* tiling) { |
- return tiling->resolution() == HIGH_RESOLUTION; |
- }); |
+ [](const scoped_ptr<PictureLayerTiling>& tiling) { |
+ return tiling->resolution() == HIGH_RESOLUTION; |
+ }); |
} |
PictureLayerTiling* PictureLayerTilingSet::FindTilingWithScale( |
float scale) const { |
for (size_t i = 0; i < tilings_.size(); ++i) { |
if (tilings_[i]->contents_scale() == scale) |
- return tilings_[i]; |
+ return tilings_[i].get(); |
} |
- return NULL; |
+ return nullptr; |
} |
PictureLayerTiling* PictureLayerTilingSet::FindTilingWithResolution( |
TileResolution resolution) const { |
- auto iter = std::find_if(tilings_.begin(), tilings_.end(), |
- [resolution](const PictureLayerTiling* tiling) { |
- return tiling->resolution() == resolution; |
- }); |
+ auto iter = |
+ std::find_if(tilings_.begin(), tilings_.end(), |
+ [resolution](const scoped_ptr<PictureLayerTiling>& tiling) { |
+ return tiling->resolution() == resolution; |
+ }); |
if (iter == tilings_.end()) |
- return NULL; |
- return *iter; |
+ return nullptr; |
+ return iter->get(); |
} |
void PictureLayerTilingSet::RemoveTilingsBelowScale(float minimum_scale) { |
- auto to_remove = |
- tilings_.remove_if([minimum_scale](PictureLayerTiling* tiling) { |
+ auto to_remove = std::remove_if( |
+ tilings_.begin(), tilings_.end(), |
+ [minimum_scale](const scoped_ptr<PictureLayerTiling>& tiling) { |
return tiling->contents_scale() < minimum_scale; |
}); |
tilings_.erase(to_remove, tilings_.end()); |
} |
void PictureLayerTilingSet::RemoveTilingsAboveScale(float maximum_scale) { |
- auto to_remove = |
- tilings_.remove_if([maximum_scale](PictureLayerTiling* tiling) { |
+ auto to_remove = std::remove_if( |
+ tilings_.begin(), tilings_.end(), |
+ [maximum_scale](const scoped_ptr<PictureLayerTiling>& tiling) { |
return tiling->contents_scale() > maximum_scale; |
}); |
tilings_.erase(to_remove, tilings_.end()); |
@@ -306,8 +314,11 @@ void PictureLayerTilingSet::RemoveAllTilings() { |
} |
void PictureLayerTilingSet::Remove(PictureLayerTiling* tiling) { |
- ScopedPtrVector<PictureLayerTiling>::iterator iter = |
- std::find(tilings_.begin(), tilings_.end(), tiling); |
+ std::vector<scoped_ptr<PictureLayerTiling>>::iterator iter = |
danakj
2015/11/17 23:49:41
auto
vmpstr
2015/11/18 00:08:46
Done.
|
+ std::find_if(tilings_.begin(), tilings_.end(), |
+ [tiling](const scoped_ptr<PictureLayerTiling>& candidate) { |
+ return candidate.get() == tiling; |
+ }); |
if (iter == tilings_.end()) |
return; |
tilings_.erase(iter); |
@@ -324,7 +335,7 @@ float PictureLayerTilingSet::GetSnappedContentsScale( |
// If a tiling exists within the max snapping ratio, snap to its scale. |
float snapped_contents_scale = start_scale; |
float snapped_ratio = snap_to_existing_tiling_ratio; |
- for (const auto* tiling : tilings_) { |
+ for (const auto& tiling : tilings_) { |
float tiling_contents_scale = tiling->contents_scale(); |
float ratio = LargerRatio(tiling_contents_scale, start_scale); |
if (ratio < snapped_ratio) { |
@@ -349,7 +360,7 @@ bool PictureLayerTilingSet::UpdateTilePriorities( |
const Occlusion& occlusion_in_layer_space, |
bool can_require_tiles_for_activation) { |
bool updated = false; |
- for (auto* tiling : tilings_) { |
+ for (const auto& tiling : tilings_) { |
tiling->set_can_require_tiles_for_activation( |
can_require_tiles_for_activation); |
updated |= tiling->ComputeTilePriorityRects( |
@@ -361,7 +372,7 @@ bool PictureLayerTilingSet::UpdateTilePriorities( |
void PictureLayerTilingSet::GetAllPrioritizedTilesForTracing( |
std::vector<PrioritizedTile>* prioritized_tiles) const { |
- for (auto* tiling : tilings_) |
+ for (const auto& tiling : tilings_) |
tiling->GetAllPrioritizedTilesForTracing(prioritized_tiles); |
} |
@@ -378,7 +389,7 @@ PictureLayerTilingSet::CoverageIterator::CoverageIterator( |
size_t tilings_size = set_->tilings_.size(); |
for (ideal_tiling_ = 0; ideal_tiling_ < tilings_size; ++ideal_tiling_) { |
- PictureLayerTiling* tiling = set_->tilings_[ideal_tiling_]; |
+ PictureLayerTiling* tiling = set_->tilings_[ideal_tiling_].get(); |
if (tiling->contents_scale() < ideal_contents_scale_) { |
if (ideal_tiling_ > 0) |
ideal_tiling_--; |
@@ -412,13 +423,13 @@ gfx::RectF PictureLayerTilingSet::CoverageIterator::texture_rect() const { |
Tile* PictureLayerTilingSet::CoverageIterator::operator->() const { |
if (!tiling_iter_) |
- return NULL; |
+ return nullptr; |
return *tiling_iter_; |
} |
Tile* PictureLayerTilingSet::CoverageIterator::operator*() const { |
if (!tiling_iter_) |
- return NULL; |
+ return nullptr; |
return *tiling_iter_; |
} |
@@ -431,10 +442,10 @@ TileResolution PictureLayerTilingSet::CoverageIterator::resolution() const { |
PictureLayerTiling* PictureLayerTilingSet::CoverageIterator::CurrentTiling() |
const { |
if (current_tiling_ == std::numeric_limits<size_t>::max()) |
- return NULL; |
+ return nullptr; |
if (current_tiling_ >= set_->tilings_.size()) |
- return NULL; |
- return set_->tilings_[current_tiling_]; |
+ return nullptr; |
+ return set_->tilings_[current_tiling_].get(); |
} |
size_t PictureLayerTilingSet::CoverageIterator::NextTiling() const { |
@@ -505,9 +516,7 @@ PictureLayerTilingSet::CoverageIterator::operator++() { |
// Construct a new iterator for the next tiling, but we need to loop |
// again until we get to a valid one. |
tiling_iter_ = PictureLayerTiling::CoverageIterator( |
- set_->tilings_[current_tiling_], |
- contents_scale_, |
- last_rect); |
+ set_->tilings_[current_tiling_].get(), contents_scale_, last_rect); |
} |
return *this; |
@@ -542,7 +551,7 @@ PictureLayerTilingSet::TilingRange PictureLayerTilingSet::GetTilingRange( |
TilingRange high_res_range(0, 0); |
TilingRange low_res_range(tilings_.size(), tilings_.size()); |
for (size_t i = 0; i < tilings_size; ++i) { |
- const PictureLayerTiling* tiling = tilings_[i]; |
+ const PictureLayerTiling* tiling = tilings_[i].get(); |
if (tiling->resolution() == HIGH_RESOLUTION) |
high_res_range = TilingRange(i, i + 1); |
if (tiling->resolution() == LOW_RESOLUTION) |