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

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

Issue 2623313003: Add map from element id to scroll node index. (Closed)
Patch Set: Created 3 years, 11 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
« cc/trees/layer_tree_host_impl.cc ('K') | « cc/trees/property_tree.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 1139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 main_thread_scrolling_reasons != 1150 main_thread_scrolling_reasons !=
1151 data_from_ancestor.main_thread_scrolling_reasons; 1151 data_from_ancestor.main_thread_scrolling_reasons;
1152 bool requires_node = 1152 bool requires_node =
1153 scroll_node_uninheritable_criteria || 1153 scroll_node_uninheritable_criteria ||
1154 (main_thread_scrolling_reasons != 1154 (main_thread_scrolling_reasons !=
1155 MainThreadScrollingReason::kNotScrollingOnMain && 1155 MainThreadScrollingReason::kNotScrollingOnMain &&
1156 (has_different_main_thread_scrolling_reasons || 1156 (has_different_main_thread_scrolling_reasons ||
1157 data_from_ancestor 1157 data_from_ancestor
1158 .scroll_tree_parent_created_by_uninheritable_criteria)); 1158 .scroll_tree_parent_created_by_uninheritable_criteria));
1159 1159
1160 int node_id;
1160 if (!requires_node) { 1161 if (!requires_node) {
1161 data_for_children->scroll_tree_parent = parent_id; 1162 node_id = parent_id;
1163 data_for_children->scroll_tree_parent = node_id;
1162 } else { 1164 } else {
1163 ScrollNode node; 1165 ScrollNode node;
1164 node.owning_layer_id = layer->id(); 1166 node.owning_layer_id = layer->id();
1165 node.scrollable = scrollable; 1167 node.scrollable = scrollable;
1166 node.main_thread_scrolling_reasons = main_thread_scrolling_reasons; 1168 node.main_thread_scrolling_reasons = main_thread_scrolling_reasons;
1167 node.contains_non_fast_scrollable_region = 1169 node.contains_non_fast_scrollable_region =
1168 contains_non_fast_scrollable_region; 1170 contains_non_fast_scrollable_region;
1169 gfx::Size clip_bounds; 1171 gfx::Size clip_bounds;
1170 if (layer->scroll_clip_layer()) { 1172 if (layer->scroll_clip_layer()) {
1171 clip_bounds = layer->scroll_clip_layer()->bounds(); 1173 clip_bounds = layer->scroll_clip_layer()->bounds();
(...skipping 14 matching lines...) Expand all
1186 1188
1187 node.bounds = layer->bounds(); 1189 node.bounds = layer->bounds();
1188 node.offset_to_transform_parent = layer->offset_to_transform_parent(); 1190 node.offset_to_transform_parent = layer->offset_to_transform_parent();
1189 node.should_flatten = layer->should_flatten_transform_from_property_tree(); 1191 node.should_flatten = layer->should_flatten_transform_from_property_tree();
1190 node.user_scrollable_horizontal = layer->user_scrollable_horizontal(); 1192 node.user_scrollable_horizontal = layer->user_scrollable_horizontal();
1191 node.user_scrollable_vertical = layer->user_scrollable_vertical(); 1193 node.user_scrollable_vertical = layer->user_scrollable_vertical();
1192 node.element_id = layer->element_id(); 1194 node.element_id = layer->element_id();
1193 node.transform_id = 1195 node.transform_id =
1194 data_for_children->transform_tree_parent->transform_tree_index(); 1196 data_for_children->transform_tree_parent->transform_tree_index();
1195 1197
1196 data_for_children->scroll_tree_parent = 1198 node_id =
1197 data_for_children->property_trees->scroll_tree.Insert(node, parent_id); 1199 data_for_children->property_trees->scroll_tree.Insert(node, parent_id);
1200 data_for_children->scroll_tree_parent = node_id;
1198 data_for_children->main_thread_scrolling_reasons = 1201 data_for_children->main_thread_scrolling_reasons =
1199 node.main_thread_scrolling_reasons; 1202 node.main_thread_scrolling_reasons;
1200 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria = 1203 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria =
1201 scroll_node_uninheritable_criteria; 1204 scroll_node_uninheritable_criteria;
1202 data_for_children->property_trees->scroll_id_to_index_map[layer->id()] = 1205 data_for_children->property_trees->scroll_id_to_index_map[layer->id()] =
1203 data_for_children->scroll_tree_parent; 1206 node_id;
1207 // For animation subsystem purposes, if this layer has a compositor element
1208 // id, we build a map from that id to this scroll node.
1209 if (layer->element_id()) {
1210 data_for_children->property_trees
1211 ->element_id_to_scroll_node_index[layer->element_id()] = node_id;
1212 }
1204 1213
1205 if (node.scrollable) { 1214 if (node.scrollable) {
1206 data_for_children->property_trees->scroll_tree.SetBaseScrollOffset( 1215 data_for_children->property_trees->scroll_tree.SetBaseScrollOffset(
1207 layer->id(), layer->CurrentScrollOffset()); 1216 layer->id(), layer->CurrentScrollOffset());
1208 } 1217 }
1209 } 1218 }
1210 1219
1211 layer->SetScrollTreeIndex(data_for_children->scroll_tree_parent); 1220 layer->SetScrollTreeIndex(node_id);
1212 } 1221 }
1213 1222
1214 template <typename LayerType> 1223 template <typename LayerType>
1215 void SetBackfaceVisibilityTransform(LayerType* layer, 1224 void SetBackfaceVisibilityTransform(LayerType* layer,
1216 bool created_transform_node) { 1225 bool created_transform_node) {
1217 const bool is_at_boundary_of_3d_rendering_context = 1226 const bool is_at_boundary_of_3d_rendering_context =
1218 IsAtBoundaryOf3dRenderingContext(layer); 1227 IsAtBoundaryOf3dRenderingContext(layer);
1219 if (layer->use_parent_backface_visibility()) { 1228 if (layer->use_parent_backface_visibility()) {
1220 DCHECK(!is_at_boundary_of_3d_rendering_context); 1229 DCHECK(!is_at_boundary_of_3d_rendering_context);
1221 DCHECK(Parent(layer)); 1230 DCHECK(Parent(layer));
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
1537 color = SkColorSetA(color, 255); 1546 color = SkColorSetA(color, 255);
1538 BuildPropertyTreesTopLevelInternal( 1547 BuildPropertyTreesTopLevelInternal(
1539 root_layer, page_scale_layer, inner_viewport_scroll_layer, 1548 root_layer, page_scale_layer, inner_viewport_scroll_layer,
1540 outer_viewport_scroll_layer, overscroll_elasticity_layer, 1549 outer_viewport_scroll_layer, overscroll_elasticity_layer,
1541 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 1550 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
1542 device_transform, property_trees, color); 1551 device_transform, property_trees, color);
1543 property_trees->ResetCachedData(); 1552 property_trees->ResetCachedData();
1544 } 1553 }
1545 1554
1546 } // namespace cc 1555 } // namespace cc
OLDNEW
« cc/trees/layer_tree_host_impl.cc ('K') | « cc/trees/property_tree.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698