Make GrBicubicEffect also support centripetal Catmull-Rom kernel.
Use new kernel in async rescale APIs.
Bug: skia:8962
Change-Id: Ife8f56f54b5df58cedd65b54083c7c0716b8c633
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/216352
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp
index a7cbeac..0047436 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrRenderTargetContext.cpp
@@ -1894,12 +1894,14 @@
} else if (nextH == srcH) {
dir = GrBicubicEffect::Direction::kX;
}
+ static constexpr auto kKernel = GrBicubicEffect::Kernel::kCatmullRom;
if (srcW != texProxy->width() || srcH != texProxy->height()) {
auto domain = GrTextureDomain::MakeTexelDomain(
SkIRect::MakeXYWH(srcX, srcY, srcW, srcH), GrTextureDomain::kClamp_Mode);
- fp = GrBicubicEffect::Make(texProxy, matrix, domain, dir, kPremul_SkAlphaType);
+ fp = GrBicubicEffect::Make(texProxy, matrix, domain, kKernel, dir,
+ kPremul_SkAlphaType);
} else {
- fp = GrBicubicEffect::Make(texProxy, matrix, dir, kPremul_SkAlphaType);
+ fp = GrBicubicEffect::Make(texProxy, matrix, kKernel, dir, kPremul_SkAlphaType);
}
if (xform) {
fp = GrColorSpaceXformEffect::Make(std::move(fp), std::move(xform));