| Index: Source/platform/animation/TimingFunction.h
|
| diff --git a/Source/platform/animation/TimingFunction.h b/Source/platform/animation/TimingFunction.h
|
| index c5c6c0620d38ae1f762554604c571b8f5a132474..e384dc5be6deba8b28bc7626503b09ac4f3a1041 100644
|
| --- a/Source/platform/animation/TimingFunction.h
|
| +++ b/Source/platform/animation/TimingFunction.h
|
| @@ -38,7 +38,6 @@
|
| #include "wtf/text/WTFString.h"
|
| #include <algorithm>
|
|
|
| -
|
| namespace WebCore {
|
|
|
| class PLATFORM_EXPORT TimingFunction : public RefCounted<TimingFunction> {
|
| @@ -56,7 +55,7 @@ public:
|
|
|
| // Evaluates the timing function at the given fraction. The accuracy parameter provides a hint as to the required
|
| // accuracy and is not guaranteed.
|
| - virtual double evaluate(double fraction, double accuracy) const =0;
|
| + virtual double evaluate(double fraction, double accuracy) const = 0;
|
|
|
| protected:
|
| TimingFunction(Type type)
|
| @@ -88,9 +87,6 @@ private:
|
| }
|
| };
|
|
|
| -// Forward declare so we can friend it below. Don't use in production code!
|
| -class ChainedTimingFunctionTestHelper;
|
| -
|
| class PLATFORM_EXPORT CubicBezierTimingFunction FINAL : public TimingFunction {
|
| public:
|
| enum SubType {
|
| @@ -172,12 +168,19 @@ public:
|
| enum SubType {
|
| Start,
|
| End,
|
| + Middle,
|
| Custom
|
| };
|
|
|
| - static PassRefPtr<StepsTimingFunction> create(int steps, bool stepAtStart)
|
| + enum StepAtPosition {
|
| + StepAtStart,
|
| + StepAtMiddle,
|
| + StepAtEnd
|
| + };
|
| +
|
| + static PassRefPtr<StepsTimingFunction> create(int steps, StepAtPosition stepAtPosition)
|
| {
|
| - return adoptRef(new StepsTimingFunction(Custom, steps, stepAtStart));
|
| + return adoptRef(new StepsTimingFunction(Custom, steps, stepAtPosition));
|
| }
|
|
|
| static StepsTimingFunction* preset(SubType subType)
|
| @@ -185,12 +188,17 @@ public:
|
| switch (subType) {
|
| case Start:
|
| {
|
| - DEFINE_STATIC_REF(StepsTimingFunction, start, (adoptRef(new StepsTimingFunction(Start, 1, true))));
|
| + DEFINE_STATIC_REF(StepsTimingFunction, start, (adoptRef(new StepsTimingFunction(Start, 1, StepAtStart))));
|
| return start;
|
| }
|
| + case Middle:
|
| + {
|
| + DEFINE_STATIC_REF(StepsTimingFunction, middle, (adoptRef(new StepsTimingFunction(Middle, 1, StepAtMiddle))));
|
| + return middle;
|
| + }
|
| case End:
|
| {
|
| - DEFINE_STATIC_REF(StepsTimingFunction, end, (adoptRef(new StepsTimingFunction(End, 1, false))));
|
| + DEFINE_STATIC_REF(StepsTimingFunction, end, (adoptRef(new StepsTimingFunction(End, 1, StepAtEnd))));
|
| return end;
|
| }
|
| default:
|
| @@ -207,21 +215,21 @@ public:
|
| virtual double evaluate(double fraction, double) const OVERRIDE;
|
|
|
| int numberOfSteps() const { return m_steps; }
|
| - bool stepAtStart() const { return m_stepAtStart; }
|
| + StepAtPosition stepAtPosition() const { return m_stepAtPosition; }
|
|
|
| SubType subType() const { return m_subType; }
|
|
|
| private:
|
| - StepsTimingFunction(SubType subType, int steps, bool stepAtStart)
|
| + StepsTimingFunction(SubType subType, int steps, StepAtPosition stepAtPosition)
|
| : TimingFunction(StepsFunction)
|
| , m_steps(steps)
|
| - , m_stepAtStart(stepAtStart)
|
| + , m_stepAtPosition(stepAtPosition)
|
| , m_subType(subType)
|
| {
|
| }
|
|
|
| int m_steps;
|
| - bool m_stepAtStart;
|
| + StepAtPosition m_stepAtPosition;
|
| SubType m_subType;
|
| };
|
|
|
| @@ -275,7 +283,6 @@ private:
|
|
|
| // Allow PrintTo/operator== of the segments. Can be removed once
|
| // ChainedTimingFunction has a public API for segments.
|
| - friend class ChainedTimingFunctionTestHelper;
|
| friend class ChainedTimingFunction;
|
| };
|
|
|
| @@ -298,6 +305,13 @@ private:
|
| friend class ChainedTimingFunctionTestHelper;
|
| };
|
|
|
| +PLATFORM_EXPORT bool operator==(const LinearTimingFunction&, const TimingFunction&);
|
| +PLATFORM_EXPORT bool operator==(const CubicBezierTimingFunction&, const TimingFunction&);
|
| +PLATFORM_EXPORT bool operator==(const StepsTimingFunction&, const TimingFunction&);
|
| +
|
| +PLATFORM_EXPORT bool operator==(const TimingFunction&, const TimingFunction&);
|
| +PLATFORM_EXPORT bool operator!=(const TimingFunction&, const TimingFunction&);
|
| +
|
| #define DEFINE_TIMING_FUNCTION_TYPE_CASTS(typeName) \
|
| DEFINE_TYPE_CASTS( \
|
| typeName##TimingFunction, TimingFunction, value, \
|
|
|