aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2017-07-28 07:34:05 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-07-28 11:54:47 +0000
commit3f6f965a5a65415c65fe9e64eb41896c66da771d (patch)
tree1de139167492fd077527517356bbf1f3298a9800 /src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h
parent71603cca8ec779bb3ad5ad18a3dc69e97910fb7c (diff)
Implement clone for 6 additional GrFragmentProcessor subclasses.
GrMagnifierEffect GrMorphologyEffect GrBicubicEffect GrGaussianConvolutionFragmentProcessor GrMatrixConvolutionEffect GrTextureDomainEffect Bug: skia: Change-Id: I69721b9b95346b365723e5ee21dff2dee8884466 Reviewed-on: https://skia-review.googlesource.com/27900 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h')
-rw-r--r--src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h b/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h
index bdc4384a2c..74e9a94c2d 100644
--- a/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h
+++ b/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h
@@ -32,8 +32,6 @@ public:
std::move(proxy), dir, halfWidth, gaussianSigma, mode, bounds));
}
- ~GrGaussianConvolutionFragmentProcessor() override;
-
const float* kernel() const { return fKernel; }
const int* bounds() const { return fBounds; }
@@ -46,6 +44,10 @@ public:
const char* name() const override { return "GaussianConvolution"; }
+ sk_sp<GrFragmentProcessor> clone() const override {
+ return sk_sp<GrFragmentProcessor>(new GrGaussianConvolutionFragmentProcessor(*this));
+ }
+
// This was decided based on the min allowed value for the max texture
// samples per fragment program run in DX9SM2 (32). A sigma param of 4.0
// on a blur filter gives a kernel width of 25 while a sigma of 5.0
@@ -61,6 +63,8 @@ private:
int halfWidth, float gaussianSigma,
GrTextureDomain::Mode mode, int bounds[2]);
+ explicit GrGaussianConvolutionFragmentProcessor(const GrGaussianConvolutionFragmentProcessor&);
+
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;