Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(299)

Unified Diff: src/gpu/effects/GrConvolutionEffect.h

Issue 2215323003: Start using RenderTargetProxy (omnibus) (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: update Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/effects/GrConfigConversionEffect.cpp ('k') | src/gpu/effects/GrMatrixConvolutionEffect.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/effects/GrConvolutionEffect.h
diff --git a/src/gpu/effects/GrConvolutionEffect.h b/src/gpu/effects/GrConvolutionEffect.h
index c353542d030a05f1c48635739841b4c2abcbba6c..87842557d6b0f947d9fe55a0c6d58ce3ee8bf00c 100644
--- a/src/gpu/effects/GrConvolutionEffect.h
+++ b/src/gpu/effects/GrConvolutionEffect.h
@@ -42,6 +42,28 @@ public:
new GrConvolutionEffect(tex, dir, halfWidth, gaussianSigma, useBounds, bounds));
}
+ /// Convolve with an arbitrary user-specified kernel
+ static sk_sp<GrFragmentProcessor> Make(GrTextureProxy* tex,
+ Direction dir,
+ int halfWidth,
+ const float* kernel,
+ bool useBounds,
+ float bounds[2]) {
+ return sk_sp<GrFragmentProcessor>(
+ new GrConvolutionEffect(tex, dir, halfWidth, kernel, useBounds, bounds));
+ }
+
+ /// Convolve with a Gaussian kernel
+ static sk_sp<GrFragmentProcessor> MakeGaussian(GrTextureProxy* tex,
+ Direction dir,
+ int halfWidth,
+ float gaussianSigma,
+ bool useBounds,
+ float bounds[2]) {
+ return sk_sp<GrFragmentProcessor>(
+ new GrConvolutionEffect(tex, dir, halfWidth, gaussianSigma, useBounds, bounds));
+ }
+
virtual ~GrConvolutionEffect();
const float* kernel() const { return fKernel; }
@@ -82,6 +104,19 @@ private:
bool useBounds,
float bounds[2]);
+ GrConvolutionEffect(GrTextureProxy*, Direction,
+ int halfWidth,
+ const float* kernel,
+ bool useBounds,
+ float bounds[2]);
+
+ /// Convolve with a Gaussian kernel
+ GrConvolutionEffect(GrTextureProxy*, Direction,
+ int halfWidth,
+ float gaussianSigma,
+ bool useBounds,
+ float bounds[2]);
+
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
void onGetGLSLProcessorKey(const GrGLSLCaps&, GrProcessorKeyBuilder*) const override;
« no previous file with comments | « src/gpu/effects/GrConfigConversionEffect.cpp ('k') | src/gpu/effects/GrMatrixConvolutionEffect.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698