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

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

Issue 2360003002: cc: Compute SurfacePropertyChanged without depending on owning layer (Closed)
Patch Set: Created 4 years, 3 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
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 831 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 } 842 }
843 843
844 static inline bool HasCopyRequest(Layer* layer) { 844 static inline bool HasCopyRequest(Layer* layer) {
845 return layer->HasCopyRequest(); 845 return layer->HasCopyRequest();
846 } 846 }
847 847
848 static inline bool HasCopyRequest(LayerImpl* layer) { 848 static inline bool HasCopyRequest(LayerImpl* layer) {
849 return !layer->test_properties()->copy_requests.empty(); 849 return !layer->test_properties()->copy_requests.empty();
850 } 850 }
851 851
852 static inline bool PropertyChanged(Layer* layer) {
853 return layer->layer_property_changed() || layer->subtree_property_changed();
854 }
855
856 static inline bool PropertyChanged(LayerImpl* layer) {
857 return false;
858 }
859
852 template <typename LayerType> 860 template <typename LayerType>
853 bool ShouldCreateRenderSurface(LayerType* layer, 861 bool ShouldCreateRenderSurface(LayerType* layer,
854 gfx::Transform current_transform, 862 gfx::Transform current_transform,
855 bool axis_aligned) { 863 bool axis_aligned) {
856 const bool preserves_2d_axis_alignment = 864 const bool preserves_2d_axis_alignment =
857 (current_transform * Transform(layer)).Preserves2dAxisAlignment() && 865 (current_transform * Transform(layer)).Preserves2dAxisAlignment() &&
858 axis_aligned && AnimationsPreserveAxisAlignment(layer); 866 axis_aligned && AnimationsPreserveAxisAlignment(layer);
859 const bool is_root = !Parent(layer); 867 const bool is_root = !Parent(layer);
860 if (is_root) 868 if (is_root)
861 return true; 869 return true;
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 node.has_copy_request = HasCopyRequest(layer); 1026 node.has_copy_request = HasCopyRequest(layer);
1019 node.filters = Filters(layer); 1027 node.filters = Filters(layer);
1020 node.background_filters = BackgroundFilters(layer); 1028 node.background_filters = BackgroundFilters(layer);
1021 node.filters_origin = FiltersOrigin(layer); 1029 node.filters_origin = FiltersOrigin(layer);
1022 node.has_potential_opacity_animation = has_potential_opacity_animation; 1030 node.has_potential_opacity_animation = has_potential_opacity_animation;
1023 node.has_potential_filter_animation = has_potential_filter_animation; 1031 node.has_potential_filter_animation = has_potential_filter_animation;
1024 node.double_sided = DoubleSided(layer); 1032 node.double_sided = DoubleSided(layer);
1025 node.subtree_hidden = HideLayerAndSubtree(layer); 1033 node.subtree_hidden = HideLayerAndSubtree(layer);
1026 node.is_currently_animating_opacity = OpacityIsAnimating(layer); 1034 node.is_currently_animating_opacity = OpacityIsAnimating(layer);
1027 node.is_currently_animating_filter = FilterIsAnimating(layer); 1035 node.is_currently_animating_filter = FilterIsAnimating(layer);
1036 node.effect_changed = PropertyChanged(layer);
jaydasika 2016/09/23 18:18:19 I think this change has the side effect that we no
ajuma 2016/09/23 22:31:12 Done.
1028 1037
1029 EffectTree& effect_tree = data_for_children->property_trees->effect_tree; 1038 EffectTree& effect_tree = data_for_children->property_trees->effect_tree;
1030 if (MaskLayer(layer)) { 1039 if (MaskLayer(layer)) {
1031 node.mask_layer_id = MaskLayer(layer)->id(); 1040 node.mask_layer_id = MaskLayer(layer)->id();
1032 effect_tree.AddMaskOrReplicaLayerId(node.mask_layer_id); 1041 effect_tree.AddMaskOrReplicaLayerId(node.mask_layer_id);
1033 } 1042 }
1034 if (ReplicaLayer(layer)) { 1043 if (ReplicaLayer(layer)) {
1035 node.replica_layer_id = ReplicaLayer(layer)->id(); 1044 node.replica_layer_id = ReplicaLayer(layer)->id();
1036 effect_tree.AddMaskOrReplicaLayerId(node.replica_layer_id); 1045 effect_tree.AddMaskOrReplicaLayerId(node.replica_layer_id);
1037 if (MaskLayer(ReplicaLayer(layer))) { 1046 if (MaskLayer(ReplicaLayer(layer))) {
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
1501 color = SkColorSetA(color, 255); 1510 color = SkColorSetA(color, 255);
1502 BuildPropertyTreesTopLevelInternal( 1511 BuildPropertyTreesTopLevelInternal(
1503 root_layer, page_scale_layer, inner_viewport_scroll_layer, 1512 root_layer, page_scale_layer, inner_viewport_scroll_layer,
1504 outer_viewport_scroll_layer, overscroll_elasticity_layer, 1513 outer_viewport_scroll_layer, overscroll_elasticity_layer,
1505 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 1514 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
1506 device_transform, property_trees, color); 1515 device_transform, property_trees, color);
1507 property_trees->ResetCachedData(); 1516 property_trees->ResetCachedData();
1508 } 1517 }
1509 1518
1510 } // namespace cc 1519 } // namespace cc
OLDNEW
« cc/trees/damage_tracker_unittest.cc ('K') | « cc/trees/layer_tree_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698