OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/layer_tree_host_common.h" | 5 #include "cc/trees/layer_tree_host_common.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/trace_event/trace_event.h" | 9 #include "base/trace_event/trace_event.h" |
10 #include "cc/base/math_util.h" | 10 #include "cc/base/math_util.h" |
(...skipping 1033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1044 // non-scale/translation transforms isn't supported. | 1044 // non-scale/translation transforms isn't supported. |
1045 *combined_maximum_animation_contents_scale = 0.f; | 1045 *combined_maximum_animation_contents_scale = 0.f; |
1046 *combined_is_animating_scale = true; | 1046 *combined_is_animating_scale = true; |
1047 return; | 1047 return; |
1048 } | 1048 } |
1049 | 1049 |
1050 // We currently only support computing maximum scale for combinations of | 1050 // We currently only support computing maximum scale for combinations of |
1051 // scales and translations. We treat all non-translations as potentially | 1051 // scales and translations. We treat all non-translations as potentially |
1052 // affecting scale. Animations that include non-translation/scale components | 1052 // affecting scale. Animations that include non-translation/scale components |
1053 // will cause the computation of MaximumScale below to fail. | 1053 // will cause the computation of MaximumScale below to fail. |
1054 bool layer_is_animating_scale = | 1054 bool layer_is_animating_scale = !layer->HasOnlyTranslationTransforms(); |
1055 !layer->layer_animation_controller()->HasOnlyTranslationTransforms(); | |
1056 | 1055 |
1057 if (!layer_is_animating_scale && !ancestor_is_animating_scale) { | 1056 if (!layer_is_animating_scale && !ancestor_is_animating_scale) { |
1058 *combined_maximum_animation_contents_scale = 0.f; | 1057 *combined_maximum_animation_contents_scale = 0.f; |
1059 *combined_is_animating_scale = false; | 1058 *combined_is_animating_scale = false; |
1060 return; | 1059 return; |
1061 } | 1060 } |
1062 | 1061 |
1063 // We don't attempt to accumulate animation scale from multiple nodes, | 1062 // We don't attempt to accumulate animation scale from multiple nodes, |
1064 // because of the risk of significant overestimation. For example, one node | 1063 // because of the risk of significant overestimation. For example, one node |
1065 // may be increasing scale from 1 to 10 at the same time as a descendant is | 1064 // may be increasing scale from 1 to 10 at the same time as a descendant is |
(...skipping 11 matching lines...) Expand all Loading... |
1077 if (!layer_is_animating_scale) { | 1076 if (!layer_is_animating_scale) { |
1078 gfx::Vector2dF layer_transform_scales = | 1077 gfx::Vector2dF layer_transform_scales = |
1079 MathUtil::ComputeTransform2dScaleComponents(layer->transform(), 0.f); | 1078 MathUtil::ComputeTransform2dScaleComponents(layer->transform(), 0.f); |
1080 *combined_maximum_animation_contents_scale = | 1079 *combined_maximum_animation_contents_scale = |
1081 ancestor_maximum_animation_contents_scale * | 1080 ancestor_maximum_animation_contents_scale * |
1082 std::max(layer_transform_scales.x(), layer_transform_scales.y()); | 1081 std::max(layer_transform_scales.x(), layer_transform_scales.y()); |
1083 return; | 1082 return; |
1084 } | 1083 } |
1085 | 1084 |
1086 float layer_maximum_animated_scale = 0.f; | 1085 float layer_maximum_animated_scale = 0.f; |
1087 if (!layer->layer_animation_controller()->MaximumTargetScale( | 1086 if (!layer->MaximumTargetScale(&layer_maximum_animated_scale)) { |
1088 &layer_maximum_animated_scale)) { | |
1089 *combined_maximum_animation_contents_scale = 0.f; | 1087 *combined_maximum_animation_contents_scale = 0.f; |
1090 return; | 1088 return; |
1091 } | 1089 } |
1092 gfx::Vector2dF ancestor_transform_scales = | 1090 gfx::Vector2dF ancestor_transform_scales = |
1093 MathUtil::ComputeTransform2dScaleComponents(ancestor_transform, 0.f); | 1091 MathUtil::ComputeTransform2dScaleComponents(ancestor_transform, 0.f); |
1094 *combined_maximum_animation_contents_scale = | 1092 *combined_maximum_animation_contents_scale = |
1095 layer_maximum_animated_scale * | 1093 layer_maximum_animated_scale * |
1096 std::max(ancestor_transform_scales.x(), ancestor_transform_scales.y()); | 1094 std::max(ancestor_transform_scales.x(), ancestor_transform_scales.y()); |
1097 } | 1095 } |
1098 | 1096 |
(...skipping 1488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2587 inputs->current_render_surface_layer_list_id); | 2585 inputs->current_render_surface_layer_list_id); |
2588 | 2586 |
2589 // The dummy layer list should not have been used. | 2587 // The dummy layer list should not have been used. |
2590 DCHECK_EQ(0u, dummy_layer_list.size()); | 2588 DCHECK_EQ(0u, dummy_layer_list.size()); |
2591 // A root layer render_surface should always exist after | 2589 // A root layer render_surface should always exist after |
2592 // CalculateDrawProperties. | 2590 // CalculateDrawProperties. |
2593 DCHECK(inputs->root_layer->render_surface()); | 2591 DCHECK(inputs->root_layer->render_surface()); |
2594 } | 2592 } |
2595 | 2593 |
2596 } // namespace cc | 2594 } // namespace cc |
OLD | NEW |