Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(81)

Side by Side Diff: cc/trees/property_tree_builder.cc

Issue 2099743002: cc: Move background filters to the effect tree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ' Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/trees/property_tree.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 698 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 } 709 }
710 710
711 static inline float Opacity(Layer* layer) { 711 static inline float Opacity(Layer* layer) {
712 return layer->opacity(); 712 return layer->opacity();
713 } 713 }
714 714
715 static inline float Opacity(LayerImpl* layer) { 715 static inline float Opacity(LayerImpl* layer) {
716 return layer->test_properties()->opacity; 716 return layer->test_properties()->opacity;
717 } 717 }
718 718
719 static inline const FilterOperations& BackgroundFilters(Layer* layer) {
720 return layer->background_filters();
721 }
722
723 static inline const FilterOperations& BackgroundFilters(LayerImpl* layer) {
724 return layer->test_properties()->background_filters;
725 }
726
719 static inline bool HideLayerAndSubtree(Layer* layer) { 727 static inline bool HideLayerAndSubtree(Layer* layer) {
720 return layer->hide_layer_and_subtree(); 728 return layer->hide_layer_and_subtree();
721 } 729 }
722 730
723 static inline bool HideLayerAndSubtree(LayerImpl* layer) { 731 static inline bool HideLayerAndSubtree(LayerImpl* layer) {
724 return layer->test_properties()->hide_layer_and_subtree; 732 return layer->test_properties()->hide_layer_and_subtree;
725 } 733 }
726 734
727 static inline bool AlwaysUseActiveTreeOpacity(Layer* layer) { 735 static inline bool AlwaysUseActiveTreeOpacity(Layer* layer) {
728 return layer->AlwaysUseActiveTreeOpacity(); 736 return layer->AlwaysUseActiveTreeOpacity();
(...skipping 27 matching lines...) Expand all
756 if (MaskLayer(layer) && ReplicaLayer(Parent(layer)) != layer) { 764 if (MaskLayer(layer) && ReplicaLayer(Parent(layer)) != layer) {
757 return true; 765 return true;
758 } 766 }
759 767
760 // If the layer has a reflection. 768 // If the layer has a reflection.
761 if (ReplicaLayer(layer)) { 769 if (ReplicaLayer(layer)) {
762 return true; 770 return true;
763 } 771 }
764 772
765 // If the layer uses a CSS filter. 773 // If the layer uses a CSS filter.
766 if (!layer->filters().IsEmpty() || !layer->background_filters().IsEmpty()) { 774 if (!layer->filters().IsEmpty() || !BackgroundFilters(layer).IsEmpty()) {
767 return true; 775 return true;
768 } 776 }
769 777
770 // If the layer will use a CSS filter. In this case, the animation 778 // If the layer will use a CSS filter. In this case, the animation
771 // will start and add a filter to this layer, so it needs a surface. 779 // will start and add a filter to this layer, so it needs a surface.
772 if (layer->HasPotentiallyRunningFilterAnimation()) { 780 if (layer->HasPotentiallyRunningFilterAnimation()) {
773 return true; 781 return true;
774 } 782 }
775 783
776 int num_descendants_that_draw_content = NumDescendantsThatDrawContent(layer); 784 int num_descendants_that_draw_content = NumDescendantsThatDrawContent(layer);
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
892 EffectNode node; 900 EffectNode node;
893 node.owner_id = layer->id(); 901 node.owner_id = layer->id();
894 if (AlwaysUseActiveTreeOpacity(layer)) { 902 if (AlwaysUseActiveTreeOpacity(layer)) {
895 data_for_children->property_trees->always_use_active_tree_opacity_effect_ids 903 data_for_children->property_trees->always_use_active_tree_opacity_effect_ids
896 .push_back(node.owner_id); 904 .push_back(node.owner_id);
897 } 905 }
898 906
899 node.data.opacity = Opacity(layer); 907 node.data.opacity = Opacity(layer);
900 node.data.has_render_surface = should_create_render_surface; 908 node.data.has_render_surface = should_create_render_surface;
901 node.data.has_copy_request = HasCopyRequest(layer); 909 node.data.has_copy_request = HasCopyRequest(layer);
902 node.data.has_background_filters = !layer->background_filters().IsEmpty(); 910 node.data.background_filters = BackgroundFilters(layer);
903 node.data.has_potential_opacity_animation = has_potential_opacity_animation; 911 node.data.has_potential_opacity_animation = has_potential_opacity_animation;
904 node.data.double_sided = DoubleSided(layer); 912 node.data.double_sided = DoubleSided(layer);
905 node.data.subtree_hidden = HideLayerAndSubtree(layer); 913 node.data.subtree_hidden = HideLayerAndSubtree(layer);
906 node.data.is_currently_animating_opacity = layer->OpacityIsAnimating(); 914 node.data.is_currently_animating_opacity = layer->OpacityIsAnimating();
907 915
908 EffectTree& effect_tree = data_for_children->property_trees->effect_tree; 916 EffectTree& effect_tree = data_for_children->property_trees->effect_tree;
909 if (MaskLayer(layer)) { 917 if (MaskLayer(layer)) {
910 node.data.mask_layer_id = MaskLayer(layer)->id(); 918 node.data.mask_layer_id = MaskLayer(layer)->id();
911 effect_tree.AddMaskOrReplicaLayerId(node.data.mask_layer_id); 919 effect_tree.AddMaskOrReplicaLayerId(node.data.mask_layer_id);
912 } 920 }
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after
1381 if (SkColorGetA(color) != 255) 1389 if (SkColorGetA(color) != 255)
1382 color = SkColorSetA(color, 255); 1390 color = SkColorSetA(color, 255);
1383 BuildPropertyTreesTopLevelInternal( 1391 BuildPropertyTreesTopLevelInternal(
1384 root_layer, page_scale_layer, inner_viewport_scroll_layer, 1392 root_layer, page_scale_layer, inner_viewport_scroll_layer,
1385 outer_viewport_scroll_layer, overscroll_elasticity_layer, 1393 outer_viewport_scroll_layer, overscroll_elasticity_layer,
1386 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 1394 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
1387 device_transform, property_trees, color); 1395 device_transform, property_trees, color);
1388 } 1396 }
1389 1397
1390 } // namespace cc 1398 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/property_tree.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698