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 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 } else { | 455 } else { |
456 node.clip_type = ClipNode::ClipType::NONE; | 456 node.clip_type = ClipNode::ClipType::NONE; |
457 } | 457 } |
458 node.resets_clip = has_unclipped_surface; | 458 node.resets_clip = has_unclipped_surface; |
459 node.layers_are_clipped = layers_are_clipped; | 459 node.layers_are_clipped = layers_are_clipped; |
460 node.layers_are_clipped_when_surfaces_disabled = | 460 node.layers_are_clipped_when_surfaces_disabled = |
461 layers_are_clipped_when_surfaces_disabled; | 461 layers_are_clipped_when_surfaces_disabled; |
462 | 462 |
463 data_for_children->clip_tree_parent = | 463 data_for_children->clip_tree_parent = |
464 data_for_children->property_trees->clip_tree.Insert(node, parent_id); | 464 data_for_children->property_trees->clip_tree.Insert(node, parent_id); |
465 data_for_children->property_trees->clip_id_to_index_map[layer->id()] = | 465 data_for_children->property_trees |
| 466 ->layer_id_to_clip_node_index[layer->id()] = |
466 data_for_children->clip_tree_parent; | 467 data_for_children->clip_tree_parent; |
467 } | 468 } |
468 | 469 |
469 layer->SetClipTreeIndex(data_for_children->clip_tree_parent); | 470 layer->SetClipTreeIndex(data_for_children->clip_tree_parent); |
470 } | 471 } |
471 | 472 |
472 static inline int SortingContextId(Layer* layer) { | 473 static inline int SortingContextId(Layer* layer) { |
473 return layer->sorting_context_id(); | 474 return layer->sorting_context_id(); |
474 } | 475 } |
475 | 476 |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
626 layer->SetTransformTreeIndex(parent_index); | 627 layer->SetTransformTreeIndex(parent_index); |
627 return false; | 628 return false; |
628 } | 629 } |
629 | 630 |
630 data_for_children->property_trees->transform_tree.Insert(TransformNode(), | 631 data_for_children->property_trees->transform_tree.Insert(TransformNode(), |
631 parent_index); | 632 parent_index); |
632 | 633 |
633 TransformNode* node = | 634 TransformNode* node = |
634 data_for_children->property_trees->transform_tree.back(); | 635 data_for_children->property_trees->transform_tree.back(); |
635 layer->SetTransformTreeIndex(node->id); | 636 layer->SetTransformTreeIndex(node->id); |
636 data_for_children->property_trees->transform_id_to_index_map[layer->id()] = | 637 data_for_children->property_trees |
637 node->id; | 638 ->layer_id_to_transform_node_index[layer->id()] = node->id; |
638 | 639 |
639 // For animation subsystem purposes, if this layer has a compositor element | 640 // For animation subsystem purposes, if this layer has a compositor element |
640 // id, we build a map from that id to this transform node. | 641 // id, we build a map from that id to this transform node. |
641 if (layer->element_id()) { | 642 if (layer->element_id()) { |
642 data_for_children->property_trees | 643 data_for_children->property_trees |
643 ->element_id_to_transform_node_index[layer->element_id()] = node->id; | 644 ->element_id_to_transform_node_index[layer->element_id()] = node->id; |
644 } | 645 } |
645 | 646 |
646 node->scrolls = is_scrollable; | 647 node->scrolls = is_scrollable; |
647 node->should_be_snapped = is_snapped; | 648 node->should_be_snapped = is_snapped; |
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1098 // Root render surface acts the unbounded and untransformed to draw content | 1099 // Root render surface acts the unbounded and untransformed to draw content |
1099 // into. Transform node created from root layer (includes device scale | 1100 // into. Transform node created from root layer (includes device scale |
1100 // factor) and clip node created from root layer (include viewports) applies | 1101 // factor) and clip node created from root layer (include viewports) applies |
1101 // to root render surface's content, but not root render surface itself. | 1102 // to root render surface's content, but not root render surface itself. |
1102 node.transform_id = kRootPropertyTreeNodeId; | 1103 node.transform_id = kRootPropertyTreeNodeId; |
1103 node.clip_id = kViewportClipTreeNodeId; | 1104 node.clip_id = kViewportClipTreeNodeId; |
1104 } | 1105 } |
1105 int node_id = effect_tree.Insert(node, parent_id); | 1106 int node_id = effect_tree.Insert(node, parent_id); |
1106 data_for_children->effect_tree_parent = node_id; | 1107 data_for_children->effect_tree_parent = node_id; |
1107 layer->SetEffectTreeIndex(node_id); | 1108 layer->SetEffectTreeIndex(node_id); |
1108 data_for_children->property_trees->effect_id_to_index_map[layer->id()] = | 1109 data_for_children->property_trees |
1109 node_id; | 1110 ->layer_id_to_effect_node_index[layer->id()] = node_id; |
1110 | 1111 |
1111 // For animation subsystem purposes, if this layer has a compositor element | 1112 // For animation subsystem purposes, if this layer has a compositor element |
1112 // id, we build a map from that id to this effect node. | 1113 // id, we build a map from that id to this effect node. |
1113 if (layer->element_id()) { | 1114 if (layer->element_id()) { |
1114 data_for_children->property_trees | 1115 data_for_children->property_trees |
1115 ->element_id_to_effect_node_index[layer->element_id()] = node_id; | 1116 ->element_id_to_effect_node_index[layer->element_id()] = node_id; |
1116 } | 1117 } |
1117 | 1118 |
1118 std::vector<std::unique_ptr<CopyOutputRequest>> layer_copy_requests; | 1119 std::vector<std::unique_ptr<CopyOutputRequest>> layer_copy_requests; |
1119 TakeCopyRequests(layer, &layer_copy_requests); | 1120 TakeCopyRequests(layer, &layer_copy_requests); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1192 node.element_id = layer->element_id(); | 1193 node.element_id = layer->element_id(); |
1193 node.transform_id = | 1194 node.transform_id = |
1194 data_for_children->transform_tree_parent->transform_tree_index(); | 1195 data_for_children->transform_tree_parent->transform_tree_index(); |
1195 | 1196 |
1196 data_for_children->scroll_tree_parent = | 1197 data_for_children->scroll_tree_parent = |
1197 data_for_children->property_trees->scroll_tree.Insert(node, parent_id); | 1198 data_for_children->property_trees->scroll_tree.Insert(node, parent_id); |
1198 data_for_children->main_thread_scrolling_reasons = | 1199 data_for_children->main_thread_scrolling_reasons = |
1199 node.main_thread_scrolling_reasons; | 1200 node.main_thread_scrolling_reasons; |
1200 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria = | 1201 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria = |
1201 scroll_node_uninheritable_criteria; | 1202 scroll_node_uninheritable_criteria; |
1202 data_for_children->property_trees->scroll_id_to_index_map[layer->id()] = | 1203 data_for_children->property_trees |
| 1204 ->layer_id_to_scroll_node_index[layer->id()] = |
1203 data_for_children->scroll_tree_parent; | 1205 data_for_children->scroll_tree_parent; |
1204 | 1206 |
1205 if (node.scrollable) { | 1207 if (node.scrollable) { |
1206 data_for_children->property_trees->scroll_tree.SetBaseScrollOffset( | 1208 data_for_children->property_trees->scroll_tree.SetBaseScrollOffset( |
1207 layer->id(), layer->CurrentScrollOffset()); | 1209 layer->id(), layer->CurrentScrollOffset()); |
1208 } | 1210 } |
1209 } | 1211 } |
1210 | 1212 |
1211 layer->SetScrollTreeIndex(data_for_children->scroll_tree_parent); | 1213 layer->SetScrollTreeIndex(data_for_children->scroll_tree_parent); |
1212 } | 1214 } |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1537 color = SkColorSetA(color, 255); | 1539 color = SkColorSetA(color, 255); |
1538 BuildPropertyTreesTopLevelInternal( | 1540 BuildPropertyTreesTopLevelInternal( |
1539 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 1541 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
1540 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 1542 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
1541 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 1543 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
1542 device_transform, property_trees, color); | 1544 device_transform, property_trees, color); |
1543 property_trees->ResetCachedData(); | 1545 property_trees->ResetCachedData(); |
1544 } | 1546 } |
1545 | 1547 |
1546 } // namespace cc | 1548 } // namespace cc |
OLD | NEW |