| Index: Source/core/platform/graphics/filters/FEGaussianBlur.cpp
|
| diff --git a/Source/core/platform/graphics/filters/FEGaussianBlur.cpp b/Source/core/platform/graphics/filters/FEGaussianBlur.cpp
|
| index d73fc9b4b4d892e1c4cd8be4960c12872acb06c3..0cd65a185f37db955074c2a91733f7415235f2bc 100644
|
| --- a/Source/core/platform/graphics/filters/FEGaussianBlur.cpp
|
| +++ b/Source/core/platform/graphics/filters/FEGaussianBlur.cpp
|
| @@ -260,15 +260,7 @@ void FEGaussianBlur::calculateKernelSize(Filter* filter, unsigned& kernelSizeX,
|
|
|
| void FEGaussianBlur::determineAbsolutePaintRect()
|
| {
|
| - unsigned kernelSizeX = 0;
|
| - unsigned kernelSizeY = 0;
|
| - calculateKernelSize(filter(), kernelSizeX, kernelSizeY, m_stdX, m_stdY);
|
| -
|
| - FloatRect absolutePaintRect = inputEffect(0)->absolutePaintRect();
|
| -
|
| - // We take the half kernel size and multiply it with three, because we run box blur three times.
|
| - absolutePaintRect.inflateX(3 * kernelSizeX * 0.5f);
|
| - absolutePaintRect.inflateY(3 * kernelSizeY * 0.5f);
|
| + FloatRect absolutePaintRect = mapRect(inputEffect(0)->absolutePaintRect());
|
|
|
| if (clipsToBounds())
|
| absolutePaintRect.intersect(maxEffectRect());
|
| @@ -278,6 +270,19 @@ void FEGaussianBlur::determineAbsolutePaintRect()
|
| setAbsolutePaintRect(enclosingIntRect(absolutePaintRect));
|
| }
|
|
|
| +FloatRect FEGaussianBlur::mapRect(const FloatRect& rect, bool)
|
| +{
|
| + FloatRect result = rect;
|
| + unsigned kernelSizeX = 0;
|
| + unsigned kernelSizeY = 0;
|
| + calculateKernelSize(filter(), kernelSizeX, kernelSizeY, m_stdX, m_stdY);
|
| +
|
| + // We take the half kernel size and multiply it with three, because we run box blur three times.
|
| + result.inflateX(3 * kernelSizeX * 0.5f);
|
| + result.inflateY(3 * kernelSizeY * 0.5f);
|
| + return result;
|
| +}
|
| +
|
| void FEGaussianBlur::applySoftware()
|
| {
|
| FilterEffect* in = inputEffect(0);
|
|
|