From a7ba6e7fcc9a9774bee6c5613efa662c311d04ef Mon Sep 17 00:00:00 2001 From: Mike Reed Date: Fri, 21 Jul 2017 12:23:12 -0400 Subject: Revert "Revert "check for no blur and exit early"" This reverts commit 8825a09fc88f46dcec1d547dfbe7457ea224790b. Bug: skia: Change-Id: I01df7bf9e398012b5320655da3cab306256e31fb Reviewed-on: https://skia-review.googlesource.com/25740 Reviewed-by: Mike Reed Commit-Queue: Mike Reed --- src/core/SkMaskBlurFilter.cpp | 6 +++++- src/core/SkMaskBlurFilter.h | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src/core') diff --git a/src/core/SkMaskBlurFilter.cpp b/src/core/SkMaskBlurFilter.cpp index 0f0286354c..42837f79a9 100644 --- a/src/core/SkMaskBlurFilter.cpp +++ b/src/core/SkMaskBlurFilter.cpp @@ -70,6 +70,10 @@ SkMaskBlurFilter::SkMaskBlurFilter(double sigmaW, double sigmaH) , fBuffer2{skstd::make_unique_default(bufferSize(2))} { } +bool SkMaskBlurFilter::hasNoBlur() const { + return fInfoW.weight() <= 1 && fInfoH.weight() <= 1; +} + SkIPoint SkMaskBlurFilter::blur(const SkMask& src, SkMask* dst) const { uint64_t weightW = fInfoW.weight(); @@ -146,7 +150,7 @@ SkIPoint SkMaskBlurFilter::blur(const SkMask& src, SkMask* dst) const { } } else { // Copy to dst. No Blur. - + SkASSERT(false); // should not get here for (size_t y = 0; y < srcH; y++) { std::memcpy(&dst->fImage[y * dst->fRowBytes], &src.fImage[y * src.fRowBytes], dstW); } diff --git a/src/core/SkMaskBlurFilter.h b/src/core/SkMaskBlurFilter.h index 9becadca39..c530488efb 100644 --- a/src/core/SkMaskBlurFilter.h +++ b/src/core/SkMaskBlurFilter.h @@ -46,6 +46,9 @@ public: // height sigmaH. SkMaskBlurFilter(double sigmaW, double sigmaH); + // returns true iff the sigmas will result in an identity mask (no blurring) + bool hasNoBlur() const; + // Given a src SkMask, generate dst SkMask returning the border width and height. SkIPoint blur(const SkMask& src, SkMask* dst) const; -- cgit v1.2.3