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 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
615 | 615 |
616 data_for_children->property_trees->transform_tree.Insert(TransformNode(), | 616 data_for_children->property_trees->transform_tree.Insert(TransformNode(), |
617 parent_index); | 617 parent_index); |
618 | 618 |
619 TransformNode* node = | 619 TransformNode* node = |
620 data_for_children->property_trees->transform_tree.back(); | 620 data_for_children->property_trees->transform_tree.back(); |
621 layer->SetTransformTreeIndex(node->id); | 621 layer->SetTransformTreeIndex(node->id); |
622 data_for_children->property_trees->transform_id_to_index_map[layer->id()] = | 622 data_for_children->property_trees->transform_id_to_index_map[layer->id()] = |
623 node->id; | 623 node->id; |
624 | 624 |
| 625 // For animation subsystem purposes, if this layer has a compositor element |
| 626 // id, we build a map from that id to this transform node. |
| 627 if (layer->element_id()) { |
| 628 data_for_children->property_trees |
| 629 ->element_id_to_transform_node_index[layer->element_id()] = node->id; |
| 630 } |
| 631 |
625 node->scrolls = is_scrollable; | 632 node->scrolls = is_scrollable; |
626 node->should_be_snapped = is_snapped; | 633 node->should_be_snapped = is_snapped; |
627 node->flattens_inherited_transform = data_for_children->should_flatten; | 634 node->flattens_inherited_transform = data_for_children->should_flatten; |
628 | 635 |
629 node->sorting_context_id = SortingContextId(layer); | 636 node->sorting_context_id = SortingContextId(layer); |
630 | 637 |
631 if (layer == data_from_ancestor.page_scale_layer) | 638 if (layer == data_from_ancestor.page_scale_layer) |
632 data_for_children->in_subtree_of_page_scale_layer = true; | 639 data_for_children->in_subtree_of_page_scale_layer = true; |
633 node->in_subtree_of_page_scale_layer = | 640 node->in_subtree_of_page_scale_layer = |
634 data_for_children->in_subtree_of_page_scale_layer; | 641 data_for_children->in_subtree_of_page_scale_layer; |
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1088 // to root render surface's content, but not root render surface itself. | 1095 // to root render surface's content, but not root render surface itself. |
1089 node.transform_id = kRootPropertyTreeNodeId; | 1096 node.transform_id = kRootPropertyTreeNodeId; |
1090 node.clip_id = kViewportClipTreeNodeId; | 1097 node.clip_id = kViewportClipTreeNodeId; |
1091 } | 1098 } |
1092 data_for_children->effect_tree_parent = effect_tree.Insert(node, parent_id); | 1099 data_for_children->effect_tree_parent = effect_tree.Insert(node, parent_id); |
1093 int node_id = data_for_children->effect_tree_parent; | 1100 int node_id = data_for_children->effect_tree_parent; |
1094 layer->SetEffectTreeIndex(node_id); | 1101 layer->SetEffectTreeIndex(node_id); |
1095 data_for_children->property_trees->effect_id_to_index_map[layer->id()] = | 1102 data_for_children->property_trees->effect_id_to_index_map[layer->id()] = |
1096 data_for_children->effect_tree_parent; | 1103 data_for_children->effect_tree_parent; |
1097 | 1104 |
| 1105 // For animation subsystem purposes, if this layer has a compositor element |
| 1106 // id, we build a map from that id to this effect node. |
| 1107 if (layer->element_id()) { |
| 1108 data_for_children->property_trees |
| 1109 ->element_id_to_effect_node_index[layer->element_id()] = node_id; |
| 1110 } |
| 1111 |
1098 std::vector<std::unique_ptr<CopyOutputRequest>> layer_copy_requests; | 1112 std::vector<std::unique_ptr<CopyOutputRequest>> layer_copy_requests; |
1099 TakeCopyRequests(layer, &layer_copy_requests); | 1113 TakeCopyRequests(layer, &layer_copy_requests); |
1100 for (auto& it : layer_copy_requests) { | 1114 for (auto& it : layer_copy_requests) { |
1101 effect_tree.AddCopyRequest(node_id, std::move(it)); | 1115 effect_tree.AddCopyRequest(node_id, std::move(it)); |
1102 } | 1116 } |
1103 layer_copy_requests.clear(); | 1117 layer_copy_requests.clear(); |
1104 | 1118 |
1105 if (should_create_render_surface) { | 1119 if (should_create_render_surface) { |
1106 data_for_children->compound_transform_since_render_target = | 1120 data_for_children->compound_transform_since_render_target = |
1107 gfx::Transform(); | 1121 gfx::Transform(); |
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1517 color = SkColorSetA(color, 255); | 1531 color = SkColorSetA(color, 255); |
1518 BuildPropertyTreesTopLevelInternal( | 1532 BuildPropertyTreesTopLevelInternal( |
1519 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 1533 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
1520 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 1534 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
1521 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 1535 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
1522 device_transform, property_trees, color); | 1536 device_transform, property_trees, color); |
1523 property_trees->ResetCachedData(); | 1537 property_trees->ResetCachedData(); |
1524 } | 1538 } |
1525 | 1539 |
1526 } // namespace cc | 1540 } // namespace cc |
OLD | NEW |