Chromium Code Reviews| Index: third_party/WebKit/Source/core/style/FilterOperation.cpp |
| diff --git a/third_party/WebKit/Source/core/style/FilterOperation.cpp b/third_party/WebKit/Source/core/style/FilterOperation.cpp |
| index 5490b437d763412b30ee5483def01df223aa3e8e..cfdc512a8a4c65b8802312355b611979d91fa992 100644 |
| --- a/third_party/WebKit/Source/core/style/FilterOperation.cpp |
| +++ b/third_party/WebKit/Source/core/style/FilterOperation.cpp |
| @@ -27,23 +27,12 @@ |
| #include "platform/LengthFunctions.h" |
| #include "platform/animation/AnimationUtilities.h" |
| +#include "platform/graphics/filters/FEDropShadow.h" |
| #include "platform/graphics/filters/FEGaussianBlur.h" |
| #include "platform/graphics/filters/FilterEffect.h" |
| -#include "platform/graphics/filters/SkiaImageFilterBuilder.h" |
| namespace blink { |
| -static inline FloatSize outsetSizeForBlur(float stdDeviation) { |
| - IntSize kernelSize = FEGaussianBlur::calculateUnscaledKernelSize( |
| - FloatPoint(stdDeviation, stdDeviation)); |
| - FloatSize outset; |
| - // We take the half kernel size and multiply it with three, because we run box |
| - // blur three times. |
| - outset.setWidth(3.0f * kernelSize.width() * 0.5f); |
| - outset.setHeight(3.0f * kernelSize.height() * 0.5f); |
| - return outset; |
| -} |
| - |
| FilterOperation* FilterOperation::blend(const FilterOperation* from, |
| const FilterOperation* to, |
| double progress) { |
| @@ -145,13 +134,8 @@ FilterOperation* BasicComponentTransferFilterOperation::blend( |
| } |
| FloatRect BlurFilterOperation::mapRect(const FloatRect& rect) const { |
| - // Matches FEGaussianBlur::mapRect. |
| float stdDeviation = floatValueForLength(m_stdDeviation, 0); |
| - FloatSize outsetSize = outsetSizeForBlur(stdDeviation); |
| - FloatRect mappedRect = rect; |
| - mappedRect.inflateX(outsetSize.width()); |
| - mappedRect.inflateY(outsetSize.height()); |
| - return mappedRect; |
| + return FEGaussianBlur::mapEffect(FloatSize(stdDeviation, stdDeviation), rect); |
| } |
| FilterOperation* BlurFilterOperation::blend(const FilterOperation* from, |
| @@ -167,13 +151,9 @@ FilterOperation* BlurFilterOperation::blend(const FilterOperation* from, |
| } |
| FloatRect DropShadowFilterOperation::mapRect(const FloatRect& rect) const { |
| - FloatSize outsetSize = outsetSizeForBlur(m_stdDeviation); |
| - FloatRect mappedRect = rect; |
| - mappedRect.inflateX(outsetSize.width()); |
| - mappedRect.inflateY(outsetSize.height()); |
| - mappedRect.moveBy(m_location); |
| - mappedRect.unite(rect); |
| - return mappedRect; |
| + float stdDeviation = m_stdDeviation; |
|
Stephen Chennney
2016/10/10 19:43:25
Why does this not do the floatValueForLength that
fs
2016/10/10 20:40:03
This caught me by surprise too, but it turns out t
|
| + return FEDropShadow::mapEffect(FloatSize(stdDeviation, stdDeviation), |
| + FloatPoint(m_location), rect); |
| } |
| FilterOperation* DropShadowFilterOperation::blend(const FilterOperation* from, |