animation_test_common.cc revision 4e180b6a0b4720a9b8e9e959a882386f690f08ff
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) 934e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)template <class Target> 944e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)int AddAnimatedFilter(Target* target, 954e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) double duration, 964e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) float start_brightness, 974e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) float end_brightness) { 984e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) scoped_ptr<KeyframedFilterAnimationCurve> 994e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) curve(KeyframedFilterAnimationCurve::Create()); 1004e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1014e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (duration > 0.0) { 1024e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FilterOperations start_filters; 1034e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) start_filters.Append( 1044e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FilterOperation::CreateBrightnessFilter(start_brightness)); 1054e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) curve->AddKeyframe(FilterKeyframe::Create( 1064e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 0.0, start_filters, scoped_ptr<cc::TimingFunction>())); 1074e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 1084e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1094e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FilterOperations filters; 1104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) filters.Append(FilterOperation::CreateBrightnessFilter(end_brightness)); 1114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) curve->AddKeyframe(FilterKeyframe::Create( 1124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) duration, filters, scoped_ptr<cc::TimingFunction>())); 1134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) int id = AnimationIdProvider::NextAnimationId(); 1154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) scoped_ptr<Animation> animation(Animation::Create( 1174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) curve.PassAs<AnimationCurve>(), 1184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) id, 1194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) AnimationIdProvider::NextGroupId(), 1204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) Animation::Filter)); 1214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) animation->set_needs_synchronized_start_time(true); 1224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) target->AddAnimation(animation.Pass()); 1244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return id; 1254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 1264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FakeFloatAnimationCurve::FakeFloatAnimationCurve() 128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : duration_(1.0) {} 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FakeFloatAnimationCurve::FakeFloatAnimationCurve(double duration) 131c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : duration_(duration) {} 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 133c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)FakeFloatAnimationCurve::~FakeFloatAnimationCurve() {} 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)double FakeFloatAnimationCurve::Duration() const { 1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return duration_; 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)float FakeFloatAnimationCurve::GetValue(double now) const { 1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0.0f; 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<cc::AnimationCurve> FakeFloatAnimationCurve::Clone() const { 1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return make_scoped_ptr( 1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) new FakeFloatAnimationCurve).PassAs<cc::AnimationCurve>(); 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FakeTransformTransition::FakeTransformTransition(double duration) 149c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : duration_(duration) {} 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 151c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)FakeTransformTransition::~FakeTransformTransition() {} 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)double FakeTransformTransition::Duration() const { 1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return duration_; 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)gfx::Transform FakeTransformTransition::GetValue(double time) const { 1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return gfx::Transform(); 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1613551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)bool FakeTransformTransition::AnimatedBoundsForBox(const gfx::BoxF& box, 1623551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) gfx::BoxF* bounds) const { 1633551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) return false; 1643551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} 1653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<cc::AnimationCurve> FakeTransformTransition::Clone() const { 1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return make_scoped_ptr( 1682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) new FakeTransformTransition(*this)).PassAs<cc::AnimationCurve>(); 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FakeFloatTransition::FakeFloatTransition(double duration, float from, float to) 173c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : duration_(duration), from_(from), to_(to) {} 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)FakeFloatTransition::~FakeFloatTransition() {} 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)double FakeFloatTransition::Duration() const { 1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return duration_; 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)float FakeFloatTransition::GetValue(double time) const { 1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) time /= duration_; 1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (time >= 1.0) 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) time = 1.0; 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (1.0 - time) * from_ + time * to_; 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)FakeLayerAnimationValueObserver::FakeLayerAnimationValueObserver() 189c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : opacity_(0.0f) {} 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 191c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)FakeLayerAnimationValueObserver::~FakeLayerAnimationValueObserver() {} 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1934e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void FakeLayerAnimationValueObserver::OnFilterAnimated( 1944e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const FilterOperations& filters) { 1954e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) filters_ = filters; 1964e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 1974e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void FakeLayerAnimationValueObserver::OnOpacityAnimated(float opacity) { 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) opacity_ = opacity; 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void FakeLayerAnimationValueObserver::OnTransformAnimated( 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Transform& transform) { 2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) transform_ = transform; 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool FakeLayerAnimationValueObserver::IsActive() const { 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 21190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)bool FakeInactiveLayerAnimationValueObserver::IsActive() const { 21290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return false; 21390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 21490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 2152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<cc::AnimationCurve> FakeFloatTransition::Clone() const { 2162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return make_scoped_ptr( 2172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) new FakeFloatTransition(*this)).PassAs<cc::AnimationCurve>(); 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddOpacityTransitionToController(cc::LayerAnimationController* controller, 2212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float start_opacity, 2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float end_opacity, 2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool use_timing_function) { 2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddOpacityTransition(controller, 2262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) duration, 2272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) start_opacity, 2282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) end_opacity, 2292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) use_timing_function); 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddAnimatedTransformToController(cc::LayerAnimationController* controller, 2332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 2342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_x, 2352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_y) { 2362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddAnimatedTransform(controller, 2372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) duration, 2382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) delta_x, 2392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) delta_y); 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)int AddAnimatedFilterToController(cc::LayerAnimationController* controller, 2434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) double duration, 2444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) float start_brightness, 2454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) float end_brightness) { 2464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return AddAnimatedFilter( 2474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) controller, duration, start_brightness, end_brightness); 2484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 2494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddOpacityTransitionToLayer(cc::Layer* layer, 2512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 2522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float start_opacity, 2532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float end_opacity, 2542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool use_timing_function) { 2552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddOpacityTransition(layer, 2562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) duration, 2572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) start_opacity, 2582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) end_opacity, 2592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) use_timing_function); 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddOpacityTransitionToLayer(cc::LayerImpl* layer, 2632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 2642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float start_opacity, 2652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) float end_opacity, 2662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool use_timing_function) { 2672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddOpacityTransition(layer->layer_animation_controller(), 2682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) duration, 2692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) start_opacity, 2702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) end_opacity, 2712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) use_timing_function); 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddAnimatedTransformToLayer(cc::Layer* layer, 2752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 2762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_x, 2772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_y) { 2782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddAnimatedTransform(layer, duration, delta_x, delta_y); 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int AddAnimatedTransformToLayer(cc::LayerImpl* layer, 2822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double duration, 2832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_x, 2842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int delta_y) { 2852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return AddAnimatedTransform(layer->layer_animation_controller(), 2862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) duration, 2872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) delta_x, 2882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) delta_y); 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2914e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)int AddAnimatedFilterToLayer(cc::Layer* layer, 2924e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) double duration, 2934e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) float start_brightness, 2944e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) float end_brightness) { 2954e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return AddAnimatedFilter(layer, duration, start_brightness, end_brightness); 2964e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 2974e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2984e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)int AddAnimatedFilterToLayer(cc::LayerImpl* layer, 2994e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) double duration, 3004e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) float start_brightness, 3014e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) float end_brightness) { 3024e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return AddAnimatedFilter(layer->layer_animation_controller(), 3034e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) duration, 3044e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) start_brightness, 3054e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) end_brightness); 3064e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 3074e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 3082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace cc 309