Chromium Code Reviews| Index: ui/compositor/transform_animation_curve_adapter.cc |
| diff --git a/ui/compositor/transform_animation_curve_adapter.cc b/ui/compositor/transform_animation_curve_adapter.cc |
| index e698be64f4d1c4fc9db328bc9dbd31baebfe01e2..a73540f2467912248e1e612a24dd40d6e5917458 100644 |
| --- a/ui/compositor/transform_animation_curve_adapter.cc |
| +++ b/ui/compositor/transform_animation_curve_adapter.cc |
| @@ -9,6 +9,16 @@ |
| namespace ui { |
| +namespace { |
| + |
| +static cc::TransformOperations wrapTransform(const gfx::Transform& transform) { |
|
ajuma
2017/07/04 14:50:56
nit: capitalize function name
Ian Vollick
2017/07/04 16:15:18
Done.
|
| + cc::TransformOperations operations; |
| + operations.AppendMatrix(transform); |
| + return operations; |
| +} |
| + |
| +} // namespace |
| + |
| TransformAnimationCurveAdapter::TransformAnimationCurveAdapter( |
| gfx::Tween::Type tween_type, |
| gfx::Transform initial_value, |
| @@ -38,18 +48,19 @@ std::unique_ptr<cc::AnimationCurve> TransformAnimationCurveAdapter::Clone() |
| tween_type_, initial_value_, target_value_, duration_)); |
| } |
| -gfx::Transform TransformAnimationCurveAdapter::GetValue( |
| +cc::TransformOperations TransformAnimationCurveAdapter::GetValue( |
| base::TimeDelta t) const { |
| if (t >= duration_) |
| - return target_value_; |
| + return wrapTransform(target_value_); |
| if (t <= base::TimeDelta()) |
| - return initial_value_; |
| + return wrapTransform(initial_value_); |
| double progress = cc::TimeUtil::Divide(t, duration_); |
| gfx::DecomposedTransform to_return = gfx::BlendDecomposedTransforms( |
| decomposed_target_value_, decomposed_initial_value_, |
| gfx::Tween::CalculateValue(tween_type_, progress)); |
| - return gfx::ComposeTransform(to_return); |
| + |
| + return wrapTransform(gfx::ComposeTransform(to_return)); |
| } |
| bool TransformAnimationCurveAdapter::AnimatedBoundsForBox( |
| @@ -92,7 +103,7 @@ InverseTransformCurveAdapter::InverseTransformCurveAdapter( |
| initial_value_(initial_value), |
| duration_(duration) { |
| effective_initial_value_ = |
| - base_curve_.GetValue(base::TimeDelta()) * initial_value_; |
| + base_curve_.GetValue(base::TimeDelta()).Apply() * initial_value_; |
| } |
| InverseTransformCurveAdapter::~InverseTransformCurveAdapter() { |
| @@ -108,18 +119,20 @@ std::unique_ptr<cc::AnimationCurve> InverseTransformCurveAdapter::Clone() |
| new InverseTransformCurveAdapter(base_curve_, initial_value_, duration_)); |
| } |
| -gfx::Transform InverseTransformCurveAdapter::GetValue(base::TimeDelta t) const { |
| +cc::TransformOperations InverseTransformCurveAdapter::GetValue( |
| + base::TimeDelta t) const { |
| if (t <= base::TimeDelta()) |
| - return initial_value_; |
| + return wrapTransform(initial_value_); |
| - gfx::Transform base_transform = base_curve_.GetValue(t); |
| + gfx::Transform base_transform = base_curve_.GetValue(t).Apply(); |
| // Invert base |
| gfx::Transform to_return(gfx::Transform::kSkipInitialization); |
| bool is_invertible = base_transform.GetInverse(&to_return); |
| DCHECK(is_invertible); |
| to_return.PreconcatTransform(effective_initial_value_); |
| - return to_return; |
| + |
| + return wrapTransform(to_return); |
| } |
| bool InverseTransformCurveAdapter::AnimatedBoundsForBox( |