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 618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
629 | 629 |
630 data_for_children->property_trees->transform_tree.Insert(TransformNode(), | 630 data_for_children->property_trees->transform_tree.Insert(TransformNode(), |
631 parent_index); | 631 parent_index); |
632 | 632 |
633 TransformNode* node = | 633 TransformNode* node = |
634 data_for_children->property_trees->transform_tree.back(); | 634 data_for_children->property_trees->transform_tree.back(); |
635 layer->SetTransformTreeIndex(node->id); | 635 layer->SetTransformTreeIndex(node->id); |
636 data_for_children->property_trees->transform_id_to_index_map[layer->id()] = | 636 data_for_children->property_trees->transform_id_to_index_map[layer->id()] = |
637 node->id; | 637 node->id; |
638 | 638 |
| 639 // 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 if (layer->element_id()) { |
| 642 data_for_children->property_trees |
| 643 ->element_id_to_transform_node_index[layer->element_id()] = node->id; |
| 644 } |
| 645 |
639 node->scrolls = is_scrollable; | 646 node->scrolls = is_scrollable; |
640 node->should_be_snapped = is_snapped; | 647 node->should_be_snapped = is_snapped; |
641 node->flattens_inherited_transform = data_for_children->should_flatten; | 648 node->flattens_inherited_transform = data_for_children->should_flatten; |
642 | 649 |
643 node->sorting_context_id = SortingContextId(layer); | 650 node->sorting_context_id = SortingContextId(layer); |
644 | 651 |
645 if (layer == data_from_ancestor.page_scale_layer) | 652 if (layer == data_from_ancestor.page_scale_layer) |
646 data_for_children->in_subtree_of_page_scale_layer = true; | 653 data_for_children->in_subtree_of_page_scale_layer = true; |
647 node->in_subtree_of_page_scale_layer = | 654 node->in_subtree_of_page_scale_layer = |
648 data_for_children->in_subtree_of_page_scale_layer; | 655 data_for_children->in_subtree_of_page_scale_layer; |
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1094 // to root render surface's content, but not root render surface itself. | 1101 // to root render surface's content, but not root render surface itself. |
1095 node.transform_id = kRootPropertyTreeNodeId; | 1102 node.transform_id = kRootPropertyTreeNodeId; |
1096 node.clip_id = kViewportClipTreeNodeId; | 1103 node.clip_id = kViewportClipTreeNodeId; |
1097 } | 1104 } |
1098 int node_id = effect_tree.Insert(node, parent_id); | 1105 int node_id = effect_tree.Insert(node, parent_id); |
1099 data_for_children->effect_tree_parent = node_id; | 1106 data_for_children->effect_tree_parent = node_id; |
1100 layer->SetEffectTreeIndex(node_id); | 1107 layer->SetEffectTreeIndex(node_id); |
1101 data_for_children->property_trees->effect_id_to_index_map[layer->id()] = | 1108 data_for_children->property_trees->effect_id_to_index_map[layer->id()] = |
1102 node_id; | 1109 node_id; |
1103 | 1110 |
| 1111 // 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 if (layer->element_id()) { |
| 1114 data_for_children->property_trees |
| 1115 ->element_id_to_effect_node_index[layer->element_id()] = node_id; |
| 1116 } |
| 1117 |
1104 std::vector<std::unique_ptr<CopyOutputRequest>> layer_copy_requests; | 1118 std::vector<std::unique_ptr<CopyOutputRequest>> layer_copy_requests; |
1105 TakeCopyRequests(layer, &layer_copy_requests); | 1119 TakeCopyRequests(layer, &layer_copy_requests); |
1106 for (auto& it : layer_copy_requests) { | 1120 for (auto& it : layer_copy_requests) { |
1107 effect_tree.AddCopyRequest(node_id, std::move(it)); | 1121 effect_tree.AddCopyRequest(node_id, std::move(it)); |
1108 } | 1122 } |
1109 layer_copy_requests.clear(); | 1123 layer_copy_requests.clear(); |
1110 | 1124 |
1111 if (should_create_render_surface) { | 1125 if (should_create_render_surface) { |
1112 data_for_children->compound_transform_since_render_target = | 1126 data_for_children->compound_transform_since_render_target = |
1113 gfx::Transform(); | 1127 gfx::Transform(); |
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1523 color = SkColorSetA(color, 255); | 1537 color = SkColorSetA(color, 255); |
1524 BuildPropertyTreesTopLevelInternal( | 1538 BuildPropertyTreesTopLevelInternal( |
1525 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 1539 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
1526 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 1540 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
1527 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 1541 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
1528 device_transform, property_trees, color); | 1542 device_transform, property_trees, color); |
1529 property_trees->ResetCachedData(); | 1543 property_trees->ResetCachedData(); |
1530 } | 1544 } |
1531 | 1545 |
1532 } // namespace cc | 1546 } // namespace cc |
OLD | NEW |