123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- * 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
- #include "src/gpu/GrRenderTargetContext.h"
- #include "src/gpu/effects/GrTextureDomain.h"
- class GrContext;
- class GrTexture;
- struct SkRect;
- namespace SkGpuBlurUtils {
- /**
- * Applies a 2D Gaussian blur to a given texture. The blurred result is returned
- * as a renderTargetContext in case the caller wishes to future draw into the result.
- *
- * The 'proxyOffset' is kept separate form 'srcBounds' because they exist in different
- * coordinate spaces. 'srcBounds' exists in the content space of the special image, and
- * 'proxyOffset' maps from the content space to the proxy's space.
- *
- * Note: one of sigmaX and sigmaY should be non-zero!
- * @param context The GPU context
- * @param src The source to be blurred.
- * @param proxyOffset The offset from the top-left corner to valid texels in 'src', which
- * should come from the subset of the owning SkSpecialImage.
- * @param colorSpace Color space of the source (used for the renderTargetContext result,
- * too).
- * @param dstBounds The destination bounds, relative to the source texture.
- * @param srcBounds The source bounds, relative to the source texture's offset. No pixels
- * will be sampled outside of this rectangle.
- * @param sigmaX The blur's standard deviation in X.
- * @param sigmaY The blur's standard deviation in Y.
- * @param mode The mode to handle samples outside bounds.
- * @param fit backing fit for the returned render target context
- * @return The renderTargetContext containing the blurred result.
- */
- sk_sp<GrRenderTargetContext> GaussianBlur(
- GrRecordingContext* context,
- sk_sp<GrTextureProxy> src,
- const SkIPoint& proxyOffset,
- sk_sp<SkColorSpace> colorSpace,
- const SkIRect& dstBounds,
- const SkIRect& srcBounds,
- float sigmaX,
- float sigmaY,
- GrTextureDomain::Mode mode,
- SkAlphaType at,
- SkBackingFit fit = SkBackingFit::kApprox);
- };
- #endif
- #endif
|