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