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; |
}; |