Index: Source/core/platform/graphics/chromium/AnimationTranslationUtil.cpp |
diff --git a/Source/core/platform/graphics/chromium/AnimationTranslationUtil.cpp b/Source/core/platform/graphics/chromium/AnimationTranslationUtil.cpp |
index 58768f960a18cf1af7f24786f2d8d57846974cac..e0f938edb03b138341ded8f6fb2e19bccfc4e606 100644 |
--- a/Source/core/platform/graphics/chromium/AnimationTranslationUtil.cpp |
+++ b/Source/core/platform/graphics/chromium/AnimationTranslationUtil.cpp |
@@ -56,7 +56,7 @@ using namespace WebKit; |
namespace WebCore { |
-PassOwnPtr<WebTransformOperations> toWebTransformOperations(const TransformOperations& transformOperations, const FloatSize& boxSize) |
+PassOwnPtr<WebTransformOperations> toWebTransformOperations(const TransformOperations& transformOperations, const FloatSize& boxSize, RenderView* renderView) |
{ |
// We need to do a deep copy the transformOperations may contain ref pointers to TransformOperation objects. |
OwnPtr<WebTransformOperations> webTransformOperations = adoptPtr(Platform::current()->compositorSupport()->createTransformOperations()); |
@@ -80,7 +80,7 @@ PassOwnPtr<WebTransformOperations> toWebTransformOperations(const TransformOpera |
case TransformOperation::Translate3D: |
case TransformOperation::Translate: { |
TranslateTransformOperation* transform = static_cast<TranslateTransformOperation*>(transformOperations.operations()[j].get()); |
- webTransformOperations->appendTranslate(floatValueForLength(transform->x(), boxSize.width()), floatValueForLength(transform->y(), boxSize.height()), floatValueForLength(transform->z(), 1)); |
+ webTransformOperations->appendTranslate(floatValueForLength(transform->x(), boxSize.width(), renderView), floatValueForLength(transform->y(), boxSize.height(), renderView), floatValueForLength(transform->z(), 1, renderView)); |
break; |
} |
case TransformOperation::RotateX: |
@@ -117,7 +117,7 @@ PassOwnPtr<WebTransformOperations> toWebTransformOperations(const TransformOpera |
} |
case TransformOperation::Interpolated: { |
TransformationMatrix m; |
- transformOperations.operations()[j]->apply(m, boxSize); |
+ transformOperations.operations()[j]->apply(m, boxSize, renderView); |
webTransformOperations->appendMatrix(TransformSkMatrix44Conversions::convert(m)); |
break; |
} |
@@ -134,14 +134,14 @@ PassOwnPtr<WebTransformOperations> toWebTransformOperations(const TransformOpera |
} |
template <class Value, class Keyframe, class Curve> |
-bool appendKeyframeWithStandardTimingFunction(Curve* curve, double keyTime, const Value* value, const Value* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize&) |
+bool appendKeyframeWithStandardTimingFunction(Curve* curve, double keyTime, const Value* value, const Value* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize&, RenderView* renderView) |
{ |
curve->add(Keyframe(keyTime, value->value()), timingFunctionType); |
return true; |
} |
template <class Value, class Keyframe, class Curve> |
-bool appendKeyframeWithCustomBezierTimingFunction(Curve* curve, double keyTime, const Value* value, const Value* lastValue, double x1, double y1, double x2, double y2, const FloatSize&) |
+bool appendKeyframeWithCustomBezierTimingFunction(Curve* curve, double keyTime, const Value* value, const Value* lastValue, double x1, double y1, double x2, double y2, const FloatSize&, RenderView* renderView) |
{ |
curve->add(Keyframe(keyTime, value->value()), x1, y1, x2, y2); |
return true; |
@@ -157,14 +157,14 @@ bool isRotationType(TransformOperation::OperationType transformType) |
} |
template <> |
-bool appendKeyframeWithStandardTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve* curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize& boxSize) |
+bool appendKeyframeWithStandardTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve* curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize& boxSize, RenderView* renderView) |
{ |
bool canBlend = !lastValue; |
- OwnPtr<WebTransformOperations> operations(toWebTransformOperations(*value->value(), boxSize)); |
+ OwnPtr<WebTransformOperations> operations(toWebTransformOperations(*value->value(), boxSize, renderView)); |
if (!operations) |
return false; |
if (!canBlend) { |
- OwnPtr<WebTransformOperations> lastOperations(toWebTransformOperations(*lastValue->value(), boxSize)); |
+ OwnPtr<WebTransformOperations> lastOperations(toWebTransformOperations(*lastValue->value(), boxSize, renderView)); |
if (!lastOperations) |
return false; |
canBlend = lastOperations->canBlendWith(*operations); |
@@ -177,14 +177,14 @@ bool appendKeyframeWithStandardTimingFunction<TransformAnimationValue, WebTransf |
} |
template <> |
-bool appendKeyframeWithCustomBezierTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve* curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, double x1, double y1, double x2, double y2, const FloatSize& boxSize) |
+bool appendKeyframeWithCustomBezierTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve* curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, double x1, double y1, double x2, double y2, const FloatSize& boxSize, RenderView* renderView) |
{ |
bool canBlend = !lastValue; |
- OwnPtr<WebTransformOperations> operations(toWebTransformOperations(*value->value(), boxSize)); |
+ OwnPtr<WebTransformOperations> operations(toWebTransformOperations(*value->value(), boxSize, renderView)); |
if (!operations) |
return false; |
if (!canBlend) { |
- OwnPtr<WebTransformOperations> lastOperations(toWebTransformOperations(*lastValue->value(), boxSize)); |
+ OwnPtr<WebTransformOperations> lastOperations(toWebTransformOperations(*lastValue->value(), boxSize, renderView)); |
if (!lastOperations) |
return false; |
canBlend = lastOperations->canBlendWith(*operations); |
@@ -197,7 +197,7 @@ bool appendKeyframeWithCustomBezierTimingFunction<TransformAnimationValue, WebTr |
} |
template <class Value, class Keyframe, class Curve> |
-PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& valueList, const CSSAnimationData* animation, int animationId, double timeOffset, Curve* curve, WebKit::WebAnimation::TargetProperty targetProperty, const FloatSize& boxSize) |
+PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& valueList, const CSSAnimationData* animation, int animationId, double timeOffset, Curve* curve, WebKit::WebAnimation::TargetProperty targetProperty, const FloatSize& boxSize, RenderView* renderView) |
{ |
bool alternate = false; |
bool reverse = false; |
@@ -259,9 +259,9 @@ PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& val |
bool addedKeyframe = false; |
if (isUsingCustomBezierTimingFunction) |
- addedKeyframe = appendKeyframeWithCustomBezierTimingFunction<Value, Keyframe, Curve>(curve, keyTime, originalValue, lastOriginalValue, x1, y1, x2, y2, boxSize); |
+ addedKeyframe = appendKeyframeWithCustomBezierTimingFunction<Value, Keyframe, Curve>(curve, keyTime, originalValue, lastOriginalValue, x1, y1, x2, y2, boxSize, renderView); |
else |
- addedKeyframe = appendKeyframeWithStandardTimingFunction<Value, Keyframe, Curve>(curve, keyTime, originalValue, lastOriginalValue, timingFunctionType, boxSize); |
+ addedKeyframe = appendKeyframeWithStandardTimingFunction<Value, Keyframe, Curve>(curve, keyTime, originalValue, lastOriginalValue, timingFunctionType, boxSize, renderView); |
if (!addedKeyframe) |
return nullptr; |
} |
@@ -278,18 +278,18 @@ PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& val |
return webAnimation.release(); |
} |
-PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& values, const CSSAnimationData* animation, int animationId, double timeOffset, const FloatSize& boxSize) |
+PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& values, const CSSAnimationData* animation, int animationId, double timeOffset, const FloatSize& boxSize, RenderView* renderView) |
{ |
if (values.property() == AnimatedPropertyWebkitTransform) { |
OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(Platform::current()->compositorSupport()->createTransformAnimationCurve()); |
- return createWebAnimation<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(values, animation, animationId, timeOffset, curve.get(), WebKit::WebAnimation::TargetPropertyTransform, FloatSize(boxSize)); |
+ return createWebAnimation<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(values, animation, animationId, timeOffset, curve.get(), WebKit::WebAnimation::TargetPropertyTransform, FloatSize(boxSize), renderView); |
} |
if (values.property() == AnimatedPropertyOpacity) { |
OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(Platform::current()->compositorSupport()->createFloatAnimationCurve()); |
- return createWebAnimation<FloatAnimationValue, WebFloatKeyframe, WebFloatAnimationCurve>(values, animation, animationId, timeOffset, curve.get(), WebKit::WebAnimation::TargetPropertyOpacity, FloatSize()); |
+ return createWebAnimation<FloatAnimationValue, WebFloatKeyframe, WebFloatAnimationCurve>(values, animation, animationId, timeOffset, curve.get(), WebKit::WebAnimation::TargetPropertyOpacity, FloatSize(), renderView); |
} |
return nullptr; |