OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/trees/property_tree_builder.h" | 5 #include "cc/trees/property_tree_builder.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <set> | 10 #include <set> |
(...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
723 // The backface of a layer that uses local transform for backface visibility | 723 // The backface of a layer that uses local transform for backface visibility |
724 // is not visible when it does not create a transform node as its local | 724 // is not visible when it does not create a transform node as its local |
725 // transform is identity or 2d translation and is not animating. | 725 // transform is identity or 2d translation and is not animating. |
726 else if (use_local_transform && !created_transform_node) | 726 else if (use_local_transform && !created_transform_node) |
727 layer->SetShouldCheckBackfaceVisibility(false); | 727 layer->SetShouldCheckBackfaceVisibility(false); |
728 else | 728 else |
729 layer->SetShouldCheckBackfaceVisibility(true); | 729 layer->SetShouldCheckBackfaceVisibility(true); |
730 } | 730 } |
731 } | 731 } |
732 | 732 |
| 733 static void SetLayerPropertyChangedForChild(Layer* parent, Layer* child) { |
| 734 if (parent->subtree_property_changed()) |
| 735 child->SetSubtreePropertyChanged(); |
| 736 } |
| 737 |
| 738 static void SetLayerPropertyChangedForChild(LayerImpl* parent, |
| 739 LayerImpl* child) {} |
| 740 |
733 template <typename LayerType> | 741 template <typename LayerType> |
734 void BuildPropertyTreesInternal( | 742 void BuildPropertyTreesInternal( |
735 LayerType* layer, | 743 LayerType* layer, |
736 const DataForRecursion<LayerType>& data_from_parent, | 744 const DataForRecursion<LayerType>& data_from_parent, |
737 DataForRecursionFromChild<LayerType>* data_to_parent) { | 745 DataForRecursionFromChild<LayerType>* data_to_parent) { |
738 layer->set_property_tree_sequence_number(data_from_parent.sequence_number); | 746 layer->set_property_tree_sequence_number(data_from_parent.sequence_number); |
739 if (layer->mask_layer()) | 747 if (layer->mask_layer()) |
740 layer->mask_layer()->set_property_tree_sequence_number( | 748 layer->mask_layer()->set_property_tree_sequence_number( |
741 data_from_parent.sequence_number); | 749 data_from_parent.sequence_number); |
742 | 750 |
(...skipping 12 matching lines...) Expand all Loading... |
755 bool created_transform_node = AddTransformNodeIfNeeded( | 763 bool created_transform_node = AddTransformNodeIfNeeded( |
756 data_from_parent, layer, created_render_surface, &data_for_children); | 764 data_from_parent, layer, created_render_surface, &data_for_children); |
757 AddClipNodeIfNeeded(data_from_parent, layer, created_render_surface, | 765 AddClipNodeIfNeeded(data_from_parent, layer, created_render_surface, |
758 created_transform_node, &data_for_children); | 766 created_transform_node, &data_for_children); |
759 | 767 |
760 AddScrollNodeIfNeeded(data_from_parent, layer, &data_for_children); | 768 AddScrollNodeIfNeeded(data_from_parent, layer, &data_for_children); |
761 | 769 |
762 SetBackfaceVisibilityTransform(layer, created_transform_node); | 770 SetBackfaceVisibilityTransform(layer, created_transform_node); |
763 | 771 |
764 for (size_t i = 0; i < layer->children().size(); ++i) { | 772 for (size_t i = 0; i < layer->children().size(); ++i) { |
| 773 SetLayerPropertyChangedForChild(layer, layer->child_at(i)); |
765 if (!layer->child_at(i)->scroll_parent()) { | 774 if (!layer->child_at(i)->scroll_parent()) { |
766 DataForRecursionFromChild<LayerType> data_from_child; | 775 DataForRecursionFromChild<LayerType> data_from_child; |
767 BuildPropertyTreesInternal(layer->child_at(i), data_for_children, | 776 BuildPropertyTreesInternal(layer->child_at(i), data_for_children, |
768 &data_from_child); | 777 &data_from_child); |
769 data_to_parent->Merge(data_from_child); | 778 data_to_parent->Merge(data_from_child); |
770 } else { | 779 } else { |
771 // The child should be included in its scroll parent's list of scroll | 780 // The child should be included in its scroll parent's list of scroll |
772 // children. | 781 // children. |
773 DCHECK(layer->child_at(i)->scroll_parent()->scroll_children()->count( | 782 DCHECK(layer->child_at(i)->scroll_parent()->scroll_children()->count( |
774 layer->child_at(i))); | 783 layer->child_at(i))); |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
926 const gfx::Transform& device_transform, | 935 const gfx::Transform& device_transform, |
927 PropertyTrees* property_trees) { | 936 PropertyTrees* property_trees) { |
928 BuildPropertyTreesTopLevelInternal( | 937 BuildPropertyTreesTopLevelInternal( |
929 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 938 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
930 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 939 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
931 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 940 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
932 device_transform, property_trees); | 941 device_transform, property_trees); |
933 } | 942 } |
934 | 943 |
935 } // namespace cc | 944 } // namespace cc |
OLD | NEW |