| Index: Source/core/rendering/svg/RenderSVGResourceContainer.cpp
|
| diff --git a/Source/core/rendering/svg/RenderSVGResourceContainer.cpp b/Source/core/rendering/svg/RenderSVGResourceContainer.cpp
|
| index 4a396667a43b5fa67d24c0248b128382a8c3b595..4bd1c6fe472ba4dc2a5dbeeb4617d6119b30b791 100644
|
| --- a/Source/core/rendering/svg/RenderSVGResourceContainer.cpp
|
| +++ b/Source/core/rendering/svg/RenderSVGResourceContainer.cpp
|
| @@ -232,6 +232,26 @@ void RenderSVGResourceContainer::registerResource()
|
| }
|
| }
|
|
|
| +AffineTransform RenderSVGResourceContainer::computeResourceSpaceTransform(RenderObject* object, const AffineTransform& baseTransform, const SVGRenderStyle* svgStyle, unsigned short resourceMode)
|
| +{
|
| + AffineTransform computedSpaceTransform = baseTransform;
|
| + if (resourceMode & ApplyToTextMode) {
|
| + // Depending on the font scaling factor, we may need to apply an
|
| + // additional transform (scale-factor) the paintserver, since text
|
| + // painting removes the scale factor from the context. (See
|
| + // SVGInlineTextBox::paintTextWithShadows.)
|
| + AffineTransform additionalTextTransformation;
|
| + if (shouldTransformOnTextPainting(object, additionalTextTransformation))
|
| + computedSpaceTransform = additionalTextTransformation * computedSpaceTransform;
|
| + }
|
| + if (resourceMode & ApplyToStrokeMode) {
|
| + // Non-scaling stroke needs to reset the transform back to the host transform.
|
| + if (svgStyle->vectorEffect() == VE_NON_SCALING_STROKE)
|
| + computedSpaceTransform = transformOnNonScalingStroke(object, computedSpaceTransform);
|
| + }
|
| + return computedSpaceTransform;
|
| +}
|
| +
|
| bool RenderSVGResourceContainer::shouldTransformOnTextPainting(RenderObject* object, AffineTransform& resourceTransform)
|
| {
|
| ASSERT_UNUSED(object, object);
|
|
|