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 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
451 } else { | 451 } else { |
452 node.clip_type = ClipNode::ClipType::NONE; | 452 node.clip_type = ClipNode::ClipType::NONE; |
453 } | 453 } |
454 node.resets_clip = has_unclipped_surface; | 454 node.resets_clip = has_unclipped_surface; |
455 node.layers_are_clipped = layers_are_clipped; | 455 node.layers_are_clipped = layers_are_clipped; |
456 node.layers_are_clipped_when_surfaces_disabled = | 456 node.layers_are_clipped_when_surfaces_disabled = |
457 layers_are_clipped_when_surfaces_disabled; | 457 layers_are_clipped_when_surfaces_disabled; |
458 | 458 |
459 data_for_children->clip_tree_parent = | 459 data_for_children->clip_tree_parent = |
460 data_for_children->property_trees->clip_tree.Insert(node, parent_id); | 460 data_for_children->property_trees->clip_tree.Insert(node, parent_id); |
461 data_for_children->property_trees | 461 data_for_children->property_trees->clip_tree.InsertOwningIdForNode( |
462 ->layer_id_to_clip_node_index[layer->id()] = | 462 data_for_children->property_trees->clip_tree.back(), layer->id()); |
463 data_for_children->clip_tree_parent; | |
464 } | 463 } |
465 | 464 |
466 layer->SetClipTreeIndex(data_for_children->clip_tree_parent); | 465 layer->SetClipTreeIndex(data_for_children->clip_tree_parent); |
467 } | 466 } |
468 | 467 |
469 static inline int SortingContextId(Layer* layer) { | 468 static inline int SortingContextId(Layer* layer) { |
470 return layer->sorting_context_id(); | 469 return layer->sorting_context_id(); |
471 } | 470 } |
472 | 471 |
473 static inline int SortingContextId(LayerImpl* layer) { | 472 static inline int SortingContextId(LayerImpl* layer) { |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 layer->SetTransformTreeIndex(parent_index); | 622 layer->SetTransformTreeIndex(parent_index); |
624 return false; | 623 return false; |
625 } | 624 } |
626 | 625 |
627 data_for_children->property_trees->transform_tree.Insert(TransformNode(), | 626 data_for_children->property_trees->transform_tree.Insert(TransformNode(), |
628 parent_index); | 627 parent_index); |
629 | 628 |
630 TransformNode* node = | 629 TransformNode* node = |
631 data_for_children->property_trees->transform_tree.back(); | 630 data_for_children->property_trees->transform_tree.back(); |
632 layer->SetTransformTreeIndex(node->id); | 631 layer->SetTransformTreeIndex(node->id); |
633 data_for_children->property_trees | 632 data_for_children->property_trees->transform_tree.InsertOwningIdForNode( |
634 ->layer_id_to_transform_node_index[layer->id()] = node->id; | 633 node, layer->id()); |
635 | 634 |
636 // For animation subsystem purposes, if this layer has a compositor element | 635 // For animation subsystem purposes, if this layer has a compositor element |
637 // id, we build a map from that id to this transform node. | 636 // id, we build a map from that id to this transform node. |
638 if (layer->element_id()) { | 637 if (layer->element_id()) { |
639 data_for_children->property_trees | 638 data_for_children->property_trees |
640 ->element_id_to_transform_node_index[layer->element_id()] = node->id; | 639 ->element_id_to_transform_node_index[layer->element_id()] = node->id; |
641 } | 640 } |
642 | 641 |
643 node->scrolls = is_scrollable; | 642 node->scrolls = is_scrollable; |
644 node->should_be_snapped = is_snapped; | 643 node->should_be_snapped = is_snapped; |
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1095 // Root render surface acts the unbounded and untransformed to draw content | 1094 // Root render surface acts the unbounded and untransformed to draw content |
1096 // into. Transform node created from root layer (includes device scale | 1095 // into. Transform node created from root layer (includes device scale |
1097 // factor) and clip node created from root layer (include viewports) applies | 1096 // factor) and clip node created from root layer (include viewports) applies |
1098 // to root render surface's content, but not root render surface itself. | 1097 // to root render surface's content, but not root render surface itself. |
1099 node.transform_id = TransformTree::kRootNodeId; | 1098 node.transform_id = TransformTree::kRootNodeId; |
1100 node.clip_id = ClipTree::kViewportNodeId; | 1099 node.clip_id = ClipTree::kViewportNodeId; |
1101 } | 1100 } |
1102 int node_id = effect_tree.Insert(node, parent_id); | 1101 int node_id = effect_tree.Insert(node, parent_id); |
1103 data_for_children->effect_tree_parent = node_id; | 1102 data_for_children->effect_tree_parent = node_id; |
1104 layer->SetEffectTreeIndex(node_id); | 1103 layer->SetEffectTreeIndex(node_id); |
1105 data_for_children->property_trees | 1104 data_for_children->property_trees->effect_tree.InsertOwningIdForNode( |
1106 ->layer_id_to_effect_node_index[layer->id()] = node_id; | 1105 effect_tree.back(), layer->id()); |
1107 | 1106 |
1108 // For animation subsystem purposes, if this layer has a compositor element | 1107 // For animation subsystem purposes, if this layer has a compositor element |
1109 // id, we build a map from that id to this effect node. | 1108 // id, we build a map from that id to this effect node. |
1110 if (layer->element_id()) { | 1109 if (layer->element_id()) { |
1111 data_for_children->property_trees | 1110 data_for_children->property_trees |
1112 ->element_id_to_effect_node_index[layer->element_id()] = node_id; | 1111 ->element_id_to_effect_node_index[layer->element_id()] = node_id; |
1113 } | 1112 } |
1114 | 1113 |
1115 std::vector<std::unique_ptr<CopyOutputRequest>> layer_copy_requests; | 1114 std::vector<std::unique_ptr<CopyOutputRequest>> layer_copy_requests; |
1116 TakeCopyRequests(layer, &layer_copy_requests); | 1115 TakeCopyRequests(layer, &layer_copy_requests); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1191 node.transform_id = | 1190 node.transform_id = |
1192 data_for_children->transform_tree_parent->transform_tree_index(); | 1191 data_for_children->transform_tree_parent->transform_tree_index(); |
1193 | 1192 |
1194 node_id = | 1193 node_id = |
1195 data_for_children->property_trees->scroll_tree.Insert(node, parent_id); | 1194 data_for_children->property_trees->scroll_tree.Insert(node, parent_id); |
1196 data_for_children->scroll_tree_parent = node_id; | 1195 data_for_children->scroll_tree_parent = node_id; |
1197 data_for_children->main_thread_scrolling_reasons = | 1196 data_for_children->main_thread_scrolling_reasons = |
1198 node.main_thread_scrolling_reasons; | 1197 node.main_thread_scrolling_reasons; |
1199 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria = | 1198 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria = |
1200 scroll_node_uninheritable_criteria; | 1199 scroll_node_uninheritable_criteria; |
1201 data_for_children->property_trees | 1200 data_for_children->property_trees->scroll_tree.InsertOwningIdForNode( |
1202 ->layer_id_to_scroll_node_index[layer->id()] = node_id; | 1201 data_for_children->property_trees->scroll_tree.back(), layer->id()); |
1203 // For animation subsystem purposes, if this layer has a compositor element | 1202 // For animation subsystem purposes, if this layer has a compositor element |
1204 // id, we build a map from that id to this scroll node. | 1203 // id, we build a map from that id to this scroll node. |
1205 if (layer->element_id()) { | 1204 if (layer->element_id()) { |
1206 data_for_children->property_trees | 1205 data_for_children->property_trees |
1207 ->element_id_to_scroll_node_index[layer->element_id()] = node_id; | 1206 ->element_id_to_scroll_node_index[layer->element_id()] = node_id; |
1208 } | 1207 } |
1209 | 1208 |
1210 if (node.scrollable) { | 1209 if (node.scrollable) { |
1211 data_for_children->property_trees->scroll_tree.SetBaseScrollOffset( | 1210 data_for_children->property_trees->scroll_tree.SetBaseScrollOffset( |
1212 layer->id(), layer->CurrentScrollOffset()); | 1211 layer->id(), layer->CurrentScrollOffset()); |
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1547 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 1546 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
1548 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 1547 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
1549 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 1548 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
1550 device_transform, property_trees, color); | 1549 device_transform, property_trees, color); |
1551 property_trees->effect_tree.CreateOrReuseRenderSurfaces( | 1550 property_trees->effect_tree.CreateOrReuseRenderSurfaces( |
1552 &render_surfaces, root_layer->layer_tree_impl()); | 1551 &render_surfaces, root_layer->layer_tree_impl()); |
1553 property_trees->ResetCachedData(); | 1552 property_trees->ResetCachedData(); |
1554 } | 1553 } |
1555 | 1554 |
1556 } // namespace cc | 1555 } // namespace cc |
OLD | NEW |