• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2013 Google Inc.
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 
8 #ifndef SkGpuBlurUtils_DEFINED
9 #define SkGpuBlurUtils_DEFINED
10 
11 #if SK_SUPPORT_GPU
12 #include "GrTextureProvider.h"
13 
14 class GrTexture;
15 class GrContext;
16 #endif
17 
18 struct SkRect;
19 
20 namespace SkGpuBlurUtils {
21 
22 #if SK_SUPPORT_GPU
23   /**
24     * Applies a 2D Gaussian blur to a given texture.
25     * @param context         The GPU context
26     * @param srcTexture      The source texture to be blurred.
27     * @param canClobberSrc   If true, srcTexture may be overwritten, and
28     *                        may be returned as the result.
29     * @param dstBounds       The destination bounds, relative to the source texture.
30     * @param srcBounds       The source bounds, relative to the source texture. If non-null,
31     *                        no pixels will be sampled outside of this rectangle.
32     * @param sigmaX          The blur's standard deviation in X.
33     * @param sigmaY          The blur's standard deviation in Y.
34     * @return the blurred texture, which may be srcTexture reffed, or a
35     * new texture.  It is the caller's responsibility to unref this texture.
36     */
37     GrTexture* GaussianBlur(GrContext* context,
38                             GrTexture* srcTexture,
39                             bool canClobberSrc,
40                             const SkRect& dstBounds,
41                             const SkRect* srcBounds,
42                             float sigmaX,
43                             float sigmaY);
44 #endif
45 
46 };
47 
48 #endif
49