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

Unified Diff: cc/trees/property_tree_builder.cc

Issue 1975623002: cc : Add LayerToPropertyTreeIndices map to PropertyTrees (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/trees/property_tree.cc ('k') | cc/trees/property_tree_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/property_tree_builder.cc
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc
index d46d8692dec3c3a0872e637e5a695230d05b4330..ad355c9d7485c11fee3a04f599a53975c0308326 100644
--- a/cc/trees/property_tree_builder.cc
+++ b/cc/trees/property_tree_builder.cc
@@ -59,6 +59,10 @@ struct DataForRecursion {
bool axis_align_since_render_target;
int sequence_number;
SkColor safe_opaque_background_color;
+ std::unordered_map<int, int>* transform_id_to_index_map;
+ std::unordered_map<int, int>* effect_id_to_index_map;
+ std::unordered_map<int, int>* clip_id_to_index_map;
+ std::unordered_map<int, int>* scroll_id_to_index_map;
};
template <typename LayerType>
@@ -353,6 +357,7 @@ void AddClipNodeIfNeeded(const DataForRecursion<LayerType>& data_from_ancestor,
data_for_children->clip_tree_parent =
data_for_children->clip_tree->Insert(node, parent_id);
+ (*data_for_children->clip_id_to_index_map)[layer->id()] = node.id;
}
layer->SetClipTreeIndex(data_for_children->clip_tree_parent);
@@ -507,6 +512,7 @@ bool AddTransformNodeIfNeeded(
TransformNode* node = data_for_children->transform_tree->back();
layer->SetTransformTreeIndex(node->id);
+ (*data_for_children->transform_id_to_index_map)[layer->id()] = node->id;
if (layer->mask_layer())
layer->mask_layer()->SetTransformTreeIndex(node->id);
@@ -861,6 +867,7 @@ bool AddEffectNodeIfNeeded(
data_for_children->effect_tree_parent =
data_for_children->effect_tree->Insert(node, parent_id);
layer->SetEffectTreeIndex(data_for_children->effect_tree_parent);
+ (*data_for_children->effect_id_to_index_map)[layer->id()] = node.id;
if (should_create_render_surface) {
data_for_children->compound_transform_since_render_target =
gfx::Transform();
@@ -939,6 +946,7 @@ void AddScrollNodeIfNeeded(
node.data.main_thread_scrolling_reasons;
data_for_children->scroll_tree_parent_created_by_uninheritable_criteria =
scroll_node_uninheritable_criteria;
+ (*data_for_children->scroll_id_to_index_map)[layer->id()] = node.id;
if (node.data.scrollable) {
data_for_children->scroll_tree->SetBaseScrollOffset(
@@ -1173,6 +1181,14 @@ void BuildPropertyTreesTopLevelInternal(
data_for_recursion.scroll_tree_parent_created_by_uninheritable_criteria =
true;
data_for_recursion.device_transform = &device_transform;
+ data_for_recursion.transform_id_to_index_map =
+ &property_trees->transform_id_to_index_map;
+ data_for_recursion.effect_id_to_index_map =
+ &property_trees->effect_id_to_index_map;
+ data_for_recursion.clip_id_to_index_map =
+ &property_trees->clip_id_to_index_map;
+ data_for_recursion.scroll_id_to_index_map =
+ &property_trees->scroll_id_to_index_map;
data_for_recursion.transform_tree->clear();
data_for_recursion.clip_tree->clear();
@@ -1184,6 +1200,10 @@ void BuildPropertyTreesTopLevelInternal(
data_for_recursion.transform_tree->set_device_scale_factor(
device_scale_factor);
data_for_recursion.safe_opaque_background_color = color;
+ data_for_recursion.transform_id_to_index_map->clear();
+ data_for_recursion.effect_id_to_index_map->clear();
+ data_for_recursion.clip_id_to_index_map->clear();
+ data_for_recursion.scroll_id_to_index_map->clear();
ClipNode root_clip;
root_clip.data.resets_clip = true;
« no previous file with comments | « cc/trees/property_tree.cc ('k') | cc/trees/property_tree_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698