| 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 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 gfx::Transform to_parent; | 469 gfx::Transform to_parent; |
| 470 data_from_ancestor.property_trees->transform_tree.ComputeTransform( | 470 data_from_ancestor.property_trees->transform_tree.ComputeTransform( |
| 471 source_index, parent_index, &to_parent); | 471 source_index, parent_index, &to_parent); |
| 472 source_to_parent = to_parent.To2dTranslation(); | 472 source_to_parent = to_parent.To2dTranslation(); |
| 473 } | 473 } |
| 474 layer->set_offset_to_transform_parent(source_offset + source_to_parent + | 474 layer->set_offset_to_transform_parent(source_offset + source_to_parent + |
| 475 local_offset); | 475 local_offset); |
| 476 layer->set_should_flatten_transform_from_property_tree( | 476 layer->set_should_flatten_transform_from_property_tree( |
| 477 data_from_ancestor.should_flatten); | 477 data_from_ancestor.should_flatten); |
| 478 layer->SetTransformTreeIndex(parent_index); | 478 layer->SetTransformTreeIndex(parent_index); |
| 479 if (layer->mask_layer()) | |
| 480 layer->mask_layer()->SetTransformTreeIndex(parent_index); | |
| 481 return false; | 479 return false; |
| 482 } | 480 } |
| 483 | 481 |
| 484 data_for_children->property_trees->transform_tree.Insert(TransformNode(), | 482 data_for_children->property_trees->transform_tree.Insert(TransformNode(), |
| 485 parent_index); | 483 parent_index); |
| 486 | 484 |
| 487 TransformNode* node = | 485 TransformNode* node = |
| 488 data_for_children->property_trees->transform_tree.back(); | 486 data_for_children->property_trees->transform_tree.back(); |
| 489 layer->SetTransformTreeIndex(node->id); | 487 layer->SetTransformTreeIndex(node->id); |
| 490 data_for_children->property_trees->transform_id_to_index_map[layer->id()] = | 488 data_for_children->property_trees->transform_id_to_index_map[layer->id()] = |
| 491 node->id; | 489 node->id; |
| 492 if (layer->mask_layer()) | |
| 493 layer->mask_layer()->SetTransformTreeIndex(node->id); | |
| 494 | 490 |
| 495 node->data.scrolls = is_scrollable; | 491 node->data.scrolls = is_scrollable; |
| 496 node->data.flattens_inherited_transform = data_for_children->should_flatten; | 492 node->data.flattens_inherited_transform = data_for_children->should_flatten; |
| 497 | 493 |
| 498 node->data.sorting_context_id = layer->sorting_context_id(); | 494 node->data.sorting_context_id = layer->sorting_context_id(); |
| 499 | 495 |
| 500 if (layer == data_from_ancestor.page_scale_layer) | 496 if (layer == data_from_ancestor.page_scale_layer) |
| 501 data_for_children->in_subtree_of_page_scale_layer = true; | 497 data_for_children->in_subtree_of_page_scale_layer = true; |
| 502 node->data.in_subtree_of_page_scale_layer = | 498 node->data.in_subtree_of_page_scale_layer = |
| 503 data_for_children->in_subtree_of_page_scale_layer; | 499 data_for_children->in_subtree_of_page_scale_layer; |
| (...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1052 static void SetLayerPropertyChangedForChild(LayerImpl* parent, | 1048 static void SetLayerPropertyChangedForChild(LayerImpl* parent, |
| 1053 LayerImpl* child) {} | 1049 LayerImpl* child) {} |
| 1054 | 1050 |
| 1055 template <typename LayerType> | 1051 template <typename LayerType> |
| 1056 void BuildPropertyTreesInternal( | 1052 void BuildPropertyTreesInternal( |
| 1057 LayerType* layer, | 1053 LayerType* layer, |
| 1058 const DataForRecursion<LayerType>& data_from_parent, | 1054 const DataForRecursion<LayerType>& data_from_parent, |
| 1059 DataForRecursionFromChild<LayerType>* data_to_parent) { | 1055 DataForRecursionFromChild<LayerType>* data_to_parent) { |
| 1060 layer->set_property_tree_sequence_number( | 1056 layer->set_property_tree_sequence_number( |
| 1061 data_from_parent.property_trees->sequence_number); | 1057 data_from_parent.property_trees->sequence_number); |
| 1062 if (layer->mask_layer()) | |
| 1063 layer->mask_layer()->set_property_tree_sequence_number( | |
| 1064 data_from_parent.property_trees->sequence_number); | |
| 1065 | 1058 |
| 1066 DataForRecursion<LayerType> data_for_children(data_from_parent); | 1059 DataForRecursion<LayerType> data_for_children(data_from_parent); |
| 1067 | 1060 |
| 1068 bool created_render_surface = | 1061 bool created_render_surface = |
| 1069 AddEffectNodeIfNeeded(data_from_parent, layer, &data_for_children); | 1062 AddEffectNodeIfNeeded(data_from_parent, layer, &data_for_children); |
| 1070 | 1063 |
| 1071 if (created_render_surface) { | 1064 if (created_render_surface) { |
| 1072 data_for_children.render_target = data_for_children.effect_tree_parent; | 1065 data_for_children.render_target = data_for_children.effect_tree_parent; |
| 1073 layer->set_draw_blend_mode(SkXfermode::kSrcOver_Mode); | 1066 layer->set_draw_blend_mode(SkXfermode::kSrcOver_Mode); |
| 1074 } else { | 1067 } else { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1115 } | 1108 } |
| 1116 } | 1109 } |
| 1117 | 1110 |
| 1118 if (layer->has_replica()) { | 1111 if (layer->has_replica()) { |
| 1119 DataForRecursionFromChild<LayerType> data_from_child; | 1112 DataForRecursionFromChild<LayerType> data_from_child; |
| 1120 BuildPropertyTreesInternal(layer->replica_layer(), data_for_children, | 1113 BuildPropertyTreesInternal(layer->replica_layer(), data_for_children, |
| 1121 &data_from_child); | 1114 &data_from_child); |
| 1122 data_to_parent->Merge(data_from_child); | 1115 data_to_parent->Merge(data_from_child); |
| 1123 } | 1116 } |
| 1124 | 1117 |
| 1118 if (layer->mask_layer()) { |
| 1119 layer->mask_layer()->set_property_tree_sequence_number( |
| 1120 data_from_parent.property_trees->sequence_number); |
| 1121 layer->mask_layer()->set_offset_to_transform_parent( |
| 1122 layer->offset_to_transform_parent()); |
| 1123 layer->mask_layer()->SetTransformTreeIndex(layer->transform_tree_index()); |
| 1124 layer->mask_layer()->SetClipTreeIndex(layer->clip_tree_index()); |
| 1125 layer->mask_layer()->SetEffectTreeIndex(layer->effect_tree_index()); |
| 1126 layer->mask_layer()->SetScrollTreeIndex(layer->scroll_tree_index()); |
| 1127 } |
| 1128 |
| 1125 EffectNode* effect_node = data_for_children.property_trees->effect_tree.Node( | 1129 EffectNode* effect_node = data_for_children.property_trees->effect_tree.Node( |
| 1126 data_for_children.effect_tree_parent); | 1130 data_for_children.effect_tree_parent); |
| 1127 | 1131 |
| 1128 if (effect_node->owner_id == layer->id()) { | 1132 if (effect_node->owner_id == layer->id()) { |
| 1129 if (effect_node->data.has_copy_request) | 1133 if (effect_node->data.has_copy_request) |
| 1130 data_to_parent->num_copy_requests_in_subtree++; | 1134 data_to_parent->num_copy_requests_in_subtree++; |
| 1131 effect_node->data.num_copy_requests_in_subtree = | 1135 effect_node->data.num_copy_requests_in_subtree = |
| 1132 data_to_parent->num_copy_requests_in_subtree; | 1136 data_to_parent->num_copy_requests_in_subtree; |
| 1133 } | 1137 } |
| 1134 } | 1138 } |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1320 if (SkColorGetA(color) != 255) | 1324 if (SkColorGetA(color) != 255) |
| 1321 color = SkColorSetA(color, 255); | 1325 color = SkColorSetA(color, 255); |
| 1322 BuildPropertyTreesTopLevelInternal( | 1326 BuildPropertyTreesTopLevelInternal( |
| 1323 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 1327 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
| 1324 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 1328 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
| 1325 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 1329 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
| 1326 device_transform, property_trees, color); | 1330 device_transform, property_trees, color); |
| 1327 } | 1331 } |
| 1328 | 1332 |
| 1329 } // namespace cc | 1333 } // namespace cc |
| OLD | NEW |