From 336d1d759590d9bedcbc5a96d0fff79861cf8f7a Mon Sep 17 00:00:00 2001 From: "senorblanco@chromium.org" Date: Mon, 27 Jan 2014 21:03:17 +0000 Subject: Implement a computeFastBounds() traversal for SkImageFilter. This allows for correct culling of primitives which have image filters applied. R=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/137423005 git-svn-id: http://skia.googlecode.com/svn/trunk@13207 2bbb7eff-a529-9590-31e7-b0007b416f81 --- src/effects/SkOffsetImageFilter.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/effects/SkOffsetImageFilter.cpp') diff --git a/src/effects/SkOffsetImageFilter.cpp b/src/effects/SkOffsetImageFilter.cpp index 61f68f7afe..e69cf411e3 100644 --- a/src/effects/SkOffsetImageFilter.cpp +++ b/src/effects/SkOffsetImageFilter.cpp @@ -65,6 +65,15 @@ bool SkOffsetImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& source, return true; } +void SkOffsetImageFilter::computeFastBounds(const SkRect& src, SkRect* dst) const { + if (getInput(0)) { + getInput(0)->computeFastBounds(src, dst); + } else { + *dst = src; + } + dst->offset(fOffset.fX, fOffset.fY); +} + bool SkOffsetImageFilter::onFilterBounds(const SkIRect& src, const SkMatrix& ctm, SkIRect* dst) { SkVector vec; -- cgit v1.2.3