| 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 1139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |