diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-01-30 15:41:43 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-01-30 15:41:43 +0000 |
commit | 9efd9a048aebaa6681afb76b18e1a7dd642078d3 (patch) | |
tree | ed8ad344b7541b85a3c32d7277a0fd7043023494 /src/effects/SkBlurMaskFilter.cpp | |
parent | bf6c1e4aff4d233f6502157fb73459cf69d0ab37 (diff) |
extend fastbounds impls to include maskfilters and drawloopers. This allows
us to perform quick-rejects when drawing objects with shadows (esp. text).
WebKit draws shadows w/ a looper (fg and shadow) and a maskfilter on the
shadow layer.
git-svn-id: http://skia.googlecode.com/svn/trunk@3103 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/effects/SkBlurMaskFilter.cpp')
-rw-r--r-- | src/effects/SkBlurMaskFilter.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/effects/SkBlurMaskFilter.cpp b/src/effects/SkBlurMaskFilter.cpp index 4c677d4b43..83ee934c48 100644 --- a/src/effects/SkBlurMaskFilter.cpp +++ b/src/effects/SkBlurMaskFilter.cpp @@ -22,6 +22,7 @@ public: virtual bool filterMask(SkMask* dst, const SkMask& src, const SkMatrix&, SkIPoint* margin) SK_OVERRIDE; virtual BlurType asABlur(BlurInfo*) const SK_OVERRIDE; + virtual void computeFastBounds(const SkRect& src, SkRect* dest) SK_OVERRIDE; // overrides from SkFlattenable virtual Factory getFactory() SK_OVERRIDE; @@ -98,6 +99,11 @@ bool SkBlurMaskFilterImpl::filterMask(SkMask* dst, const SkMask& src, blurQuality, margin); } +void SkBlurMaskFilterImpl::computeFastBounds(const SkRect& src, SkRect* dst) { + dst->set(src.fLeft - fRadius, src.fTop - fRadius, + src.fRight + fRadius, src.fBottom + fRadius); +} + SkFlattenable* SkBlurMaskFilterImpl::CreateProc(SkFlattenableReadBuffer& buffer) { return SkNEW_ARGS(SkBlurMaskFilterImpl, (buffer)); } |