Index: src/effects/SkBlurImageFilter.cpp |
diff --git a/src/effects/SkBlurImageFilter.cpp b/src/effects/SkBlurImageFilter.cpp |
index 852c0afad36549e82b765e2e55cf760072263c08..fa8ccc866e3f751c3f0697d320fedea2154d61b7 100644 |
--- a/src/effects/SkBlurImageFilter.cpp |
+++ b/src/effects/SkBlurImageFilter.cpp |
@@ -193,11 +193,12 @@ bool SkBlurImageFilter::onFilterImage(Proxy* proxy, |
SkPMColor* d = dst->getAddr32(0, 0); |
int w = dstBounds.width(), h = dstBounds.height(); |
int sw = src.rowBytesAsPixels(); |
- SkBoxBlurProc boxBlurX, boxBlurY, boxBlurXY; |
- if (!SkBoxBlurGetPlatformProcs(&boxBlurX, &boxBlurY, &boxBlurXY)) { |
+ SkBoxBlurProc boxBlurX, boxBlurY, boxBlurXY, boxBlurYX; |
+ if (!SkBoxBlurGetPlatformProcs(&boxBlurX, &boxBlurY, &boxBlurXY, &boxBlurYX)) { |
boxBlurX = boxBlur<kX, kX>; |
boxBlurY = boxBlur<kY, kY>; |
boxBlurXY = boxBlur<kX, kY>; |
+ boxBlurYX = boxBlur<kY, kX>; |
} |
if (kernelSizeX > 0 && kernelSizeY > 0) { |
@@ -221,9 +222,9 @@ bool SkBlurImageFilter::onFilterImage(Proxy* proxy, |
boxBlurX(d, w, t, kernelSizeX, highOffsetX, lowOffsetX, w, h); |
boxBlurX(t, w, d, kernelSizeX3, highOffsetX, highOffsetX, w, h); |
} else if (kernelSizeY > 0) { |
- boxBlurY(s, sw, d, kernelSizeY, lowOffsetY, highOffsetY, h, w); |
- boxBlurY(d, w, t, kernelSizeY, highOffsetY, lowOffsetY, h, w); |
- boxBlurY(t, w, d, kernelSizeY3, highOffsetY, highOffsetY, h, w); |
+ boxBlurYX(s, sw, d, kernelSizeY, lowOffsetY, highOffsetY, h, w); |
+ boxBlurX(d, h, t, kernelSizeY, highOffsetY, lowOffsetY, h, w); |
+ boxBlurXY(t, h, d, kernelSizeY3, highOffsetY, highOffsetY, h, w); |
} |
offset->fX += srcBounds.fLeft; |
offset->fY += srcBounds.fTop; |