| Index: Source/core/dom/DOMMatrix.cpp
|
| diff --git a/Source/core/dom/DOMMatrix.cpp b/Source/core/dom/DOMMatrix.cpp
|
| index 38e20ac40d0582b01f05ec5f3edcdcdaca1adf4d..75cefcb63fe9bf945653424bb609bba356e300b0 100644
|
| --- a/Source/core/dom/DOMMatrix.cpp
|
| +++ b/Source/core/dom/DOMMatrix.cpp
|
| @@ -45,4 +45,39 @@ DOMMatrix* DOMMatrix::translateSelf(double tx, double ty, double tz)
|
| return this;
|
| }
|
|
|
| +DOMMatrix* DOMMatrix::scaleSelf(double scale, double ox, double oy)
|
| +{
|
| + return scaleNonUniformSelf(scale, scale, 1, ox, oy);
|
| +}
|
| +
|
| +DOMMatrix* DOMMatrix::scale3dSelf(double scale, double ox, double oy, double oz)
|
| +{
|
| + return scaleNonUniformSelf(scale, scale, scale, ox, oy, oz);
|
| +}
|
| +
|
| +DOMMatrix* DOMMatrix::scaleNonUniformSelf(double sx, double sy, double sz,
|
| + double ox, double oy, double oz)
|
| +{
|
| + if (sz != 1 || oz)
|
| + m_is2D = false;
|
| +
|
| + if (sx == 1 && sy == 1 && sz == 1)
|
| + return this;
|
| +
|
| + bool hasTranslation = (ox || oy || oz);
|
| +
|
| + if (hasTranslation)
|
| + translateSelf(ox, oy, oz);
|
| +
|
| + if (m_is2D)
|
| + m_matrix.scaleNonUniform(sx, sy);
|
| + else
|
| + m_matrix.scale3d(sx, sy, sz);
|
| +
|
| + if (hasTranslation)
|
| + translateSelf(-ox, -oy, -oz);
|
| +
|
| + return this;
|
| +}
|
| +
|
| } // namespace blink
|
|
|