| Index: Source/core/rendering/svg/RenderSVGResourceFilter.cpp
|
| ===================================================================
|
| --- Source/core/rendering/svg/RenderSVGResourceFilter.cpp (revision 181390)
|
| +++ Source/core/rendering/svg/RenderSVGResourceFilter.cpp (working copy)
|
| @@ -165,7 +165,7 @@
|
| ASSERT(sourceGraphic);
|
| builder.setSourceGraphic(sourceGraphic);
|
| RefPtr<ImageFilter> imageFilter = builder.build(filterData->builder->lastEffect(), ColorSpaceDeviceRGB);
|
| - FloatRect boundaries = enclosingIntRect(filterData->boundaries);
|
| + FloatRect boundaries = filterData->boundaries;
|
| context->save();
|
|
|
| FloatSize deviceSize = context->getCTM().mapSize(boundaries.size());
|
| @@ -181,8 +181,9 @@
|
| float scale = sqrtf(FilterEffect::maxFilterArea() / scaledArea);
|
| context->scale(scale, scale);
|
| }
|
| - // Clip drawing of filtered image to primitive boundaries.
|
| - context->clipRect(boundaries);
|
| + // Clip drawing of filtered image to the minimum required paint rect.
|
| + FilterEffect* lastEffect = filterData->builder->lastEffect();
|
| + context->clipRect(lastEffect->determineAbsolutePaintRect(lastEffect->maxEffectRect()));
|
| if (filterElement->hasAttribute(SVGNames::filterResAttr)) {
|
| // Get boundaries in device coords.
|
| // FIXME: See crbug.com/382491. Is the use of getCTM OK here, given it does not include device
|
|
|