| Index: Source/core/css/resolver/StyleBuilderConverter.cpp
|
| diff --git a/Source/core/css/resolver/StyleBuilderConverter.cpp b/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| index a4bac3c279f1164ea87d686de85775cb30cb19ae..989880e2f2e925661e0188d6704cb05e5ef9960d 100644
|
| --- a/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| +++ b/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| @@ -39,6 +39,9 @@
|
| #include "core/css/Rect.h"
|
| #include "core/svg/SVGElement.h"
|
| #include "core/svg/SVGURIReference.h"
|
| +#include "platform/transforms/RotateTransformOperation.h"
|
| +#include "platform/transforms/ScaleTransformOperation.h"
|
| +#include "platform/transforms/TranslateTransformOperation.h"
|
|
|
| namespace blink {
|
|
|
| @@ -937,4 +940,51 @@ Vector<LengthPoint> StyleBuilderConverter::convertSnapCoordinates(StyleResolverS
|
| return coordinates;
|
| }
|
|
|
| +PassRefPtr<TranslateTransformOperation> StyleBuilderConverter::convertTranslate(StyleResolverState& state, CSSValue* value)
|
| +{
|
| + CSSValueList& list = *toCSSValueList(value);
|
| + ASSERT(list.length() <= 3);
|
| + Length tx = convertLength(state, list.item(0));
|
| + Length ty(0, Fixed);
|
| + double tz = 0;
|
| + if (list.length() >= 2)
|
| + ty = convertLength(state, list.item(1));
|
| + if (list.length() == 3)
|
| + tz = toCSSPrimitiveValue(list.item(2))->getDoubleValue();
|
| +
|
| + return TranslateTransformOperation::create(tx, ty, tz, TransformOperation::Translate3D);
|
| +}
|
| +
|
| +PassRefPtr<RotateTransformOperation> StyleBuilderConverter::convertRotate(StyleResolverState& state, CSSValue* value)
|
| +{
|
| + CSSValueList& list = *toCSSValueList(value);
|
| + ASSERT(list.length() == 1 || list.length() == 4);
|
| + double angle = toCSSPrimitiveValue(list.item(0))->computeDegrees();
|
| + double x = 0;
|
| + double y = 0;
|
| + double z = 1;
|
| + if (list.length() == 4) {
|
| + x = toCSSPrimitiveValue(list.item(1))->getDoubleValue();
|
| + y = toCSSPrimitiveValue(list.item(2))->getDoubleValue();
|
| + z = toCSSPrimitiveValue(list.item(3))->getDoubleValue();
|
| + }
|
| +
|
| + return RotateTransformOperation::create(x, y, z, angle, TransformOperation::Rotate3D);
|
| +}
|
| +
|
| +PassRefPtr<ScaleTransformOperation> StyleBuilderConverter::convertScale(StyleResolverState& state, CSSValue* value)
|
| +{
|
| + CSSValueList& list = *toCSSValueList(value);
|
| + ASSERT(list.length() <= 3);
|
| + double sx = toCSSPrimitiveValue(list.item(0))->getDoubleValue();
|
| + double sy = sx;
|
| + double sz = 1;
|
| + if (list.length() >= 2)
|
| + sy = toCSSPrimitiveValue(list.item(1))->getDoubleValue();
|
| + if (list.length() == 3)
|
| + sz = toCSSPrimitiveValue(list.item(2))->getDoubleValue();
|
| +
|
| + return ScaleTransformOperation::create(sx, sy, sz, TransformOperation::Scale3D);
|
| +}
|
| +
|
| } // namespace blink
|
|
|