diff options
Diffstat (limited to 'gfx/skia/skia/src/core/SkMaskBlurFilter.h')
-rw-r--r-- | gfx/skia/skia/src/core/SkMaskBlurFilter.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/gfx/skia/skia/src/core/SkMaskBlurFilter.h b/gfx/skia/skia/src/core/SkMaskBlurFilter.h new file mode 100644 index 0000000000..fe10cf4abb --- /dev/null +++ b/gfx/skia/skia/src/core/SkMaskBlurFilter.h @@ -0,0 +1,37 @@ +/* + * 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 SkMaskBlurFilter_DEFINED +#define SkMaskBlurFilter_DEFINED + +#include <algorithm> +#include <memory> +#include <tuple> + +#include "include/core/SkTypes.h" +#include "src/core/SkMask.h" + +// Implement a single channel Gaussian blur. The specifics for implementation are taken from: +// https://drafts.fxtf.org/filters/#feGaussianBlurElement +class SkMaskBlurFilter { +public: + // Create an object suitable for filtering an SkMask using a filter with width sigmaW and + // 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; + +private: + const double fSigmaW; + const double fSigmaH; +}; + +#endif // SkBlurMaskFilter_DEFINED |