OLD | NEW |
---|---|
1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 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/layers/layer.h" | 5 #include "cc/layers/layer.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/atomic_sequence_num.h" | 9 #include "base/atomic_sequence_num.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
247 if (parent_should_know_need_push_properties()) { | 247 if (parent_should_know_need_push_properties()) { |
248 if (parent_) | 248 if (parent_) |
249 parent_->RemoveDependentNeedsPushProperties(); | 249 parent_->RemoveDependentNeedsPushProperties(); |
250 if (layer) | 250 if (layer) |
251 layer->AddDependentNeedsPushProperties(); | 251 layer->AddDependentNeedsPushProperties(); |
252 } | 252 } |
253 | 253 |
254 parent_ = layer; | 254 parent_ = layer; |
255 SetLayerTreeHost(parent_ ? parent_->layer_tree_host() : nullptr); | 255 SetLayerTreeHost(parent_ ? parent_->layer_tree_host() : nullptr); |
256 | 256 |
257 if (!layer) | |
258 InvalidatePropertyTreeIndices(); | |
ajuma
2015/05/20 13:54:03
I'm a bit worried about the perf impact of this. I
| |
259 | |
257 if (!layer_tree_host_) | 260 if (!layer_tree_host_) |
258 return; | 261 return; |
262 | |
263 layer_tree_host_->property_trees()->needs_rebuild = true; | |
264 | |
259 const LayerTreeSettings& settings = layer_tree_host_->settings(); | 265 const LayerTreeSettings& settings = layer_tree_host_->settings(); |
260 if (!settings.layer_transforms_should_scale_layer_contents) | 266 if (!settings.layer_transforms_should_scale_layer_contents) |
261 return; | 267 return; |
262 | 268 |
263 reset_raster_scale_to_unknown(); | 269 reset_raster_scale_to_unknown(); |
264 if (mask_layer_.get()) | 270 if (mask_layer_.get()) |
265 mask_layer_->reset_raster_scale_to_unknown(); | 271 mask_layer_->reset_raster_scale_to_unknown(); |
266 if (replica_layer_.get() && replica_layer_->mask_layer_.get()) | 272 if (replica_layer_.get() && replica_layer_->mask_layer_.get()) |
267 replica_layer_->mask_layer_->reset_raster_scale_to_unknown(); | 273 replica_layer_->mask_layer_->reset_raster_scale_to_unknown(); |
268 } | 274 } |
(...skipping 1244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1513 } | 1519 } |
1514 | 1520 |
1515 void Layer::DidBeginTracing() { | 1521 void Layer::DidBeginTracing() { |
1516 // We'll be dumping layer trees as part of trace, so make sure | 1522 // We'll be dumping layer trees as part of trace, so make sure |
1517 // PushPropertiesTo() propagates layer debug info to the impl | 1523 // PushPropertiesTo() propagates layer debug info to the impl |
1518 // side -- otherwise this won't happen for the the layers that | 1524 // side -- otherwise this won't happen for the the layers that |
1519 // remain unchanged since tracing started. | 1525 // remain unchanged since tracing started. |
1520 SetNeedsPushProperties(); | 1526 SetNeedsPushProperties(); |
1521 } | 1527 } |
1522 | 1528 |
1529 void Layer::InvalidatePropertyTreeIndices() { | |
1530 transform_tree_index_ = -1; | |
1531 clip_tree_index_ = -1; | |
1532 opacity_tree_index_ = -1; | |
1533 | |
1534 for (size_t i = 0; i < children().size(); ++i) { | |
1535 Layer* child_layer = child_at(i); | |
1536 child_layer->InvalidatePropertyTreeIndices(); | |
1537 } | |
1538 } | |
1539 | |
1523 } // namespace cc | 1540 } // namespace cc |
OLD | NEW |