2013-07-15 15:06:54 +00:00
|
|
|
/*
|
|
|
|
* Copyright 2013 Google Inc.
|
|
|
|
*
|
|
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
|
|
* found in the LICENSE file.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef SkGpuBlurUtils_DEFINED
|
|
|
|
#define SkGpuBlurUtils_DEFINED
|
|
|
|
|
|
|
|
#if SK_SUPPORT_GPU
|
|
|
|
class GrTexture;
|
|
|
|
class GrContext;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
struct SkRect;
|
|
|
|
|
|
|
|
namespace SkGpuBlurUtils {
|
|
|
|
|
|
|
|
#if SK_SUPPORT_GPU
|
|
|
|
/**
|
|
|
|
* Applies a 2D Gaussian blur to a given texture.
|
|
|
|
* @param context The GPU context
|
|
|
|
* @param srcTexture The source texture to be blurred.
|
|
|
|
* @param canClobberSrc If true, srcTexture may be overwritten, and
|
|
|
|
* may be returned as the result.
|
|
|
|
* @param rect The destination rectangle.
|
|
|
|
* @param sigmaX The blur's standard deviation in X.
|
|
|
|
* @param sigmaY The blur's standard deviation in Y.
|
|
|
|
* @return the blurred texture, which may be srcTexture reffed, or a
|
|
|
|
* new texture. It is the caller's responsibility to unref this texture.
|
|
|
|
*/
|
|
|
|
GrTexture* GaussianBlur(GrContext* context,
|
|
|
|
GrTexture* srcTexture,
|
|
|
|
bool canClobberSrc,
|
|
|
|
const SkRect& rect,
|
|
|
|
float sigmaX,
|
|
|
|
float sigmaY);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
};
|
|
|
|
|
2013-07-15 15:47:10 +00:00
|
|
|
#endif
|