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

Side by Side Diff: cc/trees/property_tree_builder.cc

Issue 1688563002: cc :: Move some tracking of layer_property_changed to main thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months 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
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('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 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
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
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
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
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698