blob: cfd7e67bd094c46fa2748eb8d66197c4361d77e7 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
2/*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
10#ifndef SkBlurMask_DEFINED
11#define SkBlurMask_DEFINED
12
13#include "SkShader.h"
14
15class SkBlurMask {
16public:
17 enum Style {
18 kNormal_Style, //!< fuzzy inside and outside
19 kSolid_Style, //!< solid inside, fuzzy outside
20 kOuter_Style, //!< nothing inside, fuzzy outside
21 kInner_Style, //!< fuzzy inside, nothing outside
22
23 kStyleCount
24 };
25
senorblanco@chromium.org4868e6b2011-02-18 19:03:01 +000026 enum Quality {
27 kLow_Quality, //!< box blur
28 kHigh_Quality //!< three pass box blur (similar to gaussian)
29 };
30
bungeman@google.com5af16f82011-09-02 15:06:44 +000031 static bool Blur(SkMask* dst, const SkMask& src,
32 SkScalar radius, Style style, Quality quality,
33 SkIPoint* margin = NULL);
senorblanco@chromium.org71f0f342012-11-13 20:35:21 +000034 static bool BlurSeparable(SkMask* dst, const SkMask& src,
35 SkScalar radius, Style style, Quality quality,
36 SkIPoint* margin = NULL);
37private:
38 static bool Blur(SkMask* dst, const SkMask& src,
39 SkScalar radius, Style style, Quality quality,
40 SkIPoint* margin, bool separable);
reed@android.com8a1c16f2008-12-17 15:59:43 +000041};
42
43#endif
44
45
46