diff options
author | Herb Derby <herb@google.com> | 2017-08-14 15:35:46 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-08-14 20:20:55 +0000 |
commit | ba8275148ab8b10393b053e2586b852796c4afc2 (patch) | |
tree | 0bcdb86847fc764a0e056fff93bf253801239990 /src/core/SkMaskBlurFilter.h | |
parent | 61d137885796fa531d20c0f293f3c514ae8f0ce0 (diff) |
Add an average mode for sigma < 2
The original code had an optimization when sigma < 2 that averaged
pixels instead of Gaussian bluring them. This CL adds that
behavior back to the new implementat.
BUG=chromium:745290
Change-Id: I35b7de2138a859d546439cc2053b4b599a94ebe1
Reviewed-on: https://skia-review.googlesource.com/34180
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/core/SkMaskBlurFilter.h')
-rw-r--r-- | src/core/SkMaskBlurFilter.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/core/SkMaskBlurFilter.h b/src/core/SkMaskBlurFilter.h index c530488efb..000d9493a0 100644 --- a/src/core/SkMaskBlurFilter.h +++ b/src/core/SkMaskBlurFilter.h @@ -37,8 +37,13 @@ public: // A factor used to simulate division using multiplication and shift. uint64_t scaledWeight() const; + // Returned when sigma < 2. + bool isSmall() const; + private: + const bool fIsSmall; const uint32_t fFilterWindow; + const uint64_t fWeight; const uint64_t fScaledWeight; }; @@ -59,6 +64,14 @@ private: const uint8_t* src, size_t srcStride, const uint8_t* srcEnd, uint8_t* dst, size_t dstStride, uint8_t* dstEnd) const; + void blurOneScanBox(FilterInfo gen, + const uint8_t* src, size_t srcStride, const uint8_t* srcEnd, + uint8_t* dst, size_t dstStride, uint8_t* dstEnd) const; + + void blurOneScanGauss(FilterInfo gen, + const uint8_t* src, size_t srcStride, const uint8_t* srcEnd, + uint8_t* dst, size_t dstStride, uint8_t* dstEnd) const; + const FilterInfo fInfoW, fInfoH; |