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

Side by Side Diff: cc/picture_layer_tiling_set.cc

Issue 11574026: cc: Add some more infrastructure for two trees (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 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 | Annotate | Revision Log
« no previous file with comments | « cc/picture_layer_tiling_set.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/picture_layer_tiling_set.h" 5 #include "cc/picture_layer_tiling_set.h"
6 6
7 namespace cc { 7 namespace cc {
8 8
9 PictureLayerTilingSet::PictureLayerTilingSet( 9 PictureLayerTilingSet::PictureLayerTilingSet(
10 PictureLayerTilingClient * client) 10 PictureLayerTilingClient * client)
11 : client_(client) { 11 : client_(client) {
12 } 12 }
13 13
14 PictureLayerTilingSet::~PictureLayerTilingSet() { 14 PictureLayerTilingSet::~PictureLayerTilingSet() {
15 } 15 }
16 16
17 void PictureLayerTilingSet::CloneFrom(const PictureLayerTilingSet& other) { 17 void PictureLayerTilingSet::CloneAll(
18 const PictureLayerTilingSet& other,
19 const Region& invalidation) {
18 layer_bounds_ = other.layer_bounds_; 20 layer_bounds_ = other.layer_bounds_;
19 tilings_.clear(); 21 tilings_.clear();
20 tilings_.reserve(other.tilings_.size()); 22 tilings_.reserve(other.tilings_.size());
21 for (size_t i = 0; i < other.tilings_.size(); ++i) { 23 for (size_t i = 0; i < other.tilings_.size(); ++i) {
22 tilings_.append(other.tilings_[i]->Clone()); 24 tilings_.append(other.tilings_[i]->Clone());
25 tilings_.last()->Invalidate(invalidation);
23 } 26 }
24 } 27 }
25 28
29 void PictureLayerTilingSet::Clone(
30 const PictureLayerTiling* tiling,
31 const Region& invalidation) {
32
33 for (size_t i = 0; i < tilings_.size(); ++i)
34 DCHECK_NE(tilings_[i]->contents_scale(), tiling->contents_scale());
35
36 tilings_.append(tiling->Clone());
37 tilings_.last()->Invalidate(invalidation);
38 }
39
26 void PictureLayerTilingSet::SetLayerBounds(gfx::Size layer_bounds) { 40 void PictureLayerTilingSet::SetLayerBounds(gfx::Size layer_bounds) {
27 if (layer_bounds_ == layer_bounds) 41 if (layer_bounds_ == layer_bounds)
28 return; 42 return;
29 layer_bounds_ = layer_bounds; 43 layer_bounds_ = layer_bounds;
30 for (size_t i = 0; i < tilings_.size(); ++i) 44 for (size_t i = 0; i < tilings_.size(); ++i)
31 tilings_[i]->SetLayerBounds(layer_bounds); 45 tilings_[i]->SetLayerBounds(layer_bounds);
32 } 46 }
33 47
34 gfx::Size PictureLayerTilingSet::LayerBounds() const { 48 gfx::Size PictureLayerTilingSet::LayerBounds() const {
35 return layer_bounds_; 49 return layer_bounds_;
36 } 50 }
37 51
38 void PictureLayerTilingSet::Invalidate(const Region& invalidation) { 52 void PictureLayerTilingSet::Invalidate(const Region& invalidation) {
39 if (invalidation.IsEmpty()) 53 if (invalidation.IsEmpty())
40 return; 54 return;
41 55
42 for (size_t i = 0; i < tilings_.size(); ++i) 56 for (size_t i = 0; i < tilings_.size(); ++i)
43 tilings_[i]->Invalidate(invalidation); 57 tilings_[i]->Invalidate(invalidation);
44 } 58 }
45 59
46 void PictureLayerTilingSet::AddTiling(float contents_scale, 60 const PictureLayerTiling* PictureLayerTilingSet::AddTiling(
47 gfx::Size tile_size) { 61 float contents_scale,
62 gfx::Size tile_size) {
48 tilings_.append(PictureLayerTiling::Create(contents_scale, tile_size)); 63 tilings_.append(PictureLayerTiling::Create(contents_scale, tile_size));
49 tilings_.last()->SetClient(client_); 64 tilings_.last()->SetClient(client_);
50 tilings_.last()->SetLayerBounds(layer_bounds_); 65 tilings_.last()->SetLayerBounds(layer_bounds_);
66 return tilings_.last();
51 } 67 }
52 68
53 void PictureLayerTilingSet::Reset() { 69 void PictureLayerTilingSet::Reset() {
54 for (size_t i = 0; i < tilings_.size(); ++i) 70 for (size_t i = 0; i < tilings_.size(); ++i)
55 tilings_[i]->Reset(); 71 tilings_[i]->Reset();
56 } 72 }
57 73
58 PictureLayerTilingSet::Iterator::Iterator(PictureLayerTilingSet* set, 74 PictureLayerTilingSet::Iterator::Iterator(PictureLayerTilingSet* set,
59 float contents_scale, 75 float contents_scale,
60 gfx::Rect content_rect) 76 gfx::Rect content_rect)
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 const gfx::Transform& current_screen_transform, 188 const gfx::Transform& current_screen_transform,
173 double time_delta) { 189 double time_delta) {
174 for (size_t i = 0; i < tilings_.size(); ++i) { 190 for (size_t i = 0; i < tilings_.size(); ++i) {
175 tilings_[i]->UpdateTilePriorities( 191 tilings_[i]->UpdateTilePriorities(
176 device_viewport, layer_content_scale_x, layer_content_scale_y, 192 device_viewport, layer_content_scale_x, layer_content_scale_y,
177 last_screen_transform, current_screen_transform, time_delta); 193 last_screen_transform, current_screen_transform, time_delta);
178 } 194 }
179 } 195 }
180 196
181 } // namespace cc 197 } // namespace cc
OLDNEW
« no previous file with comments | « cc/picture_layer_tiling_set.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698