Chromium Code Reviews| Index: cc/layers/layer_impl.cc |
| diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc |
| index dfd03649b9473dd62d7f8a481a62ea5ac9d4d84c..24deb5f1e5d11bb18b3579e47b5fc40912fefc3c 100644 |
| --- a/cc/layers/layer_impl.cc |
| +++ b/cc/layers/layer_impl.cc |
| @@ -1570,6 +1570,26 @@ bool LayerImpl::IsHidden() const { |
| return node->data.screen_space_opacity == 0.f; |
| } |
| +bool LayerImpl::InsideReplica() const { |
| + // There are very few render targets so this should be cheap to do for each |
| + // layer instead of something more complicated. |
| + EffectTree& effect_tree = layer_tree_impl_->property_trees()->effect_tree; |
| + EffectNode* node = effect_tree.Node(effect_tree_index_); |
| + bool inside_replica = false; |
| + |
| + while (node && !inside_replica) { |
| + EffectNode* target_node = effect_tree.Node(node->data.target_id); |
| + LayerImpl* target_layer = |
| + layer_tree_impl()->LayerById(target_node->owner_id); |
| + DCHECK(target_layer); |
| + if (target_layer->has_replica()) |
| + inside_replica = true; |
|
ajuma
2016/03/29 13:41:10
We can early-return here.
jaydasika
2016/03/29 16:03:45
Done.
|
| + node = effect_tree.parent(target_node); |
| + } |
| + |
| + return inside_replica; |
| +} |
| + |
| float LayerImpl::GetIdealContentsScale() const { |
| float page_scale = IsAffectedByPageScale() |
| ? layer_tree_impl()->current_page_scale_factor() |