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

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

Issue 2612093002: Build mapping from element id to transform/effect nodes. (Closed)
Patch Set: Sync to head. 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
« no previous file with comments | « 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 618 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
OLDNEW
« no previous file with comments | « cc/trees/property_tree.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698