aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/core/SkImageFilter.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index 6356c1a5dd..4c4b56beac 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -122,6 +122,16 @@ bool SkImageFilter::filterBounds(const SkIRect& src, const SkMatrix& ctm,
SkIRect* dst) const {
SkASSERT(&src);
SkASSERT(dst);
+ if (SkImageFilter::GetExternalCache()) {
+ /*
+ * When the external cache is active, do not intersect the saveLayer
+ * bounds with the clip bounds. This is so that the cached result
+ * is always the full size of the primitive's bounds,
+ * regardless of the clip active on first draw.
+ */
+ *dst = SkIRect::MakeLargest();
+ return true;
+ }
return this->onFilterBounds(src, ctm, dst);
}