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

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

Issue 367833003: cc: Start using raster/eviction iterators. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: update Created 6 years, 5 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_set.h" 5 #include "cc/resources/picture_layer_tiling_set.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 namespace cc { 9 namespace cc {
10 10
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 // Add any missing tilings from |other| that meet the minimum. 64 // Add any missing tilings from |other| that meet the minimum.
65 for (size_t i = 0; i < other.tilings_.size(); ++i) { 65 for (size_t i = 0; i < other.tilings_.size(); ++i) {
66 float contents_scale = other.tilings_[i]->contents_scale(); 66 float contents_scale = other.tilings_[i]->contents_scale();
67 if (contents_scale < minimum_contents_scale) 67 if (contents_scale < minimum_contents_scale)
68 continue; 68 continue;
69 if (PictureLayerTiling* this_tiling = TilingAtScale(contents_scale)) { 69 if (PictureLayerTiling* this_tiling = TilingAtScale(contents_scale)) {
70 this_tiling->set_resolution(other.tilings_[i]->resolution()); 70 this_tiling->set_resolution(other.tilings_[i]->resolution());
71 71
72 this_tiling->UpdateTilesToCurrentPile(layer_invalidation, 72 this_tiling->UpdateTilesToCurrentPile(layer_invalidation,
73 new_layer_bounds); 73 new_layer_bounds);
74 this_tiling->CreateMissingTilesInLiveTilesRect();
75 if (this_tiling->resolution() == HIGH_RESOLUTION) 74 if (this_tiling->resolution() == HIGH_RESOLUTION)
76 have_high_res_tiling = true; 75 have_high_res_tiling = true;
77 76
78 DCHECK(this_tiling->tile_size() == 77 DCHECK(this_tiling->tile_size() ==
79 client_->CalculateTileSize(this_tiling->TilingRect().size())); 78 client_->CalculateTileSize(this_tiling->TilingRect().size()));
80 continue; 79 continue;
81 } 80 }
82 scoped_ptr<PictureLayerTiling> new_tiling = PictureLayerTiling::Create( 81 scoped_ptr<PictureLayerTiling> new_tiling = PictureLayerTiling::Create(
83 contents_scale, 82 contents_scale,
84 new_layer_bounds, 83 new_layer_bounds,
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 return gfx::RectF(); 189 return gfx::RectF();
191 return tiling_iter_.texture_rect(); 190 return tiling_iter_.texture_rect();
192 } 191 }
193 192
194 gfx::Size PictureLayerTilingSet::CoverageIterator::texture_size() const { 193 gfx::Size PictureLayerTilingSet::CoverageIterator::texture_size() const {
195 if (!tiling_iter_) 194 if (!tiling_iter_)
196 return gfx::Size(); 195 return gfx::Size();
197 return tiling_iter_.texture_size(); 196 return tiling_iter_.texture_size();
198 } 197 }
199 198
199 TileResolution PictureLayerTilingSet::CoverageIterator::resolution() {
200 PictureLayerTiling* tiling = CurrentTiling();
201 if (tiling)
202 return tiling->resolution();
203 NOTREACHED();
204 return NON_IDEAL_RESOLUTION;
205 }
206
200 Tile* PictureLayerTilingSet::CoverageIterator::operator->() const { 207 Tile* PictureLayerTilingSet::CoverageIterator::operator->() const {
201 if (!tiling_iter_) 208 if (!tiling_iter_)
202 return NULL; 209 return NULL;
203 return *tiling_iter_; 210 return *tiling_iter_;
204 } 211 }
205 212
206 Tile* PictureLayerTilingSet::CoverageIterator::operator*() const { 213 Tile* PictureLayerTilingSet::CoverageIterator::operator*() const {
207 if (!tiling_iter_) 214 if (!tiling_iter_)
208 return NULL; 215 return NULL;
209 return *tiling_iter_; 216 return *tiling_iter_;
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 PictureLayerTilingSet::CoverageIterator::operator bool() const { 303 PictureLayerTilingSet::CoverageIterator::operator bool() const {
297 return current_tiling_ < static_cast<int>(set_->tilings_.size()) || 304 return current_tiling_ < static_cast<int>(set_->tilings_.size()) ||
298 region_iter_.has_rect(); 305 region_iter_.has_rect();
299 } 306 }
300 307
301 void PictureLayerTilingSet::DidBecomeActive() { 308 void PictureLayerTilingSet::DidBecomeActive() {
302 for (size_t i = 0; i < tilings_.size(); ++i) 309 for (size_t i = 0; i < tilings_.size(); ++i)
303 tilings_[i]->DidBecomeActive(); 310 tilings_[i]->DidBecomeActive();
304 } 311 }
305 312
306 void PictureLayerTilingSet::DidBecomeRecycled() {
307 for (size_t i = 0; i < tilings_.size(); ++i)
308 tilings_[i]->DidBecomeRecycled();
309 }
310
311 scoped_ptr<base::Value> PictureLayerTilingSet::AsValue() const { 313 scoped_ptr<base::Value> PictureLayerTilingSet::AsValue() const {
312 scoped_ptr<base::ListValue> state(new base::ListValue()); 314 scoped_ptr<base::ListValue> state(new base::ListValue());
313 for (size_t i = 0; i < tilings_.size(); ++i) 315 for (size_t i = 0; i < tilings_.size(); ++i)
314 state->Append(tilings_[i]->AsValue().release()); 316 state->Append(tilings_[i]->AsValue().release());
315 return state.PassAs<base::Value>(); 317 return state.PassAs<base::Value>();
316 } 318 }
317 319
318 size_t PictureLayerTilingSet::GPUMemoryUsageInBytes() const { 320 size_t PictureLayerTilingSet::GPUMemoryUsageInBytes() const {
319 size_t amount = 0; 321 size_t amount = 0;
320 for (size_t i = 0; i < tilings_.size(); ++i) 322 for (size_t i = 0; i < tilings_.size(); ++i)
321 amount += tilings_[i]->GPUMemoryUsageInBytes(); 323 amount += tilings_[i]->GPUMemoryUsageInBytes();
322 return amount; 324 return amount;
323 } 325 }
324 326
325 } // namespace cc 327 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698