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 23 matching lines...) Expand all Loading... | |
34 ScrollTree* scroll_tree; | 34 ScrollTree* scroll_tree; |
35 LayerType* transform_tree_parent; | 35 LayerType* transform_tree_parent; |
36 LayerType* transform_fixed_parent; | 36 LayerType* transform_fixed_parent; |
37 int render_target; | 37 int render_target; |
38 int clip_tree_parent; | 38 int clip_tree_parent; |
39 int effect_tree_parent; | 39 int effect_tree_parent; |
40 int scroll_tree_parent; | 40 int scroll_tree_parent; |
41 const LayerType* page_scale_layer; | 41 const LayerType* page_scale_layer; |
42 const LayerType* inner_viewport_scroll_layer; | 42 const LayerType* inner_viewport_scroll_layer; |
43 const LayerType* outer_viewport_scroll_layer; | 43 const LayerType* outer_viewport_scroll_layer; |
44 const LayerType* inner_viewport_container_layer; | |
45 const LayerType* outer_viewport_container_layer; | |
44 const LayerType* overscroll_elasticity_layer; | 46 const LayerType* overscroll_elasticity_layer; |
45 gfx::Vector2dF elastic_overscroll; | 47 gfx::Vector2dF elastic_overscroll; |
46 float page_scale_factor; | 48 float page_scale_factor; |
47 bool in_subtree_of_page_scale_layer; | 49 bool in_subtree_of_page_scale_layer; |
48 bool affected_by_inner_viewport_bounds_delta; | 50 bool affected_by_inner_viewport_bounds_delta; |
49 bool affected_by_outer_viewport_bounds_delta; | 51 bool affected_by_outer_viewport_bounds_delta; |
50 bool should_flatten; | 52 bool should_flatten; |
51 bool target_is_clipped; | 53 bool target_is_clipped; |
52 bool is_hidden; | 54 bool is_hidden; |
53 uint32_t main_thread_scrolling_reasons; | 55 uint32_t main_thread_scrolling_reasons; |
(...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
673 | 675 |
674 if (!requires_node) { | 676 if (!requires_node) { |
675 data_for_children->scroll_tree_parent = parent_id; | 677 data_for_children->scroll_tree_parent = parent_id; |
676 } else { | 678 } else { |
677 ScrollNode node; | 679 ScrollNode node; |
678 node.owner_id = layer->id(); | 680 node.owner_id = layer->id(); |
679 node.data.scrollable = scrollable; | 681 node.data.scrollable = scrollable; |
680 node.data.main_thread_scrolling_reasons = main_thread_scrolling_reasons; | 682 node.data.main_thread_scrolling_reasons = main_thread_scrolling_reasons; |
681 node.data.contains_non_fast_scrollable_region = | 683 node.data.contains_non_fast_scrollable_region = |
682 contains_non_fast_scrollable_region; | 684 contains_non_fast_scrollable_region; |
683 node.data.transform_id = | 685 gfx::Size clip_bounds; |
684 data_for_children->transform_tree_parent->transform_tree_index(); | 686 if (layer->scroll_clip_layer()) { |
687 clip_bounds = layer->scroll_clip_layer()->bounds(); | |
688 clip_bounds.Enlarge(-layer->scroll_clip_layer()->bounds_delta().x(), | |
689 -layer->scroll_clip_layer()->bounds_delta().y()); | |
690 if (layer->scroll_clip_layer()->transform_tree_index() != | |
691 kInvalidPropertyTreeNodeId) { | |
692 node.data.envelope_page_scale_layer_with_clip_layer = | |
693 !data_from_ancestor.transform_tree | |
694 ->Node(layer->scroll_clip_layer()->transform_tree_index()) | |
695 ->data.in_subtree_of_page_scale_layer && | |
696 data_from_ancestor.in_subtree_of_page_scale_layer; | |
697 } | |
698 } | |
699 node.data.scroll_clip_layer_bounds = clip_bounds; | |
700 | |
701 node.data.is_inner_viewport_scroll_layer = | |
702 layer == data_from_ancestor.inner_viewport_scroll_layer; | |
703 node.data.is_outer_viewport_scroll_layer = | |
704 layer == data_from_ancestor.outer_viewport_scroll_layer; | |
705 node.data.is_inner_viewport_container_layer = | |
706 layer == data_from_ancestor.inner_viewport_container_layer; | |
707 node.data.is_outer_viewport_container_layer = | |
708 layer == data_from_ancestor.outer_viewport_container_layer; | |
709 | |
710 node.data.bounds = layer->bounds(); | |
711 node.data.bounds.Enlarge(-layer->bounds_delta().x(), | |
712 -layer->bounds_delta().y()); | |
ajuma
2016/02/09 16:27:13
Since bounds_delta is always 0 on Layer, the only
| |
713 | |
685 data_for_children->scroll_tree_parent = | 714 data_for_children->scroll_tree_parent = |
686 data_for_children->scroll_tree->Insert(node, parent_id); | 715 data_for_children->scroll_tree->Insert(node, parent_id); |
687 data_for_children->main_thread_scrolling_reasons = | 716 data_for_children->main_thread_scrolling_reasons = |
688 node.data.main_thread_scrolling_reasons; | 717 node.data.main_thread_scrolling_reasons; |
689 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria = | 718 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria = |
690 scroll_node_uninheritable_criteria; | 719 scroll_node_uninheritable_criteria; |
691 } | 720 } |
692 | 721 |
693 layer->SetScrollTreeIndex(data_for_children->scroll_tree_parent); | 722 layer->SetScrollTreeIndex(data_for_children->scroll_tree_parent); |
694 } | 723 } |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
841 data_for_recursion.scroll_tree = &property_trees->scroll_tree; | 870 data_for_recursion.scroll_tree = &property_trees->scroll_tree; |
842 data_for_recursion.transform_tree_parent = nullptr; | 871 data_for_recursion.transform_tree_parent = nullptr; |
843 data_for_recursion.transform_fixed_parent = nullptr; | 872 data_for_recursion.transform_fixed_parent = nullptr; |
844 data_for_recursion.render_target = kRootPropertyTreeNodeId; | 873 data_for_recursion.render_target = kRootPropertyTreeNodeId; |
845 data_for_recursion.clip_tree_parent = kRootPropertyTreeNodeId; | 874 data_for_recursion.clip_tree_parent = kRootPropertyTreeNodeId; |
846 data_for_recursion.effect_tree_parent = kInvalidPropertyTreeNodeId; | 875 data_for_recursion.effect_tree_parent = kInvalidPropertyTreeNodeId; |
847 data_for_recursion.scroll_tree_parent = kRootPropertyTreeNodeId; | 876 data_for_recursion.scroll_tree_parent = kRootPropertyTreeNodeId; |
848 data_for_recursion.page_scale_layer = page_scale_layer; | 877 data_for_recursion.page_scale_layer = page_scale_layer; |
849 data_for_recursion.inner_viewport_scroll_layer = inner_viewport_scroll_layer; | 878 data_for_recursion.inner_viewport_scroll_layer = inner_viewport_scroll_layer; |
850 data_for_recursion.outer_viewport_scroll_layer = outer_viewport_scroll_layer; | 879 data_for_recursion.outer_viewport_scroll_layer = outer_viewport_scroll_layer; |
880 data_for_recursion.inner_viewport_container_layer = | |
881 inner_viewport_scroll_layer | |
882 ? inner_viewport_scroll_layer->scroll_clip_layer() | |
883 : nullptr; | |
884 data_for_recursion.outer_viewport_container_layer = | |
885 outer_viewport_scroll_layer | |
886 ? outer_viewport_scroll_layer->scroll_clip_layer() | |
887 : nullptr; | |
851 data_for_recursion.overscroll_elasticity_layer = overscroll_elasticity_layer; | 888 data_for_recursion.overscroll_elasticity_layer = overscroll_elasticity_layer; |
852 data_for_recursion.elastic_overscroll = elastic_overscroll; | 889 data_for_recursion.elastic_overscroll = elastic_overscroll; |
853 data_for_recursion.page_scale_factor = page_scale_factor; | 890 data_for_recursion.page_scale_factor = page_scale_factor; |
854 data_for_recursion.in_subtree_of_page_scale_layer = false; | 891 data_for_recursion.in_subtree_of_page_scale_layer = false; |
855 data_for_recursion.affected_by_inner_viewport_bounds_delta = false; | 892 data_for_recursion.affected_by_inner_viewport_bounds_delta = false; |
856 data_for_recursion.affected_by_outer_viewport_bounds_delta = false; | 893 data_for_recursion.affected_by_outer_viewport_bounds_delta = false; |
857 data_for_recursion.should_flatten = false; | 894 data_for_recursion.should_flatten = false; |
858 data_for_recursion.target_is_clipped = false; | 895 data_for_recursion.target_is_clipped = false; |
859 data_for_recursion.is_hidden = false; | 896 data_for_recursion.is_hidden = false; |
860 data_for_recursion.main_thread_scrolling_reasons = | 897 data_for_recursion.main_thread_scrolling_reasons = |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
926 const gfx::Transform& device_transform, | 963 const gfx::Transform& device_transform, |
927 PropertyTrees* property_trees) { | 964 PropertyTrees* property_trees) { |
928 BuildPropertyTreesTopLevelInternal( | 965 BuildPropertyTreesTopLevelInternal( |
929 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 966 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
930 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 967 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
931 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 968 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
932 device_transform, property_trees); | 969 device_transform, property_trees); |
933 } | 970 } |
934 | 971 |
935 } // namespace cc | 972 } // namespace cc |
OLD | NEW |