diff options
Diffstat (limited to 'src/core/SkImageFilter.cpp')
-rw-r--r-- | src/core/SkImageFilter.cpp | 10 |
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); } |