Chromium Code Reviews| Index: cc/trees/draw_property_utils.cc |
| diff --git a/cc/trees/draw_property_utils.cc b/cc/trees/draw_property_utils.cc |
| index d31fb067ea8273269f0c0d71aee57a0c4f8e69b9..e8e1e6fe4a743daa4819690f8c6998c83fc97526 100644 |
| --- a/cc/trees/draw_property_utils.cc |
| +++ b/cc/trees/draw_property_utils.cc |
| @@ -452,9 +452,8 @@ void FindLayersThatNeedUpdates( |
| } |
| } |
| -template <typename LayerType> |
| void UpdateRenderSurfacesWithEffectTreeInternal(EffectTree* effect_tree, |
| - LayerType* layer) { |
| + Layer* layer) { |
| EffectNode* node = effect_tree->Node(layer->effect_tree_index()); |
| if (node->owner_id == layer->id() && node->data.has_render_surface) |
| @@ -463,13 +462,12 @@ void UpdateRenderSurfacesWithEffectTreeInternal(EffectTree* effect_tree, |
| layer->SetHasRenderSurface(false); |
| for (size_t i = 0; i < layer->children().size(); ++i) { |
| - UpdateRenderSurfacesWithEffectTreeInternal<LayerType>(effect_tree, |
| - layer->child_at(i)); |
| + UpdateRenderSurfacesWithEffectTreeInternal(effect_tree, layer->child_at(i)); |
| } |
| } |
| void UpdateRenderSurfacesWithEffectTree(EffectTree* effect_tree, Layer* layer) { |
| - UpdateRenderSurfacesWithEffectTreeInternal<Layer>(effect_tree, layer); |
| + UpdateRenderSurfacesWithEffectTreeInternal(effect_tree, layer); |
|
ajuma
2016/03/22 14:41:54
Since there's no templating anymore, can we remove
jaydasika
2016/03/22 20:48:36
Done.
|
| } |
| void UpdateRenderSurfacesNonRootSurfacesDisabled(LayerImpl* layer) { |
|
ajuma
2016/03/22 14:41:54
Can this be deleted now?
jaydasika
2016/03/22 20:48:36
Done.
|
| @@ -483,10 +481,16 @@ void UpdateRenderSurfacesNonRootSurfacesDisabled(LayerImpl* layer) { |
| void UpdateRenderSurfacesWithEffectTree(EffectTree* effect_tree, |
| bool non_root_surfaces_enabled, |
| LayerImpl* layer) { |
| - if (!non_root_surfaces_enabled) |
| - UpdateRenderSurfacesNonRootSurfacesDisabled(layer); |
| + if (!non_root_surfaces_enabled) { |
| + layer->SetHasRenderSurface(!layer->parent()); |
| + return; |
| + } |
| + EffectNode* node = effect_tree->Node(layer->effect_tree_index()); |
| + |
| + if (node->owner_id == layer->id() && node->data.has_render_surface) |
| + layer->SetHasRenderSurface(true); |
| else |
| - UpdateRenderSurfacesWithEffectTreeInternal<LayerImpl>(effect_tree, layer); |
| + layer->SetHasRenderSurface(false); |
|
ajuma
2016/03/22 14:41:55
To avoid code duplication, how about turning this
jaydasika
2016/03/22 20:48:34
Done.
|
| } |
| } // namespace |
| @@ -740,8 +744,9 @@ void ComputeVisibleRects(LayerImpl* root_layer, |
| PropertyTrees* property_trees, |
| bool can_render_to_separate_surface, |
| LayerImplList* visible_layer_list) { |
| - UpdateRenderSurfacesWithEffectTree( |
| - &property_trees->effect_tree, can_render_to_separate_surface, root_layer); |
| + for (auto* layer : *root_layer->layer_tree_impl()) |
| + UpdateRenderSurfacesWithEffectTree(&property_trees->effect_tree, |
| + can_render_to_separate_surface, layer); |
| if (can_render_to_separate_surface) |
| ValidateRenderSurfaces(root_layer); |
| LayerImplList update_layer_list; |