| 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()); |
| 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 |