Use views throughout gpu blur code.
Bug: skia:9556
Change-Id: I3988c8112d72d5453cf93e58542eb68b16e67e1c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/267452
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp b/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp
index 35dfcd0..a318025 100644
--- a/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp
+++ b/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp
@@ -215,7 +215,7 @@
}
GrGaussianConvolutionFragmentProcessor::GrGaussianConvolutionFragmentProcessor(
- sk_sp<GrSurfaceProxy> proxy,
+ GrSurfaceProxyView view,
SkAlphaType alphaType,
Direction direction,
int radius,
@@ -224,8 +224,8 @@
int bounds[2])
: INHERITED(kGrGaussianConvolutionFragmentProcessor_ClassID,
ModulateForSamplerOptFlags(alphaType, mode == GrTextureDomain::kDecal_Mode))
- , fCoordTransform(proxy.get())
- , fTextureSampler(std::move(proxy))
+ , fCoordTransform(view.proxy())
+ , fTextureSampler(std::move(view))
, fRadius(radius)
, fDirection(direction)
, fMode(mode) {
@@ -333,7 +333,11 @@
int radius = d->fRandom->nextRangeU(1, kMaxKernelRadius);
float sigma = radius / 3.f;
- return GrGaussianConvolutionFragmentProcessor::Make(std::move(proxy), at, dir, radius, sigma,
+ GrSurfaceOrigin origin = proxy->origin();
+ GrSwizzle swizzle = proxy->textureSwizzle();
+ GrSurfaceProxyView view(std::move(proxy), origin, swizzle);
+
+ return GrGaussianConvolutionFragmentProcessor::Make(std::move(view), at, dir, radius, sigma,
static_cast<GrTextureDomain::Mode>(modeIdx),
bounds);
}