Chromium Code Reviews| 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 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 666 } | 666 } |
| 667 | 667 |
| 668 static inline bool HideLayerAndSubtree(Layer* layer) { | 668 static inline bool HideLayerAndSubtree(Layer* layer) { |
| 669 return layer->hide_layer_and_subtree(); | 669 return layer->hide_layer_and_subtree(); |
| 670 } | 670 } |
| 671 | 671 |
| 672 static inline bool HideLayerAndSubtree(LayerImpl* layer) { | 672 static inline bool HideLayerAndSubtree(LayerImpl* layer) { |
| 673 return layer->test_properties()->hide_layer_and_subtree; | 673 return layer->test_properties()->hide_layer_and_subtree; |
| 674 } | 674 } |
| 675 | 675 |
| 676 static inline bool AlwaysUseActiveTreeOpacity(Layer* layer) { | |
| 677 return layer->AlwaysUseActiveTreeOpacity(); | |
| 678 } | |
| 679 | |
| 680 static inline bool AlwaysUseActiveTreeOpacity(LayerImpl* layer) { | |
| 681 return false; | |
| 682 } | |
| 683 | |
| 676 template <typename LayerType> | 684 template <typename LayerType> |
| 677 bool ShouldCreateRenderSurface(LayerType* layer, | 685 bool ShouldCreateRenderSurface(LayerType* layer, |
| 678 gfx::Transform current_transform, | 686 gfx::Transform current_transform, |
| 679 bool axis_aligned) { | 687 bool axis_aligned) { |
| 680 const bool preserves_2d_axis_alignment = | 688 const bool preserves_2d_axis_alignment = |
| 681 (current_transform * layer->transform()).Preserves2dAxisAlignment() && | 689 (current_transform * layer->transform()).Preserves2dAxisAlignment() && |
| 682 axis_aligned && layer->AnimationsPreserveAxisAlignment(); | 690 axis_aligned && layer->AnimationsPreserveAxisAlignment(); |
| 683 const bool is_root = !layer->parent(); | 691 const bool is_root = !layer->parent(); |
| 684 if (is_root) | 692 if (is_root) |
| 685 return true; | 693 return true; |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 803 if (!requires_node) { | 811 if (!requires_node) { |
| 804 layer->SetEffectTreeIndex(parent_id); | 812 layer->SetEffectTreeIndex(parent_id); |
| 805 data_for_children->effect_tree_parent = parent_id; | 813 data_for_children->effect_tree_parent = parent_id; |
| 806 data_for_children->compound_transform_since_render_target *= | 814 data_for_children->compound_transform_since_render_target *= |
| 807 layer->transform(); | 815 layer->transform(); |
| 808 return false; | 816 return false; |
| 809 } | 817 } |
| 810 | 818 |
| 811 EffectNode node; | 819 EffectNode node; |
| 812 node.owner_id = layer->id(); | 820 node.owner_id = layer->id(); |
| 821 if (AlwaysUseActiveTreeOpacity(layer)) | |
| 822 data_for_children->property_trees->always_use_active_tree_opacity_effect_ids | |
| 823 .push_back(node.owner_id); | |
|
ajuma
2016/05/18 13:53:48
Are there tests for this (that break when we don't
jaydasika
2016/05/19 00:27:09
Added one.
| |
| 824 | |
| 813 node.data.opacity = layer->opacity(); | 825 node.data.opacity = layer->opacity(); |
| 814 node.data.has_render_surface = should_create_render_surface; | 826 node.data.has_render_surface = should_create_render_surface; |
| 815 node.data.has_copy_request = layer->HasCopyRequest(); | 827 node.data.has_copy_request = layer->HasCopyRequest(); |
| 816 node.data.has_background_filters = !layer->background_filters().IsEmpty(); | 828 node.data.has_background_filters = !layer->background_filters().IsEmpty(); |
| 817 node.data.has_potential_opacity_animation = has_potential_opacity_animation; | 829 node.data.has_potential_opacity_animation = has_potential_opacity_animation; |
| 818 node.data.double_sided = DoubleSided(layer); | 830 node.data.double_sided = DoubleSided(layer); |
| 819 node.data.subtree_hidden = HideLayerAndSubtree(layer); | 831 node.data.subtree_hidden = HideLayerAndSubtree(layer); |
| 820 node.data.is_currently_animating_opacity = layer->OpacityIsAnimating(); | 832 node.data.is_currently_animating_opacity = layer->OpacityIsAnimating(); |
| 821 | 833 |
| 822 if (!is_root) { | 834 if (!is_root) { |
| (...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1264 if (SkColorGetA(color) != 255) | 1276 if (SkColorGetA(color) != 255) |
| 1265 color = SkColorSetA(color, 255); | 1277 color = SkColorSetA(color, 255); |
| 1266 BuildPropertyTreesTopLevelInternal( | 1278 BuildPropertyTreesTopLevelInternal( |
| 1267 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 1279 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
| 1268 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 1280 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
| 1269 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 1281 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
| 1270 device_transform, property_trees, color); | 1282 device_transform, property_trees, color); |
| 1271 } | 1283 } |
| 1272 | 1284 |
| 1273 } // namespace cc | 1285 } // namespace cc |
| OLD | NEW |