| Index: Source/core/animation/KeyframeEffectModel.h
|
| diff --git a/Source/core/animation/KeyframeEffectModel.h b/Source/core/animation/KeyframeEffectModel.h
|
| index 9e896f5768f577b259978571d4ca8429f75343c0..e098a161eb417e38c001c178d34ec2276fabc779 100644
|
| --- a/Source/core/animation/KeyframeEffectModel.h
|
| +++ b/Source/core/animation/KeyframeEffectModel.h
|
| @@ -33,6 +33,7 @@
|
|
|
| #include "core/animation/AnimatableValue.h"
|
| #include "core/animation/AnimationEffect.h"
|
| +#include "core/animation/InterpolationEffect.h"
|
| #include "heap/Handle.h"
|
| #include "platform/animation/TimingFunction.h"
|
| #include "wtf/HashMap.h"
|
| @@ -101,7 +102,7 @@ public:
|
| }
|
|
|
| // AnimationEffect implementation.
|
| - virtual PassOwnPtr<CompositableValueList> sample(int iteration, double fraction) const OVERRIDE;
|
| + virtual PassOwnPtr<Vector<RefPtr<Interpolation> > > sample(int iteration, double fraction) const OVERRIDE;
|
|
|
| // FIXME: Implement setFrames()
|
| const KeyframeVector& getFrames() const { return m_keyframes; }
|
| @@ -114,21 +115,20 @@ public:
|
| public:
|
| PropertySpecificKeyframe(double offset, PassRefPtr<TimingFunction> easing, const AnimatableValue*, CompositeOperation);
|
| double offset() const { return m_offset; }
|
| - const TimingFunction* easing() const { return m_easing.get(); }
|
| - const CompositableValue* value() const { return m_value.get(); }
|
| + TimingFunction* easing() const { return m_easing.get(); }
|
| + const AnimatableValue* value() const { return m_value.get(); }
|
| PassOwnPtr<PropertySpecificKeyframe> cloneWithOffset(double offset) const;
|
| private:
|
| // Used by cloneWithOffset().
|
| - PropertySpecificKeyframe(double offset, PassRefPtr<TimingFunction> easing, PassRefPtr<CompositableValue>);
|
| + PropertySpecificKeyframe(double offset, PassRefPtr<TimingFunction> easing, PassRefPtr<AnimatableValue>);
|
| double m_offset;
|
| RefPtr<TimingFunction> m_easing;
|
| - RefPtr<CompositableValue> m_value;
|
| + RefPtr<AnimatableValue> m_value;
|
| };
|
|
|
| class PropertySpecificKeyframeGroup {
|
| public:
|
| void appendKeyframe(PassOwnPtr<PropertySpecificKeyframe>);
|
| - PassRefPtr<CompositableValue> sample(int iteration, double offset) const;
|
| const PropertySpecificKeyframeVector& keyframes() const { return m_keyframes; }
|
| private:
|
| PropertySpecificKeyframeVector m_keyframes;
|
| @@ -153,6 +153,7 @@ private:
|
|
|
| // Lazily computes the groups of property-specific keyframes.
|
| void ensureKeyframeGroups() const;
|
| + void ensureInterpolationEffect() const;
|
|
|
| KeyframeVector m_keyframes;
|
| // The spec describes filtering the normalized keyframes at sampling time
|
| @@ -161,6 +162,8 @@ private:
|
| typedef HashMap<CSSPropertyID, OwnPtr<PropertySpecificKeyframeGroup> > KeyframeGroupMap;
|
| mutable OwnPtr<KeyframeGroupMap> m_keyframeGroups;
|
|
|
| + mutable RefPtr<InterpolationEffect> m_interpolationEffect;
|
| +
|
| friend class KeyframeEffectModelTest;
|
| };
|
|
|
|
|