Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Side by Side Diff: cc/trees/property_tree_builder.cc

Issue 2612093002: Build mapping from element id to transform/effect nodes. (Closed)
Patch Set: Check tree size in test. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« cc/trees/property_tree.h ('K') | « cc/trees/property_tree.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« cc/trees/property_tree.h ('K') | « cc/trees/property_tree.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698