animation_test_common.cc revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "cc/test/animation_test_common.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "cc/animation/animation_id_provider.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/animation/keyframed_animation_curve.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/animation/layer_animation_controller.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/animation/transform_operations.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/layers/layer.h" 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/layers/layer_impl.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using cc::Animation; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using cc::AnimationCurve; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using cc::EaseTimingFunction; 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using cc::FloatKeyframe; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using cc::KeyframedFloatAnimationCurve; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using cc::KeyframedTransformAnimationCurve; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using cc::TimingFunction; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using cc::TransformKeyframe; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc { 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <class Target> 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddOpacityTransition(Target* target, 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float start_opacity, 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float end_opacity, 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool use_timing_function) { 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<KeyframedFloatAnimationCurve> 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) curve(KeyframedFloatAnimationCurve::Create()); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<TimingFunction> func; 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!use_timing_function) 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) func = EaseTimingFunction::Create(); 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (duration > 0.0) 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) curve->AddKeyframe(FloatKeyframe::Create(0.0, start_opacity, func.Pass())); 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) curve->AddKeyframe(FloatKeyframe::Create(duration, 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) end_opacity, 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<cc::TimingFunction>())); 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int id = AnimationIdProvider::NextAnimationId(); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<Animation> animation(Animation::Create( 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) curve.PassAs<AnimationCurve>(), 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) id, 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AnimationIdProvider::NextGroupId(), 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Animation::Opacity)); 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) animation->set_needs_synchronized_start_time(true); 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) target->AddAnimation(animation.Pass()); 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return id; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <class Target> 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddAnimatedTransform(Target* target, 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_x, 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_y) { 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<KeyframedTransformAnimationCurve> 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) curve(KeyframedTransformAnimationCurve::Create()); 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (duration > 0.0) { 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) TransformOperations start_operations; 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) start_operations.AppendTranslate(delta_x, delta_y, 0.0); 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) curve->AddKeyframe(TransformKeyframe::Create( 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0.0, 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) start_operations, 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<cc::TimingFunction>())); 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) TransformOperations operations; 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) operations.AppendTranslate(delta_x, delta_y, 0.0); 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) curve->AddKeyframe(TransformKeyframe::Create( 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) duration, 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) operations, 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<cc::TimingFunction>())); 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int id = AnimationIdProvider::NextAnimationId(); 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<Animation> animation(Animation::Create( 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) curve.PassAs<AnimationCurve>(), 84c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) id, 85c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AnimationIdProvider::NextGroupId(), 86c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) Animation::Transform)); 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) animation->set_needs_synchronized_start_time(true); 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) target->AddAnimation(animation.Pass()); 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return id; 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FakeFloatAnimationCurve::FakeFloatAnimationCurve() 94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : duration_(1.0) {} 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FakeFloatAnimationCurve::FakeFloatAnimationCurve(double duration) 97c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : duration_(duration) {} 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 99c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)FakeFloatAnimationCurve::~FakeFloatAnimationCurve() {} 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)double FakeFloatAnimationCurve::Duration() const { 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return duration_; 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)float FakeFloatAnimationCurve::GetValue(double now) const { 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0.0f; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<cc::AnimationCurve> FakeFloatAnimationCurve::Clone() const { 1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return make_scoped_ptr( 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) new FakeFloatAnimationCurve).PassAs<cc::AnimationCurve>(); 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FakeTransformTransition::FakeTransformTransition(double duration) 115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : duration_(duration) {} 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 117c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)FakeTransformTransition::~FakeTransformTransition() {} 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)double FakeTransformTransition::Duration() const { 1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return duration_; 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)gfx::Transform FakeTransformTransition::GetValue(double time) const { 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return gfx::Transform(); 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<cc::AnimationCurve> FakeTransformTransition::Clone() const { 1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return make_scoped_ptr( 1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) new FakeTransformTransition(*this)).PassAs<cc::AnimationCurve>(); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FakeFloatTransition::FakeFloatTransition(double duration, float from, float to) 134c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : duration_(duration), from_(from), to_(to) {} 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 136c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)FakeFloatTransition::~FakeFloatTransition() {} 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)double FakeFloatTransition::Duration() const { 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return duration_; 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)float FakeFloatTransition::GetValue(double time) const { 1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) time /= duration_; 1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (time >= 1.0) 1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) time = 1.0; 1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (1.0 - time) * from_ + time * to_; 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)FakeLayerAnimationValueObserver::FakeLayerAnimationValueObserver() 150c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : opacity_(0.0f) {} 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 152c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)FakeLayerAnimationValueObserver::~FakeLayerAnimationValueObserver() {} 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void FakeLayerAnimationValueObserver::OnOpacityAnimated(float opacity) { 1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) opacity_ = opacity; 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void FakeLayerAnimationValueObserver::OnTransformAnimated( 1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Transform& transform) { 1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) transform_ = transform; 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool FakeLayerAnimationValueObserver::IsActive() const { 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<cc::AnimationCurve> FakeFloatTransition::Clone() const { 1682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return make_scoped_ptr( 1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) new FakeFloatTransition(*this)).PassAs<cc::AnimationCurve>(); 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddOpacityTransitionToController(cc::LayerAnimationController* controller, 1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float start_opacity, 1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float end_opacity, 1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool use_timing_function) { 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddOpacityTransition(controller, 1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) duration, 1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) start_opacity, 1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) end_opacity, 1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) use_timing_function); 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddAnimatedTransformToController(cc::LayerAnimationController* controller, 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_x, 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_y) { 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddAnimatedTransform(controller, 1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) duration, 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) delta_x, 1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) delta_y); 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddOpacityTransitionToLayer(cc::Layer* layer, 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float start_opacity, 1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float end_opacity, 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool use_timing_function) { 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddOpacityTransition(layer, 2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) duration, 2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) start_opacity, 2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) end_opacity, 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) use_timing_function); 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddOpacityTransitionToLayer(cc::LayerImpl* layer, 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float start_opacity, 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float end_opacity, 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool use_timing_function) { 2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddOpacityTransition(layer->layer_animation_controller(), 2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) duration, 2132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) start_opacity, 2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) end_opacity, 2152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) use_timing_function); 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddAnimatedTransformToLayer(cc::Layer* layer, 2192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_x, 2212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_y) { 2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddAnimatedTransform(layer, duration, delta_x, delta_y); 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddAnimatedTransformToLayer(cc::LayerImpl* layer, 2262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 2272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_x, 2282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_y) { 2292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddAnimatedTransform(layer->layer_animation_controller(), 2302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) duration, 2312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) delta_x, 2322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) delta_y); 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace cc 236