Index: src/effects/SkMorphologyImageFilter.cpp |
diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp |
index 7321eb25e21efa3ec13066b5058845170521c888..46302ad520afb1397d946061104a62a8358474cc 100644 |
--- a/src/effects/SkMorphologyImageFilter.cpp |
+++ b/src/effects/SkMorphologyImageFilter.cpp |
@@ -249,6 +249,20 @@ void SkMorphologyImageFilter::computeFastBounds(const SkRect& src, SkRect* dst) |
dst->outset(SkIntToScalar(fRadius.width()), SkIntToScalar(fRadius.height())); |
} |
+bool SkMorphologyImageFilter::onFilterBounds(const SkIRect& src, const SkMatrix& ctm, |
+ SkIRect* dst) const { |
+ SkIRect bounds = src; |
+ if (getInput(0) && !getInput(0)->filterBounds(src, ctm, &bounds)) { |
+ return false; |
+ } |
+ SkVector radius = SkVector::Make(SkIntToScalar(this->radius().width()), |
+ SkIntToScalar(this->radius().height())); |
+ ctm.mapVectors(&radius, 1); |
+ bounds.outset(SkScalarCeilToInt(radius.x()), SkScalarCeilToInt(radius.y())); |
+ *dst = bounds; |
+ return true; |
+} |
+ |
#if SK_SUPPORT_GPU |
/////////////////////////////////////////////////////////////////////////////// |