• 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 class GrTexture;
13 class GrContext;
14 #endif
15 
16 struct SkRect;
17 
18 namespace SkGpuBlurUtils {
19 
20 #if SK_SUPPORT_GPU
21   /**
22     * Applies a 2D Gaussian blur to a given texture.
23     * @param context         The GPU context
24     * @param srcTexture      The source texture to be blurred.
25     * @param canClobberSrc   If true, srcTexture may be overwritten, and
26     *                        may be returned as the result.
27     * @param rect            The destination rectangle.
28     * @param cropToRect      If true, do not sample any pixels outside the
29     *                        source rect.
30     * @param sigmaX          The blur's standard deviation in X.
31     * @param sigmaY          The blur's standard deviation in Y.
32     * @return the blurred texture, which may be srcTexture reffed, or a
33     * new texture.  It is the caller's responsibility to unref this texture.
34     */
35     GrTexture* GaussianBlur(GrContext* context,
36                             GrTexture* srcTexture,
37                             bool canClobberSrc,
38                             const SkRect& rect,
39                             bool cropToRect,
40                             float sigmaX,
41                             float sigmaY);
42 #endif
43 
44 };
45 
46 #endif
47