Home | History | Annotate | Download | only in effects
      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