diff options
Diffstat (limited to 'src/gpu/effects/GrConvolutionEffect.h')
-rw-r--r-- | src/gpu/effects/GrConvolutionEffect.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/gpu/effects/GrConvolutionEffect.h b/src/gpu/effects/GrConvolutionEffect.h index e4faa945b8..f75cfe9155 100644 --- a/src/gpu/effects/GrConvolutionEffect.h +++ b/src/gpu/effects/GrConvolutionEffect.h @@ -22,11 +22,16 @@ class GrConvolutionEffect : public Gr1DKernelEffect { public: /// Convolve with an arbitrary user-specified kernel - static GrEffectRef* Create(GrTexture* tex, Direction dir, int halfWidth, const float* kernel) { + static GrEffectRef* Create(GrTexture* tex, + Direction dir, + int halfWidth, + const float* kernel, + float cropRect[4]) { AutoEffectUnref effect(SkNEW_ARGS(GrConvolutionEffect, (tex, dir, halfWidth, - kernel))); + kernel, + cropRect))); return CreateEffectRef(effect); } @@ -34,11 +39,13 @@ public: static GrEffectRef* CreateGaussian(GrTexture* tex, Direction dir, int halfWidth, - float gaussianSigma) { + float gaussianSigma, + float cropRect[4]) { AutoEffectUnref effect(SkNEW_ARGS(GrConvolutionEffect, (tex, dir, halfWidth, - gaussianSigma))); + gaussianSigma, + cropRect))); return CreateEffectRef(effect); } @@ -46,6 +53,8 @@ public: const float* kernel() const { return fKernel; } + const float* cropRect() const { return fCropRect; } + static const char* Name() { return "Convolution"; } typedef GrGLConvolutionEffect GLEffect; @@ -72,15 +81,17 @@ public: protected: float fKernel[kMaxKernelWidth]; + float fCropRect[4]; private: GrConvolutionEffect(GrTexture*, Direction, - int halfWidth, const float* kernel); + int halfWidth, const float* kernel, float cropRect[4]); /// Convolve with a Gaussian kernel GrConvolutionEffect(GrTexture*, Direction, int halfWidth, - float gaussianSigma); + float gaussianSigma, + float cropRect[4]); virtual bool onIsEqual(const GrEffect&) const SK_OVERRIDE; |