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

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

Issue 1859733002: cc: Remove usage of Layer draw_transform (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Resolve comments Created 4 years, 8 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/draw_property_utils.h ('k') | 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 778 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 if (can_render_to_separate_surface) 789 if (can_render_to_separate_surface)
790 ValidateRenderSurfaceForLayer(layer); 790 ValidateRenderSurfaceForLayer(layer);
791 #endif 791 #endif
792 } 792 }
793 LayerImplList update_layer_list; 793 LayerImplList update_layer_list;
794 ComputeVisibleRectsInternal(root_layer, property_trees, 794 ComputeVisibleRectsInternal(root_layer, property_trees,
795 can_render_to_separate_surface, 795 can_render_to_separate_surface,
796 &update_layer_list, visible_layer_list); 796 &update_layer_list, visible_layer_list);
797 } 797 }
798 798
799 template <typename LayerType> 799 gfx::Transform DrawTransform(const LayerImpl* layer,
800 static gfx::Transform DrawTransformInternal(const LayerType* layer, 800 const TransformTree& tree) {
801 const TransformNode* node) { 801 const TransformNode* node = tree.Node(layer->transform_tree_index());
802 gfx::Transform xform; 802 gfx::Transform xform;
803 const bool owns_non_root_surface = 803 const bool owns_non_root_surface =
804 !IsRootLayer(layer) && layer->has_render_surface(); 804 !IsRootLayer(layer) && layer->has_render_surface();
805 if (!owns_non_root_surface) { 805 if (!owns_non_root_surface) {
806 // If you're not the root, or you don't own a surface, you need to apply 806 // If you're not the root, or you don't own a surface, you need to apply
807 // your local offset. 807 // your local offset.
808 xform = node->data.to_target; 808 xform = node->data.to_target;
809 if (layer->should_flatten_transform_from_property_tree()) 809 if (layer->should_flatten_transform_from_property_tree())
810 xform.FlattenTo2d(); 810 xform.FlattenTo2d();
811 xform.Translate(layer->offset_to_transform_parent().x(), 811 xform.Translate(layer->offset_to_transform_parent().x(),
812 layer->offset_to_transform_parent().y()); 812 layer->offset_to_transform_parent().y());
813 } else { 813 } else {
814 // Surfaces need to apply their sublayer scale. 814 // Surfaces need to apply their sublayer scale.
815 xform.Scale(node->data.sublayer_scale.x(), node->data.sublayer_scale.y()); 815 xform.Scale(node->data.sublayer_scale.x(), node->data.sublayer_scale.y());
816 } 816 }
817 return xform; 817 return xform;
818 } 818 }
819 819
820 gfx::Transform DrawTransform(const Layer* layer, const TransformTree& tree) {
821 return DrawTransformInternal(layer, tree.Node(layer->transform_tree_index()));
822 }
823
824 gfx::Transform DrawTransform(const LayerImpl* layer,
825 const TransformTree& tree) {
826 return DrawTransformInternal(layer, tree.Node(layer->transform_tree_index()));
827 }
828
829 static void SetSurfaceDrawTransform(const TransformTree& tree, 820 static void SetSurfaceDrawTransform(const TransformTree& tree,
830 RenderSurfaceImpl* render_surface) { 821 RenderSurfaceImpl* render_surface) {
831 const TransformNode* node = tree.Node(render_surface->TransformTreeIndex()); 822 const TransformNode* node = tree.Node(render_surface->TransformTreeIndex());
832 // The draw transform of root render surface is identity tranform. 823 // The draw transform of root render surface is identity tranform.
833 if (node->id == 1) { 824 if (node->id == 1) {
834 render_surface->SetDrawTransform(gfx::Transform()); 825 render_surface->SetDrawTransform(gfx::Transform());
835 return; 826 return;
836 } 827 }
837 828
838 gfx::Transform render_surface_transform; 829 gfx::Transform render_surface_transform;
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
1017 property_trees->transform_tree.Node(layer->transform_tree_index()); 1008 property_trees->transform_tree.Node(layer->transform_tree_index());
1018 const EffectNode* effect_node = 1009 const EffectNode* effect_node =
1019 property_trees->effect_tree.Node(layer->effect_tree_index()); 1010 property_trees->effect_tree.Node(layer->effect_tree_index());
1020 const ClipNode* clip_node = 1011 const ClipNode* clip_node =
1021 property_trees->clip_tree.Node(layer->clip_tree_index()); 1012 property_trees->clip_tree.Node(layer->clip_tree_index());
1022 1013
1023 layer->draw_properties().screen_space_transform = 1014 layer->draw_properties().screen_space_transform =
1024 ScreenSpaceTransformInternal(layer, transform_node); 1015 ScreenSpaceTransformInternal(layer, transform_node);
1025 if (property_trees->non_root_surfaces_enabled) { 1016 if (property_trees->non_root_surfaces_enabled) {
1026 layer->draw_properties().target_space_transform = 1017 layer->draw_properties().target_space_transform =
1027 DrawTransformInternal(layer, transform_node); 1018 DrawTransform(layer, property_trees->transform_tree);
1028 } else { 1019 } else {
1029 layer->draw_properties().target_space_transform = 1020 layer->draw_properties().target_space_transform =
1030 layer->draw_properties().screen_space_transform; 1021 layer->draw_properties().screen_space_transform;
1031 } 1022 }
1032 layer->draw_properties().screen_space_transform_is_animating = 1023 layer->draw_properties().screen_space_transform_is_animating =
1033 transform_node->data.to_screen_is_animated; 1024 transform_node->data.to_screen_is_animated;
1034 if (layer->layer_tree_impl() 1025 if (layer->layer_tree_impl()
1035 ->settings() 1026 ->settings()
1036 .layer_transforms_should_scale_layer_contents) { 1027 .layer_transforms_should_scale_layer_contents) {
1037 layer->draw_properties().maximum_animation_contents_scale = 1028 layer->draw_properties().maximum_animation_contents_scale =
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
1176 void UpdateElasticOverscroll(PropertyTrees* property_trees, 1167 void UpdateElasticOverscroll(PropertyTrees* property_trees,
1177 const Layer* overscroll_elasticity_layer, 1168 const Layer* overscroll_elasticity_layer,
1178 const gfx::Vector2dF& elastic_overscroll) { 1169 const gfx::Vector2dF& elastic_overscroll) {
1179 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, 1170 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer,
1180 elastic_overscroll); 1171 elastic_overscroll);
1181 } 1172 }
1182 1173
1183 } // namespace draw_property_utils 1174 } // namespace draw_property_utils
1184 1175
1185 } // namespace cc 1176 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/draw_property_utils.h ('k') | cc/trees/layer_tree_host_common_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698