Index: src/core/SkDevice.cpp |
diff --git a/src/core/SkDevice.cpp b/src/core/SkDevice.cpp |
index cf4a279b355523be1a982af8a989e014beaf7938..cf57c2d7006718aabfdff28cadbc8e21a0915e20 100644 |
--- a/src/core/SkDevice.cpp |
+++ b/src/core/SkDevice.cpp |
@@ -411,7 +411,11 @@ void SkBaseDevice::drawBitmapAsSprite(const SkDraw& draw, const SkBitmap& bitmap |
SkIPoint offset = SkIPoint::Make(0, 0); |
SkMatrix matrix = *draw.fMatrix; |
matrix.postTranslate(SkIntToScalar(-x), SkIntToScalar(-y)); |
+#ifdef SK_SUPPORT_SRC_BOUNDS_BLOAT_FOR_IMAGEFILTERS |
const SkIRect clipBounds = bitmap.bounds(); |
+#else |
+ const SkIRect clipBounds = draw.fClip->getBounds().makeOffset(-x, -y); |
+#endif |
SkAutoTUnref<SkImageFilter::Cache> cache(this->getImageFilterCache()); |
SkImageFilter::Context ctx(matrix, clipBounds, cache.get(), |
SkImageFilter::kApprox_SizeConstraint); |