summaryrefslogtreecommitdiffstats
path: root/cc/animation/animation_curve.h
diff options
context:
space:
mode:
authoravallee@chromium.org <avallee@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-24 22:51:36 +0000
committeravallee@chromium.org <avallee@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-24 22:51:36 +0000
commit12076fa6270fda6ea535da61cafe7116ec2e6f00 (patch)
tree4cda7c226d5fbba708df61cdb3c7c517a71f8ee9 /cc/animation/animation_curve.h
parent565f6193e85668f26de953516dbd8a341ae2b457 (diff)
downloadchromium_src-12076fa6270fda6ea535da61cafe7116ec2e6f00.zip
chromium_src-12076fa6270fda6ea535da61cafe7116ec2e6f00.tar.gz
chromium_src-12076fa6270fda6ea535da61cafe7116ec2e6f00.tar.bz2
Add Color animation curves.
Implement animation curves for colors. This is the first step towards accelerating background-color animations. + Add ColorValueBetween to gfx::Tween. + Add test/color_utils which gives EXPECT_COLOR_EQ to check SkColors and print in a sane format. ~ Fixed discrepancy between two methods of interpolating ints. ~ Factored out GetProgress into template function to simplify code in the implementations of GetValue(double), there was a lot of duplication there. TESTED: Added tests for the new KeyframedColorAnimations and AnimatedColor classes. Added tests to tweening. R=ajuma BUG=290234 Review URL: https://codereview.chromium.org/25901002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230856 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/animation/animation_curve.h')
-rw-r--r--cc/animation/animation_curve.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/cc/animation/animation_curve.h b/cc/animation/animation_curve.h
index f4cdb10..f84bb1a 100644
--- a/cc/animation/animation_curve.h
+++ b/cc/animation/animation_curve.h
@@ -16,6 +16,7 @@ class BoxF;
namespace cc {
+class ColorAnimationCurve;
class FilterAnimationCurve;
class FloatAnimationCurve;
class TransformAnimationCurve;
@@ -24,7 +25,7 @@ class TransformOperations;
// An animation curve is a function that returns a value given a time.
class CC_EXPORT AnimationCurve {
public:
- enum CurveType { Float, Transform, Filter };
+ enum CurveType { Color, Float, Transform, Filter };
virtual ~AnimationCurve() {}
@@ -32,11 +33,22 @@ class CC_EXPORT AnimationCurve {
virtual CurveType Type() const = 0;
virtual scoped_ptr<AnimationCurve> Clone() const = 0;
+ const ColorAnimationCurve* ToColorAnimationCurve() const;
const FloatAnimationCurve* ToFloatAnimationCurve() const;
const TransformAnimationCurve* ToTransformAnimationCurve() const;
const FilterAnimationCurve* ToFilterAnimationCurve() const;
};
+class CC_EXPORT ColorAnimationCurve : public AnimationCurve {
+ public:
+ virtual ~ColorAnimationCurve() {}
+
+ virtual SkColor GetValue(double t) const = 0;
+
+ // Partial Animation implementation.
+ virtual CurveType Type() const OVERRIDE;
+};
+
class CC_EXPORT FloatAnimationCurve : public AnimationCurve {
public:
virtual ~FloatAnimationCurve() {}