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

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

Issue 1736073002: cc: Move SyncedScrollOffset to scroll tree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add gyp dependency Created 4 years, 9 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
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 652 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 main_thread_scrolling_reasons != 663 main_thread_scrolling_reasons !=
664 data_from_ancestor.main_thread_scrolling_reasons; 664 data_from_ancestor.main_thread_scrolling_reasons;
665 bool requires_node = 665 bool requires_node =
666 scroll_node_uninheritable_criteria || 666 scroll_node_uninheritable_criteria ||
667 (main_thread_scrolling_reasons != 667 (main_thread_scrolling_reasons !=
668 MainThreadScrollingReason::kNotScrollingOnMain && 668 MainThreadScrollingReason::kNotScrollingOnMain &&
669 (has_different_main_thread_scrolling_reasons || 669 (has_different_main_thread_scrolling_reasons ||
670 data_from_ancestor 670 data_from_ancestor
671 .scroll_tree_parent_created_by_uninheritable_criteria)); 671 .scroll_tree_parent_created_by_uninheritable_criteria));
672 672
673 // Remove the entry from scroll_offset_map
674 if (!scrollable)
675 data_for_children->scroll_tree->scroll_offset_map().erase(layer->id());
676
673 if (!requires_node) { 677 if (!requires_node) {
674 data_for_children->scroll_tree_parent = parent_id; 678 data_for_children->scroll_tree_parent = parent_id;
675 } else { 679 } else {
676 ScrollNode node; 680 ScrollNode node;
677 node.owner_id = layer->id(); 681 node.owner_id = layer->id();
678 node.data.scrollable = scrollable; 682 node.data.scrollable = scrollable;
679 node.data.main_thread_scrolling_reasons = main_thread_scrolling_reasons; 683 node.data.main_thread_scrolling_reasons = main_thread_scrolling_reasons;
680 node.data.contains_non_fast_scrollable_region = 684 node.data.contains_non_fast_scrollable_region =
681 contains_non_fast_scrollable_region; 685 contains_non_fast_scrollable_region;
682 gfx::Size clip_bounds; 686 gfx::Size clip_bounds;
(...skipping 23 matching lines...) Expand all
706 node.data.element_id = layer->element_id(); 710 node.data.element_id = layer->element_id();
707 node.data.transform_id = 711 node.data.transform_id =
708 data_for_children->transform_tree_parent->transform_tree_index(); 712 data_for_children->transform_tree_parent->transform_tree_index();
709 713
710 data_for_children->scroll_tree_parent = 714 data_for_children->scroll_tree_parent =
711 data_for_children->scroll_tree->Insert(node, parent_id); 715 data_for_children->scroll_tree->Insert(node, parent_id);
712 data_for_children->main_thread_scrolling_reasons = 716 data_for_children->main_thread_scrolling_reasons =
713 node.data.main_thread_scrolling_reasons; 717 node.data.main_thread_scrolling_reasons;
714 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria = 718 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria =
715 scroll_node_uninheritable_criteria; 719 scroll_node_uninheritable_criteria;
720
721 if (node.data.scrollable) {
722 data_for_children->scroll_tree->synced_scroll_offset(layer->id())
723 ->PushFromMainThread(layer->scroll_offset());
724 }
716 } 725 }
717 726
718 layer->SetScrollTreeIndex(data_for_children->scroll_tree_parent); 727 layer->SetScrollTreeIndex(data_for_children->scroll_tree_parent);
719 } 728 }
720 729
721 template <typename LayerType> 730 template <typename LayerType>
722 void SetBackfaceVisibilityTransform(LayerType* layer, 731 void SetBackfaceVisibilityTransform(LayerType* layer,
723 bool created_transform_node) { 732 bool created_transform_node) {
724 const bool is_at_boundary_of_3d_rendering_context = 733 const bool is_at_boundary_of_3d_rendering_context =
725 IsAtBoundaryOf3dRenderingContext(layer); 734 IsAtBoundaryOf3dRenderingContext(layer);
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 const Layer* page_scale_layer, 942 const Layer* page_scale_layer,
934 const Layer* inner_viewport_scroll_layer, 943 const Layer* inner_viewport_scroll_layer,
935 const Layer* outer_viewport_scroll_layer, 944 const Layer* outer_viewport_scroll_layer,
936 const Layer* overscroll_elasticity_layer, 945 const Layer* overscroll_elasticity_layer,
937 const gfx::Vector2dF& elastic_overscroll, 946 const gfx::Vector2dF& elastic_overscroll,
938 float page_scale_factor, 947 float page_scale_factor,
939 float device_scale_factor, 948 float device_scale_factor,
940 const gfx::Rect& viewport, 949 const gfx::Rect& viewport,
941 const gfx::Transform& device_transform, 950 const gfx::Transform& device_transform,
942 PropertyTrees* property_trees) { 951 PropertyTrees* property_trees) {
952 property_trees->is_main_thread = true;
953 property_trees->is_active = false;
943 BuildPropertyTreesTopLevelInternal( 954 BuildPropertyTreesTopLevelInternal(
944 root_layer, page_scale_layer, inner_viewport_scroll_layer, 955 root_layer, page_scale_layer, inner_viewport_scroll_layer,
945 outer_viewport_scroll_layer, overscroll_elasticity_layer, 956 outer_viewport_scroll_layer, overscroll_elasticity_layer,
946 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 957 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
947 device_transform, property_trees); 958 device_transform, property_trees);
948 } 959 }
949 960
950 void PropertyTreeBuilder::BuildPropertyTrees( 961 void PropertyTreeBuilder::BuildPropertyTrees(
951 LayerImpl* root_layer, 962 LayerImpl* root_layer,
952 const LayerImpl* page_scale_layer, 963 const LayerImpl* page_scale_layer,
953 const LayerImpl* inner_viewport_scroll_layer, 964 const LayerImpl* inner_viewport_scroll_layer,
954 const LayerImpl* outer_viewport_scroll_layer, 965 const LayerImpl* outer_viewport_scroll_layer,
955 const LayerImpl* overscroll_elasticity_layer, 966 const LayerImpl* overscroll_elasticity_layer,
956 const gfx::Vector2dF& elastic_overscroll, 967 const gfx::Vector2dF& elastic_overscroll,
957 float page_scale_factor, 968 float page_scale_factor,
958 float device_scale_factor, 969 float device_scale_factor,
959 const gfx::Rect& viewport, 970 const gfx::Rect& viewport,
960 const gfx::Transform& device_transform, 971 const gfx::Transform& device_transform,
961 PropertyTrees* property_trees) { 972 PropertyTrees* property_trees) {
973 property_trees->is_main_thread = false;
974 property_trees->is_active = root_layer->IsActive();
962 BuildPropertyTreesTopLevelInternal( 975 BuildPropertyTreesTopLevelInternal(
963 root_layer, page_scale_layer, inner_viewport_scroll_layer, 976 root_layer, page_scale_layer, inner_viewport_scroll_layer,
964 outer_viewport_scroll_layer, overscroll_elasticity_layer, 977 outer_viewport_scroll_layer, overscroll_elasticity_layer,
965 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 978 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
966 device_transform, property_trees); 979 device_transform, property_trees);
967 } 980 }
968 981
969 } // namespace cc 982 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698