| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/layer_tree_host_common.h" | 5 #include "cc/trees/layer_tree_host_common.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 bool is_root = layer_tree_impl->IsRootLayer(layer); | 351 bool is_root = layer_tree_impl->IsRootLayer(layer); |
| 352 | 352 |
| 353 bool skip_draw_properties_computation = | 353 bool skip_draw_properties_computation = |
| 354 draw_property_utils::LayerShouldBeSkippedForDrawPropertiesComputation( | 354 draw_property_utils::LayerShouldBeSkippedForDrawPropertiesComputation( |
| 355 layer, property_trees->transform_tree, property_trees->effect_tree); | 355 layer, property_trees->transform_tree, property_trees->effect_tree); |
| 356 | 356 |
| 357 const TransformNode* transform_node = | 357 const TransformNode* transform_node = |
| 358 property_trees->transform_tree.Node(layer->transform_tree_index()); | 358 property_trees->transform_tree.Node(layer->transform_tree_index()); |
| 359 bool skip_for_invertibility = !transform_node->ancestors_are_invertible; | 359 bool skip_for_invertibility = !transform_node->ancestors_are_invertible; |
| 360 | 360 |
| 361 const EffectNode* effect_node = |
| 362 property_trees->effect_tree.Node(layer->effect_tree_index()); |
| 363 bool has_animating_opacity_and_hidden = |
| 364 effect_node->has_potential_opacity_animation && |
| 365 property_trees->effect_tree.EffectiveOpacity(effect_node) == 0.f && |
| 366 !effect_node->has_copy_request; |
| 367 |
| 361 bool skip_layer = !is_root && (skip_draw_properties_computation || | 368 bool skip_layer = !is_root && (skip_draw_properties_computation || |
| 362 skip_for_invertibility); | 369 skip_for_invertibility || |
| 370 has_animating_opacity_and_hidden); |
| 363 | 371 |
| 364 layer->set_raster_even_if_not_in_rsll(skip_for_invertibility && | 372 bool raster_even_if_not_in_rsll = |
| 365 !skip_draw_properties_computation); | 373 skip_draw_properties_computation |
| 374 ? false |
| 375 : has_animating_opacity_and_hidden || skip_for_invertibility; |
| 376 layer->set_raster_even_if_not_in_rsll(raster_even_if_not_in_rsll); |
| 366 if (skip_layer) | 377 if (skip_layer) |
| 367 continue; | 378 continue; |
| 368 | 379 |
| 369 bool layer_is_drawn = | 380 bool layer_is_drawn = |
| 370 property_trees->effect_tree.Node(layer->effect_tree_index())->is_drawn; | 381 property_trees->effect_tree.Node(layer->effect_tree_index())->is_drawn; |
| 371 bool layer_should_be_drawn = draw_property_utils::LayerNeedsUpdate( | 382 bool layer_should_be_drawn = draw_property_utils::LayerNeedsUpdate( |
| 372 layer, layer_is_drawn, property_trees); | 383 layer, layer_is_drawn, property_trees); |
| 373 if (!layer_should_be_drawn) | 384 if (!layer_should_be_drawn) |
| 374 continue; | 385 continue; |
| 375 | 386 |
| (...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 662 | 673 |
| 663 PropertyTrees* GetPropertyTrees(Layer* layer) { | 674 PropertyTrees* GetPropertyTrees(Layer* layer) { |
| 664 return layer->layer_tree_host()->property_trees(); | 675 return layer->layer_tree_host()->property_trees(); |
| 665 } | 676 } |
| 666 | 677 |
| 667 PropertyTrees* GetPropertyTrees(LayerImpl* layer) { | 678 PropertyTrees* GetPropertyTrees(LayerImpl* layer) { |
| 668 return layer->layer_tree_impl()->property_trees(); | 679 return layer->layer_tree_impl()->property_trees(); |
| 669 } | 680 } |
| 670 | 681 |
| 671 } // namespace cc | 682 } // namespace cc |
| OLD | NEW |