Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(308)

Unified Diff: Source/core/animation/KeyframeEffectModel.h

Issue 194673002: Web Animations: Refactor KeyframeEffectModel to work via an InterpolationEffect. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@interpolationWrap
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/animation/KeyframeEffectModel.h
diff --git a/Source/core/animation/KeyframeEffectModel.h b/Source/core/animation/KeyframeEffectModel.h
index fd9b6f46aee9d1349f69d4b5073d0871e56e721f..76c7a788c67e30fe44e9b3f8f16c7d2a66a4aa1f 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,7 +115,7 @@ 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(); }
+ TimingFunction* easing() const { return m_easing.get(); }
const CompositableValue* value() const { return m_value.get(); }
PassOwnPtr<PropertySpecificKeyframe> cloneWithOffset(double offset) const;
private:
@@ -128,7 +129,6 @@ public:
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;
};

Powered by Google App Engine
This is Rietveld 408576698