summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/src/WebAnimationImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/chromium/src/WebAnimationImpl.cpp')
-rw-r--r--Source/WebKit/chromium/src/WebAnimationImpl.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/Source/WebKit/chromium/src/WebAnimationImpl.cpp b/Source/WebKit/chromium/src/WebAnimationImpl.cpp
index 187272ef2..e5d9ef2a3 100644
--- a/Source/WebKit/chromium/src/WebAnimationImpl.cpp
+++ b/Source/WebKit/chromium/src/WebAnimationImpl.cpp
@@ -29,6 +29,8 @@
#include "AnimationIdVendor.h"
#include "CCActiveAnimation.h"
#include "CCAnimationCurve.h"
+#include "WebFloatAnimationCurveImpl.h"
+#include "WebTransformAnimationCurveImpl.h"
#include <public/WebAnimation.h>
#include <public/WebAnimationCurve.h>
#include <wtf/OwnPtr.h>
@@ -46,7 +48,30 @@ WebAnimation* WebAnimation::create(const WebAnimationCurve& curve, TargetPropert
WebAnimation* WebAnimation::create(const WebAnimationCurve& curve, int animationId, int groupId, TargetProperty targetProperty)
{
- return new WebAnimationImpl(CCActiveAnimation::create(curve, animationId, groupId, static_cast<WebCore::CCActiveAnimation::TargetProperty>(targetProperty)));
+ return new WebAnimationImpl(curve, animationId, groupId, targetProperty);
+}
+
+WebAnimationImpl::WebAnimationImpl(const WebAnimationCurve& webCurve, int animationId, int groupId, TargetProperty targetProperty)
+{
+ WebAnimationCurve::AnimationCurveType curveType = webCurve.type();
+ OwnPtr<WebCore::CCAnimationCurve> curve;
+ switch (curveType) {
+ case WebAnimationCurve::AnimationCurveTypeFloat: {
+ const WebFloatAnimationCurveImpl* floatCurveImpl = static_cast<const WebFloatAnimationCurveImpl*>(&webCurve);
+ curve = floatCurveImpl->cloneToCCAnimationCurve();
+ break;
+ }
+ case WebAnimationCurve::AnimationCurveTypeTransform: {
+ const WebTransformAnimationCurveImpl* transformCurveImpl = static_cast<const WebTransformAnimationCurveImpl*>(&webCurve);
+ curve = transformCurveImpl->cloneToCCAnimationCurve();
+ break;
+ }
+ }
+ m_animation = CCActiveAnimation::create(curve.release(), animationId, groupId, static_cast<WebCore::CCActiveAnimation::TargetProperty>(targetProperty));
+}
+
+WebAnimationImpl::~WebAnimationImpl()
+{
}
WebAnimation::TargetProperty WebAnimationImpl::targetProperty() const