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

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

Issue 143573004: [wip] interpolable value refactor. NOT FOR LANDING. Base URL: https://chromium.googlesource.com/chromium/blink.git@interpolationWrap
Patch Set: Created 6 years, 11 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
« no previous file with comments | « no previous file | Source/core/animation/Animation.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/animation/AnimatableValue.h
diff --git a/Source/core/animation/AnimatableValue.h b/Source/core/animation/AnimatableValue.h
index 7a46e1fc23a745aa891e3ab21a3009561ffac505..1a954fbfb9a6add42d55162a31707c43cd4852ba 100644
--- a/Source/core/animation/AnimatableValue.h
+++ b/Source/core/animation/AnimatableValue.h
@@ -31,12 +31,13 @@
#ifndef AnimatableValue_h
#define AnimatableValue_h
+#include "core/animation/AnimationEffect.h"
#include "core/css/CSSValue.h"
#include "wtf/RefCounted.h"
namespace WebCore {
-class AnimatableValue : public RefCounted<AnimatableValue> {
+class AnimatableValue : public AnimationEffect::CompositableValue {
public:
virtual ~AnimatableValue() { }
@@ -59,6 +60,10 @@ public:
return equals(&value);
}
+ virtual bool dependsOnUnderlyingValue() const OVERRIDE FINAL { return false; }
+ virtual PassRefPtr<AnimatableValue> compositeOnto(const AnimatableValue*) const OVERRIDE FINAL { return takeConstRef(this); }
+ virtual bool isAnimatableValue() const { return true; }
+
bool isClipPathOperation() const { return type() == TypeClipPathOperation; }
bool isColor() const { return type() == TypeColor; }
bool isDouble() const { return type() == TypeDouble; }
@@ -127,11 +132,15 @@ private:
virtual AnimatableType type() const = 0;
// Implementations can assume that the object being compared has the same type as the object this is called on
virtual bool equalTo(const AnimatableValue*) const = 0;
+
+ friend class KeyframeEffectModel;
};
#define DEFINE_ANIMATABLE_VALUE_TYPE_CASTS(thisType, predicate) \
DEFINE_TYPE_CASTS(thisType, AnimatableValue, value, value->predicate, value.predicate)
+DEFINE_TYPE_CASTS(AnimatableValue, AnimationEffect::CompositableValue, value, value->isAnimatableValue(), value.isAnimatableValue());
+
} // namespace WebCore
#endif // AnimatableValue_h
« no previous file with comments | « no previous file | Source/core/animation/Animation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698