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

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

Issue 775483002: cc: Remove max tiles and skewport constants from tiling client. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years 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
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 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 11 matching lines...) Expand all
22 inline float LargerRatio(float float1, float float2) { 22 inline float LargerRatio(float float1, float float2) {
23 DCHECK_GT(float1, 0.f); 23 DCHECK_GT(float1, 0.f);
24 DCHECK_GT(float2, 0.f); 24 DCHECK_GT(float2, 0.f);
25 return float1 > float2 ? float1 / float2 : float2 / float1; 25 return float1 > float2 ? float1 / float2 : float2 / float1;
26 } 26 }
27 27
28 } // namespace 28 } // namespace
29 29
30 // static 30 // static
31 scoped_ptr<PictureLayerTilingSet> PictureLayerTilingSet::Create( 31 scoped_ptr<PictureLayerTilingSet> PictureLayerTilingSet::Create(
32 PictureLayerTilingClient* client) { 32 PictureLayerTilingClient* client,
33 return make_scoped_ptr(new PictureLayerTilingSet(client)); 33 size_t max_tiles_for_interest_area,
34 float skewport_target_time_in_seconds,
35 int skewport_extrapolation_limit_in_content_pixels) {
36 return make_scoped_ptr(new PictureLayerTilingSet(
37 client, max_tiles_for_interest_area, skewport_target_time_in_seconds,
38 skewport_extrapolation_limit_in_content_pixels));
34 } 39 }
35 40
36 PictureLayerTilingSet::PictureLayerTilingSet(PictureLayerTilingClient* client) 41 PictureLayerTilingSet::PictureLayerTilingSet(
37 : client_(client) { 42 PictureLayerTilingClient* client,
43 size_t max_tiles_for_interest_area,
44 float skewport_target_time_in_seconds,
45 int skewport_extrapolation_limit_in_content_pixels)
46 : max_tiles_for_interest_area_(max_tiles_for_interest_area),
47 skewport_target_time_in_seconds_(skewport_target_time_in_seconds),
48 skewport_extrapolation_limit_in_content_pixels_(
49 skewport_extrapolation_limit_in_content_pixels),
50 client_(client) {
38 } 51 }
39 52
40 PictureLayerTilingSet::~PictureLayerTilingSet() { 53 PictureLayerTilingSet::~PictureLayerTilingSet() {
41 } 54 }
42 55
43 void PictureLayerTilingSet::UpdateTilingsToCurrentRasterSource( 56 void PictureLayerTilingSet::UpdateTilingsToCurrentRasterSource(
44 RasterSource* raster_source, 57 RasterSource* raster_source,
45 const PictureLayerTilingSet* twin_set, 58 const PictureLayerTilingSet* twin_set,
46 const gfx::Size& layer_bounds, 59 const gfx::Size& layer_bounds,
47 const Region& layer_invalidation, 60 const Region& layer_invalidation,
48 float minimum_contents_scale) { 61 float minimum_contents_scale) {
49 RemoveTilingsBelowScale(minimum_contents_scale); 62 RemoveTilingsBelowScale(minimum_contents_scale);
50 63
51 // Copy over tilings that are shared with the |twin_set| tiling set (if it 64 // Copy over tilings that are shared with the |twin_set| tiling set (if it
52 // exists). 65 // exists).
53 if (twin_set) { 66 if (twin_set) {
54 for (PictureLayerTiling* twin_tiling : twin_set->tilings_) { 67 for (PictureLayerTiling* twin_tiling : twin_set->tilings_) {
55 float contents_scale = twin_tiling->contents_scale(); 68 float contents_scale = twin_tiling->contents_scale();
56 DCHECK_GE(contents_scale, minimum_contents_scale); 69 DCHECK_GE(contents_scale, minimum_contents_scale);
57 70
58 PictureLayerTiling* this_tiling = FindTilingWithScale(contents_scale); 71 PictureLayerTiling* this_tiling = FindTilingWithScale(contents_scale);
59 if (!this_tiling) { 72 if (!this_tiling) {
60 scoped_ptr<PictureLayerTiling> new_tiling = 73 scoped_ptr<PictureLayerTiling> new_tiling = PictureLayerTiling::Create(
61 PictureLayerTiling::Create(contents_scale, layer_bounds, client_); 74 contents_scale, layer_bounds, client_, max_tiles_for_interest_area_,
75 skewport_target_time_in_seconds_,
76 skewport_extrapolation_limit_in_content_pixels_);
62 tilings_.push_back(new_tiling.Pass()); 77 tilings_.push_back(new_tiling.Pass());
63 this_tiling = tilings_.back(); 78 this_tiling = tilings_.back();
64 } 79 }
65 this_tiling->CloneTilesAndPropertiesFrom(*twin_tiling); 80 this_tiling->CloneTilesAndPropertiesFrom(*twin_tiling);
66 } 81 }
67 } 82 }
68 83
69 // For unshared tilings, invalidate tiles and update them to the new raster 84 // For unshared tilings, invalidate tiles and update them to the new raster
70 // source. 85 // source.
71 for (PictureLayerTiling* tiling : tilings_) { 86 for (PictureLayerTiling* tiling : tilings_) {
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 230
216 DCHECK(this_tiling->tile_size() == 231 DCHECK(this_tiling->tile_size() ==
217 client_->CalculateTileSize(this_tiling->tiling_size())) 232 client_->CalculateTileSize(this_tiling->tiling_size()))
218 << "tile_size: " << this_tiling->tile_size().ToString() 233 << "tile_size: " << this_tiling->tile_size().ToString()
219 << " tiling_size: " << this_tiling->tiling_size().ToString() 234 << " tiling_size: " << this_tiling->tiling_size().ToString()
220 << " CalculateTileSize: " 235 << " CalculateTileSize: "
221 << client_->CalculateTileSize(this_tiling->tiling_size()).ToString(); 236 << client_->CalculateTileSize(this_tiling->tiling_size()).ToString();
222 continue; 237 continue;
223 } 238 }
224 scoped_ptr<PictureLayerTiling> new_tiling = PictureLayerTiling::Create( 239 scoped_ptr<PictureLayerTiling> new_tiling = PictureLayerTiling::Create(
225 contents_scale, 240 contents_scale, new_layer_bounds, client_, max_tiles_for_interest_area_,
226 new_layer_bounds, 241 skewport_target_time_in_seconds_,
227 client_); 242 skewport_extrapolation_limit_in_content_pixels_);
228 new_tiling->set_resolution(other.tilings_[i]->resolution()); 243 new_tiling->set_resolution(other.tilings_[i]->resolution());
229 if (new_tiling->resolution() == HIGH_RESOLUTION) 244 if (new_tiling->resolution() == HIGH_RESOLUTION)
230 have_high_res_tiling = true; 245 have_high_res_tiling = true;
231 tilings_.push_back(new_tiling.Pass()); 246 tilings_.push_back(new_tiling.Pass());
232 } 247 }
233 tilings_.sort(LargestToSmallestScaleFunctor()); 248 tilings_.sort(LargestToSmallestScaleFunctor());
234 249
235 return have_high_res_tiling; 250 return have_high_res_tiling;
236 } 251 }
237 252
238 PictureLayerTiling* PictureLayerTilingSet::AddTiling( 253 PictureLayerTiling* PictureLayerTilingSet::AddTiling(
239 float contents_scale, 254 float contents_scale,
240 const gfx::Size& layer_bounds) { 255 const gfx::Size& layer_bounds) {
241 for (size_t i = 0; i < tilings_.size(); ++i) 256 for (size_t i = 0; i < tilings_.size(); ++i)
242 DCHECK_NE(tilings_[i]->contents_scale(), contents_scale); 257 DCHECK_NE(tilings_[i]->contents_scale(), contents_scale);
243 258
244 tilings_.push_back( 259 tilings_.push_back(PictureLayerTiling::Create(
245 PictureLayerTiling::Create(contents_scale, layer_bounds, client_)); 260 contents_scale, layer_bounds, client_, max_tiles_for_interest_area_,
261 skewport_target_time_in_seconds_,
262 skewport_extrapolation_limit_in_content_pixels_));
246 PictureLayerTiling* appended = tilings_.back(); 263 PictureLayerTiling* appended = tilings_.back();
247 264
248 tilings_.sort(LargestToSmallestScaleFunctor()); 265 tilings_.sort(LargestToSmallestScaleFunctor());
249 return appended; 266 return appended;
250 } 267 }
251 268
252 int PictureLayerTilingSet::NumHighResTilings() const { 269 int PictureLayerTilingSet::NumHighResTilings() const {
253 int num_high_res = 0; 270 int num_high_res = 0;
254 for (size_t i = 0; i < tilings_.size(); ++i) { 271 for (size_t i = 0; i < tilings_.size(); ++i) {
255 if (tilings_[i]->resolution() == HIGH_RESOLUTION) 272 if (tilings_[i]->resolution() == HIGH_RESOLUTION)
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 case LOWER_THAN_LOW_RES: 599 case LOWER_THAN_LOW_RES:
583 range = TilingRange(low_res_range.end, tilings_.size()); 600 range = TilingRange(low_res_range.end, tilings_.size());
584 break; 601 break;
585 } 602 }
586 603
587 DCHECK_LE(range.start, range.end); 604 DCHECK_LE(range.start, range.end);
588 return range; 605 return range;
589 } 606 }
590 607
591 } // namespace cc 608 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/picture_layer_tiling_set.h ('k') | cc/resources/picture_layer_tiling_set_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698