aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkMaskBlurFilter.h
diff options
context:
space:
mode:
authorGravatar Herb Derby <herb@google.com>2017-08-14 15:35:46 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-08-14 20:20:55 +0000
commitba8275148ab8b10393b053e2586b852796c4afc2 (patch)
tree0bcdb86847fc764a0e056fff93bf253801239990 /src/core/SkMaskBlurFilter.h
parent61d137885796fa531d20c0f293f3c514ae8f0ce0 (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.h13
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;