diff options
author | Mike Reed <reed@google.com> | 2017-07-13 01:19:16 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-07-13 01:19:23 +0000 |
commit | 27b3d272a8fcce24813212f5816b177090111ec6 (patch) | |
tree | 0406f2faa23f6652511e428ee1686fc5e922ff8f /src/core/SkMaskBlurFilter.h | |
parent | f0366326cc565c9e1535e4ac4baf273d7ea0d816 (diff) |
Revert "Experimental blur code with 32 bit fix."
This reverts commit d4b2c537d058ad4cb890ba116d00aa86c3416c08.
Reason for revert: speculative fix for android-roll
java.lang.AssertionError: expected:<0> but was:<255>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:834)
at org.junit.Assert.assertEquals(Assert.java:645)
at org.junit.Assert.assertEquals(Assert.java:631)
at android.graphics.cts.BlurMaskFilterTest.verifyColor(BlurMaskFilterTest.java:79)
at android.graphics.cts.BlurMaskFilterTest.verifyQuadrants(BlurMaskFilterTest.java:72)
at android.graphics.cts.BlurMaskFilterTest.testBlurMaskFilter(BlurMaskFilterTest.java:56)
Original change's description:
> Experimental blur code with 32 bit fix.
>
> This uses a new method of blurring that runs the three
> passes of the box filter in a single pass. This implementation
> currently only does 1x1 pixel at a time, but it should be simple
> to expand to 4x4 pixels at a time.
>
> On the blur_10_normal_high_quality benchmark, the new is 7% faster
> than the old code. For the blur_100.50_normal_high_quality
> benchmark, the new code is 11% slower.
>
> Bug: skia:
> Change-Id: I847270906b0ceac1dfbf43ab5446756689ef660f
> Reviewed-on: https://skia-review.googlesource.com/22700
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
TBR=herb@google.com,reed@google.com
Change-Id: Ie84f6bf8872cae08c06d679f0c2f2e6c3d8a02a2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/22880
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/core/SkMaskBlurFilter.h')
-rw-r--r-- | src/core/SkMaskBlurFilter.h | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/src/core/SkMaskBlurFilter.h b/src/core/SkMaskBlurFilter.h deleted file mode 100644 index 9becadca39..0000000000 --- a/src/core/SkMaskBlurFilter.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2017 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef SkBlurMaskFilter_DEFINED -#define SkBlurMaskFilter_DEFINED - -#include <algorithm> -#include <memory> - -#include "SkMask.h" -#include "SkTypes.h" - -// Implement a single channel Gaussian blur. The specifics for implementation are taken from: -// https://drafts.fxtf.org/filters/#feGaussianBlurElement -class SkMaskBlurFilter { -public: - // Given a filter specified by sigma, generate various quantities. - class FilterInfo { - public: - explicit FilterInfo(double sigma); - - // The final weight to divide by given a box size calculated from sigma accumulated for - // all three passes. For example, if the box size is 5, then the final weight for all - // three passes is 5^3 or 125. - uint64_t weight() const; - - // The distance between the first value of the dst and the first value of the src. - uint32_t borderSize() const; - - // The size of the box filter. - size_t diameter(uint8_t) const; - - // A factor used to simulate division using multiplication and shift. - uint64_t scaledWeight() const; - - private: - const uint32_t fFilterWindow; - const uint64_t fScaledWeight; - }; - - // Create an object suitable for filtering an SkMask using a filter with width sigmaW and - // height sigmaH. - SkMaskBlurFilter(double sigmaW, double sigmaH); - - // Given a src SkMask, generate dst SkMask returning the border width and height. - SkIPoint blur(const SkMask& src, SkMask* dst) const; - -private: - size_t bufferSize(uint8_t bufferPass) const; - - void blurOneScan(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; - std::unique_ptr<uint32_t[]> fBuffer0, - fBuffer1, - fBuffer2; -}; - -#endif // SkBlurMaskFilter_DEFINED |