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/draw_property_utils.h" | 5 #include "cc/trees/draw_property_utils.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
437 // backface is not visible. | 437 // backface is not visible. |
438 if (TransformToScreenIsKnown(layer, backface_transform_id, tree) && | 438 if (TransformToScreenIsKnown(layer, backface_transform_id, tree) && |
439 !HasSingularTransform(backface_transform_id, tree) && | 439 !HasSingularTransform(backface_transform_id, tree) && |
440 IsLayerBackFaceVisible(layer, backface_transform_id, property_trees)) | 440 IsLayerBackFaceVisible(layer, backface_transform_id, property_trees)) |
441 return false; | 441 return false; |
442 } | 442 } |
443 | 443 |
444 return true; | 444 return true; |
445 } | 445 } |
446 | 446 |
| 447 static inline bool IsHidden(Layer* layer) { |
| 448 return layer->is_hidden(); |
| 449 } |
| 450 |
| 451 static inline bool IsHidden(LayerImpl* layer) { |
| 452 return false; |
| 453 } |
| 454 |
447 template <typename LayerType> | 455 template <typename LayerType> |
448 static inline bool LayerShouldBeSkippedInternal( | 456 static inline bool LayerShouldBeSkippedInternal( |
449 LayerType* layer, | 457 LayerType* layer, |
450 const TransformTree& transform_tree, | 458 const TransformTree& transform_tree, |
451 const EffectTree& effect_tree) { | 459 const EffectTree& effect_tree) { |
| 460 if (IsHidden(layer)) |
| 461 return true; |
452 const TransformNode* transform_node = | 462 const TransformNode* transform_node = |
453 transform_tree.Node(layer->transform_tree_index()); | 463 transform_tree.Node(layer->transform_tree_index()); |
454 const EffectNode* effect_node = effect_tree.Node(layer->effect_tree_index()); | 464 const EffectNode* effect_node = effect_tree.Node(layer->effect_tree_index()); |
455 | 465 |
456 if (effect_node->has_render_surface && effect_node->subtree_has_copy_request) | 466 if (effect_node->has_render_surface && effect_node->subtree_has_copy_request) |
457 return false; | 467 return false; |
458 | 468 |
459 // If the layer transform is not invertible, it should be skipped. In case the | 469 // If the layer transform is not invertible, it should be skipped. In case the |
460 // transform is animating and singular, we should not skip it. | 470 // transform is animating and singular, we should not skip it. |
461 return !transform_node->node_and_ancestors_are_animated_or_invertible || | 471 return !transform_node->node_and_ancestors_are_animated_or_invertible || |
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1073 void UpdateElasticOverscroll(PropertyTrees* property_trees, | 1083 void UpdateElasticOverscroll(PropertyTrees* property_trees, |
1074 const Layer* overscroll_elasticity_layer, | 1084 const Layer* overscroll_elasticity_layer, |
1075 const gfx::Vector2dF& elastic_overscroll) { | 1085 const gfx::Vector2dF& elastic_overscroll) { |
1076 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, | 1086 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, |
1077 elastic_overscroll); | 1087 elastic_overscroll); |
1078 } | 1088 } |
1079 | 1089 |
1080 } // namespace draw_property_utils | 1090 } // namespace draw_property_utils |
1081 | 1091 |
1082 } // namespace cc | 1092 } // namespace cc |
OLD | NEW |