blob: 2bd9d61a834a9e2b5f9b55d22f0ae2bc7cc2d54c [file] [log] [blame]
senorblanco@chromium.org60014ca2011-11-09 16:05:58 +00001/*
2 * Copyright 2011 The Android Open Source Project
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
senorblanco@chromium.org60014ca2011-11-09 16:05:58 +00008#ifndef SkBlurImageFilter_DEFINED
9#define SkBlurImageFilter_DEFINED
10
senorblanco@chromium.org377c14a2013-02-04 22:57:21 +000011#include "SkImageFilter.h"
senorblanco@chromium.org60014ca2011-11-09 16:05:58 +000012
vjiaoblacke1e5c742016-08-23 11:13:14 -070013class SK_API SkBlurImageFilter {
senorblanco@chromium.org60014ca2011-11-09 16:05:58 +000014public:
wutao039a7c72017-06-30 10:44:45 -070015 /*! \enum TileMode */
16 enum TileMode {
wutaoda699442017-07-10 20:20:33 -070017 kClamp_TileMode = 0, /*!< Clamp to the image's edge pixels. */
wutao039a7c72017-06-30 10:44:45 -070018 /*!< This re-weights the filter so samples outside have no effect */
19 kRepeat_TileMode, /*!< Wrap around to the image's opposite edge. */
20 kClampToBlack_TileMode, /*!< Fill with transparent black. */
Robert Phillipsbee27322018-01-23 09:58:18 -050021 kLast_TileMode = kClampToBlack_TileMode,
22
23 // TODO: remove kMax - it is non-standard but Chromium uses it
wutao039a7c72017-06-30 10:44:45 -070024 kMax_TileMode = kClampToBlack_TileMode
25 };
26
robertphillips225db442016-04-17 14:27:05 -070027 static sk_sp<SkImageFilter> Make(SkScalar sigmaX, SkScalar sigmaY,
28 sk_sp<SkImageFilter> input,
wutao039a7c72017-06-30 10:44:45 -070029 const SkImageFilter::CropRect* cropRect = nullptr,
30 TileMode tileMode = TileMode::kClampToBlack_TileMode);
senorblanco@chromium.org60014ca2011-11-09 16:05:58 +000031};
32
33#endif