/* * 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 cropToRect If true, do not sample any pixels outside the * source rect. * @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, bool cropToRect, float sigmaX, float sigmaY); #endif }; #endif