| Index: third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp b/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp
|
| index 6258d642b44163697b80df40d37b24c93ed689c8..55f018cd203b269f739b2cfb1773f64fbb530436 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp
|
| @@ -373,6 +373,14 @@ const TransformationMatrix& GeometryMapper::localToAncestorMatrixInternal(
|
| it++) {
|
| TransformationMatrix localTransformMatrix = (*it)->matrix();
|
| localTransformMatrix.applyTransformOrigin((*it)->origin());
|
| +
|
| + // Flattening Lemma: flatten(A * flatten(B)) = flatten(flatten(A) * B).
|
| + // goo.gl/DNKyOc. Thus we can flatten transformMatrix rather than
|
| + // localTransformMatrix, because GeometryMapper only supports transforms
|
| + // into a flattened destination space.
|
| + if ((*it)->flattensInheritedTransform())
|
| + transformMatrix.flattenTo2d();
|
| +
|
| transformMatrix = transformMatrix * localTransformMatrix;
|
| (*it)->getTransformCache().setCachedTransform(ancestorTransformNode,
|
| transformMatrix);
|
|
|