Index: cc/animation/timing_function.h |
diff --git a/cc/animation/timing_function.h b/cc/animation/timing_function.h |
index cc979398e4b4b098ece44d57269c1e220605129b..9dd426ed0f9e2950217678b6b19a0c442894d6e4 100644 |
--- a/cc/animation/timing_function.h |
+++ b/cc/animation/timing_function.h |
@@ -8,6 +8,7 @@ |
#include "cc/animation/animation_curve.h" |
#include "cc/base/cc_export.h" |
#include "ui/gfx/geometry/cubic_bezier.h" |
+#include "ui/gfx/geometry/steps.h" |
namespace cc { |
@@ -53,6 +54,28 @@ class CC_EXPORT CubicBezierTimingFunction : public TimingFunction { |
DISALLOW_ASSIGN(CubicBezierTimingFunction); |
}; |
+class CC_EXPORT StepsTimingFunction : public TimingFunction { |
+ public: |
+ static scoped_ptr<StepsTimingFunction> Create(int steps, bool steps_at_start); |
+ virtual ~StepsTimingFunction(); |
+ |
+ virtual float GetValue(double time) const OVERRIDE; |
+ virtual scoped_ptr<AnimationCurve> Clone() const OVERRIDE; |
+ virtual void Range(float* min, float* max) const OVERRIDE; |
+ // XXX: Should Velocity be a CubicBezierTimingFunction only? It seems to be |
+ // used only for ScrollOffsetAnimationCurve. Do ScrollOffsetAnimationCurve |
+ // with non bezier curves make sense? |
+ virtual float Velocity(double time) const OVERRIDE; |
+ |
+ protected: |
+ StepsTimingFunction(int steps, bool steps_at_start); |
+ |
+ gfx::Steps steps_; |
+ |
+ private: |
+ DISALLOW_ASSIGN(StepsTimingFunction); |
+}; |
+ |
class CC_EXPORT EaseTimingFunction { |
public: |
static scoped_ptr<TimingFunction> Create(); |