| OLD | NEW |
| 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 Loading... |
| 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 |
| OLD | NEW |