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

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

Issue 1995403002: cc: Update effect_tree backface visibility when transform is updated. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2704
Patch Set: Created 4 years, 7 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 | « no previous file | cc/trees/layer_tree_host_common_unittest.cc » ('j') | 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/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 689 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 LayerImpl* root_layer, 700 LayerImpl* root_layer,
701 PropertyTrees* property_trees, 701 PropertyTrees* property_trees,
702 bool can_render_to_separate_surface, 702 bool can_render_to_separate_surface,
703 LayerImplList* update_layer_list, 703 LayerImplList* update_layer_list,
704 std::vector<LayerImpl*>* visible_layer_list) { 704 std::vector<LayerImpl*>* visible_layer_list) {
705 if (property_trees->non_root_surfaces_enabled != 705 if (property_trees->non_root_surfaces_enabled !=
706 can_render_to_separate_surface) { 706 can_render_to_separate_surface) {
707 property_trees->non_root_surfaces_enabled = can_render_to_separate_surface; 707 property_trees->non_root_surfaces_enabled = can_render_to_separate_surface;
708 property_trees->transform_tree.set_needs_update(true); 708 property_trees->transform_tree.set_needs_update(true);
709 } 709 }
710 if (property_trees->transform_tree.needs_update()) 710 if (property_trees->transform_tree.needs_update()) {
711 property_trees->clip_tree.set_needs_update(true); 711 property_trees->clip_tree.set_needs_update(true);
712 property_trees->effect_tree.set_needs_update(true);
713 }
712 ComputeTransforms(&property_trees->transform_tree); 714 ComputeTransforms(&property_trees->transform_tree);
713 ComputeClips(&property_trees->clip_tree, property_trees->transform_tree, 715 ComputeClips(&property_trees->clip_tree, property_trees->transform_tree,
714 can_render_to_separate_surface); 716 can_render_to_separate_surface);
715 ComputeEffects(&property_trees->effect_tree); 717 ComputeEffects(&property_trees->effect_tree);
716 718
717 FindLayersThatNeedUpdates( 719 FindLayersThatNeedUpdates(
718 root_layer->layer_tree_impl(), property_trees->transform_tree, 720 root_layer->layer_tree_impl(), property_trees->transform_tree,
719 property_trees->effect_tree, update_layer_list, visible_layer_list); 721 property_trees->effect_tree, update_layer_list, visible_layer_list);
720 CalculateVisibleRects<LayerImpl>( 722 CalculateVisibleRects<LayerImpl>(
721 *visible_layer_list, property_trees->clip_tree, 723 *visible_layer_list, property_trees->clip_tree,
722 property_trees->transform_tree, can_render_to_separate_surface); 724 property_trees->transform_tree, can_render_to_separate_surface);
723 } 725 }
724 726
725 void UpdateRenderSurfaces(Layer* root_layer, PropertyTrees* property_trees) { 727 void UpdateRenderSurfaces(Layer* root_layer, PropertyTrees* property_trees) {
726 UpdateRenderSurfacesForLayersRecursive(&property_trees->effect_tree, 728 UpdateRenderSurfacesForLayersRecursive(&property_trees->effect_tree,
727 root_layer); 729 root_layer);
728 #if DCHECK_IS_ON() 730 #if DCHECK_IS_ON()
729 ValidateRenderSurfacesRecursive(root_layer); 731 ValidateRenderSurfacesRecursive(root_layer);
730 #endif 732 #endif
731 } 733 }
732 734
733 void UpdatePropertyTrees(PropertyTrees* property_trees, 735 void UpdatePropertyTrees(PropertyTrees* property_trees,
734 bool can_render_to_separate_surface) { 736 bool can_render_to_separate_surface) {
735 if (property_trees->non_root_surfaces_enabled != 737 if (property_trees->non_root_surfaces_enabled !=
736 can_render_to_separate_surface) { 738 can_render_to_separate_surface) {
737 property_trees->non_root_surfaces_enabled = can_render_to_separate_surface; 739 property_trees->non_root_surfaces_enabled = can_render_to_separate_surface;
738 property_trees->transform_tree.set_needs_update(true); 740 property_trees->transform_tree.set_needs_update(true);
739 } 741 }
740 if (property_trees->transform_tree.needs_update()) 742 if (property_trees->transform_tree.needs_update()) {
741 property_trees->clip_tree.set_needs_update(true); 743 property_trees->clip_tree.set_needs_update(true);
744 property_trees->effect_tree.set_needs_update(true);
745 }
742 ComputeTransforms(&property_trees->transform_tree); 746 ComputeTransforms(&property_trees->transform_tree);
743 ComputeClips(&property_trees->clip_tree, property_trees->transform_tree, 747 ComputeClips(&property_trees->clip_tree, property_trees->transform_tree,
744 can_render_to_separate_surface); 748 can_render_to_separate_surface);
745 ComputeEffects(&property_trees->effect_tree); 749 ComputeEffects(&property_trees->effect_tree);
746 } 750 }
747 751
748 void ComputeVisibleRectsForTesting(PropertyTrees* property_trees, 752 void ComputeVisibleRectsForTesting(PropertyTrees* property_trees,
749 bool can_render_to_separate_surface, 753 bool can_render_to_separate_surface,
750 LayerList* update_layer_list) { 754 LayerList* update_layer_list) {
751 CalculateVisibleRects<Layer>(*update_layer_list, property_trees->clip_tree, 755 CalculateVisibleRects<Layer>(*update_layer_list, property_trees->clip_tree,
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
1177 void UpdateElasticOverscroll(PropertyTrees* property_trees, 1181 void UpdateElasticOverscroll(PropertyTrees* property_trees,
1178 const Layer* overscroll_elasticity_layer, 1182 const Layer* overscroll_elasticity_layer,
1179 const gfx::Vector2dF& elastic_overscroll) { 1183 const gfx::Vector2dF& elastic_overscroll) {
1180 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, 1184 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer,
1181 elastic_overscroll); 1185 elastic_overscroll);
1182 } 1186 }
1183 1187
1184 } // namespace draw_property_utils 1188 } // namespace draw_property_utils
1185 1189
1186 } // namespace cc 1190 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/trees/layer_tree_host_common_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698