| 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 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 return layer->Is3dSorted(); | 256 return layer->Is3dSorted(); |
| 257 } | 257 } |
| 258 | 258 |
| 259 static inline bool Is3dSorted(LayerImpl* layer) { | 259 static inline bool Is3dSorted(LayerImpl* layer) { |
| 260 return layer->test_properties()->sorting_context_id != 0; | 260 return layer->test_properties()->sorting_context_id != 0; |
| 261 } | 261 } |
| 262 | 262 |
| 263 template <typename LayerType> | 263 template <typename LayerType> |
| 264 void AddClipNodeIfNeeded(const DataForRecursion<LayerType>& data_from_ancestor, | 264 void AddClipNodeIfNeeded(const DataForRecursion<LayerType>& data_from_ancestor, |
| 265 LayerType* layer, | 265 LayerType* layer, |
| 266 bool created_render_surface, | |
| 267 bool created_transform_node, | 266 bool created_transform_node, |
| 268 DataForRecursion<LayerType>* data_for_children) { | 267 DataForRecursion<LayerType>* data_for_children) { |
| 269 const bool inherits_clip = !ClipParent(layer); | 268 const bool inherits_clip = !ClipParent(layer); |
| 270 const int parent_id = inherits_clip ? data_from_ancestor.clip_tree_parent | 269 const int parent_id = inherits_clip ? data_from_ancestor.clip_tree_parent |
| 271 : ClipParent(layer)->clip_tree_index(); | 270 : ClipParent(layer)->clip_tree_index(); |
| 272 | 271 |
| 273 bool layer_clips_subtree = LayerClipsSubtree(layer); | 272 bool layer_clips_subtree = LayerClipsSubtree(layer); |
| 274 bool requires_node = | 273 bool requires_node = |
| 275 layer_clips_subtree || Filters(layer).HasFilterThatMovesPixels(); | 274 layer_clips_subtree || Filters(layer).HasFilterThatMovesPixels(); |
| 276 if (!requires_node) { | 275 if (!requires_node) { |
| (...skipping 847 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1124 const DataForRecursion<LayerType>& data_from_parent, | 1123 const DataForRecursion<LayerType>& data_from_parent, |
| 1125 DataForRecursionFromChild<LayerType>* data_to_parent) { | 1124 DataForRecursionFromChild<LayerType>* data_to_parent) { |
| 1126 layer->set_property_tree_sequence_number( | 1125 layer->set_property_tree_sequence_number( |
| 1127 data_from_parent.property_trees->sequence_number); | 1126 data_from_parent.property_trees->sequence_number); |
| 1128 | 1127 |
| 1129 DataForRecursion<LayerType> data_for_children(data_from_parent); | 1128 DataForRecursion<LayerType> data_for_children(data_from_parent); |
| 1130 | 1129 |
| 1131 bool created_render_surface = | 1130 bool created_render_surface = |
| 1132 AddEffectNodeIfNeeded(data_from_parent, layer, &data_for_children); | 1131 AddEffectNodeIfNeeded(data_from_parent, layer, &data_for_children); |
| 1133 | 1132 |
| 1134 if (created_render_surface) { | 1133 if (created_render_surface) |
| 1135 data_for_children.render_target = data_for_children.effect_tree_parent; | 1134 data_for_children.render_target = data_for_children.effect_tree_parent; |
| 1136 layer->set_draw_blend_mode(SkBlendMode::kSrcOver); | |
| 1137 } else { | |
| 1138 layer->set_draw_blend_mode(BlendMode(layer)); | |
| 1139 } | |
| 1140 | 1135 |
| 1141 bool created_transform_node = AddTransformNodeIfNeeded( | 1136 bool created_transform_node = AddTransformNodeIfNeeded( |
| 1142 data_from_parent, layer, created_render_surface, &data_for_children); | 1137 data_from_parent, layer, created_render_surface, &data_for_children); |
| 1143 AddClipNodeIfNeeded(data_from_parent, layer, created_render_surface, | 1138 AddClipNodeIfNeeded(data_from_parent, layer, created_transform_node, |
| 1144 created_transform_node, &data_for_children); | 1139 &data_for_children); |
| 1145 | 1140 |
| 1146 AddScrollNodeIfNeeded(data_from_parent, layer, &data_for_children); | 1141 AddScrollNodeIfNeeded(data_from_parent, layer, &data_for_children); |
| 1147 | 1142 |
| 1148 SetBackfaceVisibilityTransform(layer, created_transform_node); | 1143 SetBackfaceVisibilityTransform(layer, created_transform_node); |
| 1149 SetSafeOpaqueBackgroundColor(data_from_parent, layer, &data_for_children); | 1144 SetSafeOpaqueBackgroundColor(data_from_parent, layer, &data_for_children); |
| 1150 | 1145 |
| 1151 for (size_t i = 0; i < Children(layer).size(); ++i) { | 1146 for (size_t i = 0; i < Children(layer).size(); ++i) { |
| 1152 LayerType* current_child = ChildAt(layer, i); | 1147 LayerType* current_child = ChildAt(layer, i); |
| 1153 SetLayerPropertyChangedForChild(layer, current_child); | 1148 SetLayerPropertyChangedForChild(layer, current_child); |
| 1154 if (!ScrollParent(current_child)) { | 1149 if (!ScrollParent(current_child)) { |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1374 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 1369 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
| 1375 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 1370 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
| 1376 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 1371 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
| 1377 device_transform, property_trees, color); | 1372 device_transform, property_trees, color); |
| 1378 property_trees->effect_tree.CreateOrReuseRenderSurfaces( | 1373 property_trees->effect_tree.CreateOrReuseRenderSurfaces( |
| 1379 &render_surfaces, root_layer->layer_tree_impl()); | 1374 &render_surfaces, root_layer->layer_tree_impl()); |
| 1380 property_trees->ResetCachedData(); | 1375 property_trees->ResetCachedData(); |
| 1381 } | 1376 } |
| 1382 | 1377 |
| 1383 } // namespace cc | 1378 } // namespace cc |
| OLD | NEW |