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

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

Issue 238313003: Web Animations API: Reuse cached InterpolableValue during interpolation (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 6 years, 1 month 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
« no previous file with comments | « no previous file | Source/core/animation/InterpolableValue.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/animation/InterpolableValue.h
diff --git a/Source/core/animation/InterpolableValue.h b/Source/core/animation/InterpolableValue.h
index 090f0db62ccedff0dded404d95bca61792cf8328..12cc6f5e2904091bcdc3106b8928ec293cec0827 100644
--- a/Source/core/animation/InterpolableValue.h
+++ b/Source/core/animation/InterpolableValue.h
@@ -25,7 +25,7 @@ public:
virtual void trace(Visitor*) { }
private:
- virtual PassOwnPtrWillBeRawPtr<InterpolableValue> interpolate(const InterpolableValue &to, const double progress) const = 0;
+ virtual void assignInterpolation(const InterpolableValue& from, const InterpolableValue& to, const double progress) = 0;
friend class Interpolation;
@@ -51,7 +51,7 @@ public:
virtual void trace(Visitor* visitor) override { InterpolableValue::trace(visitor); }
private:
- virtual PassOwnPtrWillBeRawPtr<InterpolableValue> interpolate(const InterpolableValue &to, const double progress) const override final;
+ virtual void assignInterpolation(const InterpolableValue& from, const InterpolableValue& to, const double progress) override final;
double m_value;
explicit InterpolableNumber(double value)
@@ -75,19 +75,19 @@ public:
virtual void trace(Visitor* visitor) override { InterpolableValue::trace(visitor); }
private:
- virtual PassOwnPtrWillBeRawPtr<InterpolableValue> interpolate(const InterpolableValue &to, const double progress) const override final;
- bool m_value;
-
explicit InterpolableBool(bool value)
: m_value(value)
{
}
+ virtual void assignInterpolation(const InterpolableValue& from, const InterpolableValue& to, const double progress) override final;
+
+ bool m_value;
};
class InterpolableList : public InterpolableValue {
public:
- static PassOwnPtrWillBeRawPtr<InterpolableList> create(const InterpolableList &other)
+ static PassOwnPtrWillBeRawPtr<InterpolableList> create(const InterpolableList& other)
{
return adoptPtrWillBeNoop(new InterpolableList(other));
}
@@ -114,7 +114,6 @@ public:
virtual void trace(Visitor*) override;
private:
- virtual PassOwnPtrWillBeRawPtr<InterpolableValue> interpolate(const InterpolableValue &other, const double progress) const override final;
explicit InterpolableList(size_t size)
: m_size(size)
, m_values(m_size)
@@ -129,6 +128,8 @@ private:
set(i, other.m_values[i]->clone());
}
+ virtual void assignInterpolation(const InterpolableValue& from, const InterpolableValue& to, const double progress) override final;
+
size_t m_size;
WillBeHeapVector<OwnPtrWillBeMember<InterpolableValue> > m_values;
};
@@ -148,13 +149,14 @@ public:
virtual void trace(Visitor*) override;
private:
- virtual PassOwnPtrWillBeRawPtr<InterpolableValue> interpolate(const InterpolableValue &other, const double progress) const override final;
- RefPtrWillBeMember<AnimatableValue> m_value;
-
InterpolableAnimatableValue(PassRefPtrWillBeRawPtr<AnimatableValue> value)
: m_value(value)
{
}
+
+ virtual void assignInterpolation(const InterpolableValue& from, const InterpolableValue& to, const double progress) override final;
+
+ RefPtrWillBeMember<AnimatableValue> m_value;
};
DEFINE_TYPE_CASTS(InterpolableNumber, InterpolableValue, value, value->isNumber(), value.isNumber());
« no previous file with comments | « no previous file | Source/core/animation/InterpolableValue.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698