Reland "Remove GrPaint::addColorTextureProcessor"
Chrome layout test suppression has landed.
This reverts commit 67d0f3fd725c720ecad0ea6b45bb77a3bff55a7a.
Change-Id: I5b9963b306f29a41cf36e1802e7eebda010f186d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/264016
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/samplecode/SampleCCPRGeometry.cpp b/samplecode/SampleCCPRGeometry.cpp
index 213345e..2f78359 100644
--- a/samplecode/SampleCCPRGeometry.cpp
+++ b/samplecode/SampleCCPRGeometry.cpp
@@ -195,8 +195,7 @@
// Visualize coverage count in main canvas.
GrPaint paint;
paint.addColorFragmentProcessor(GrTextureEffect::Make(sk_ref_sp(ccbuff->asTextureProxy()),
- ccbuff->colorInfo().alphaType(),
- SkMatrix::I()));
+ ccbuff->colorInfo().alphaType()));
paint.addColorFragmentProcessor(
std::make_unique<VisualizeCoverageCountFP>());
paint.setPorterDuffXPFactory(SkBlendMode::kSrcOver);
diff --git a/src/core/SkBlurMF.cpp b/src/core/SkBlurMF.cpp
index d9ff65c..aa00e50 100644
--- a/src/core/SkBlurMF.cpp
+++ b/src/core/SkBlurMF.cpp
@@ -902,7 +902,7 @@
GrPaint paint;
// Blend pathTexture over blurTexture.
paint.addCoverageFragmentProcessor(
- GrTextureEffect::Make(std::move(srcProxy), srcAlphaType, SkMatrix::I()));
+ GrTextureEffect::Make(std::move(srcProxy), srcAlphaType));
if (kInner_SkBlurStyle == fBlurStyle) {
// inner: dst = dst * src
paint.setCoverageSetOpXPFactory(SkRegion::kIntersect_Op);
diff --git a/src/gpu/GrPaint.cpp b/src/gpu/GrPaint.cpp
index d797b59..8339195 100644
--- a/src/gpu/GrPaint.cpp
+++ b/src/gpu/GrPaint.cpp
@@ -35,12 +35,6 @@
this->setXPFactory(GrCoverageSetOpXPFactory::Get(regionOp, invertCoverage));
}
-void GrPaint::addColorTextureProcessor(sk_sp<GrTextureProxy> proxy, SkAlphaType alphaType,
- const SkMatrix& matrix, GrSamplerState samplerState) {
- this->addColorFragmentProcessor(
- GrTextureEffect::Make(std::move(proxy), alphaType, matrix, samplerState));
-}
-
bool GrPaint::isConstantBlendedColor(SkPMColor4f* constantColor) const {
// This used to do a more sophisticated analysis but now it just explicitly looks for common
// cases.
diff --git a/src/gpu/GrPaint.h b/src/gpu/GrPaint.h
index ce6e1f9..87e4c44 100644
--- a/src/gpu/GrPaint.h
+++ b/src/gpu/GrPaint.h
@@ -77,13 +77,6 @@
fTrivial = false;
}
- /**
- * Helpers for adding color or coverage effects that sample a texture. The matrix is applied
- * to the src space position to compute texture coordinates.
- */
- void addColorTextureProcessor(sk_sp<GrTextureProxy>, SkAlphaType, const SkMatrix&,
- GrSamplerState = GrSamplerState::Filter::kBilerp);
-
int numColorFragmentProcessors() const { return fColorFragmentProcessors.count(); }
int numCoverageFragmentProcessors() const { return fCoverageFragmentProcessors.count(); }
int numTotalFragmentProcessors() const { return this->numColorFragmentProcessors() +
diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp
index 85f1109..fb8bf20 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrRenderTargetContext.cpp
@@ -2020,7 +2020,8 @@
std::fill_n(yM, 15, 0.f);
std::copy_n(baseM + 0, 5, yM + 15);
GrPaint yPaint;
- yPaint.addColorTextureProcessor(srcProxy, this->colorInfo().alphaType(), texMatrix);
+ yPaint.addColorFragmentProcessor(
+ GrTextureEffect::Make(srcProxy, this->colorInfo().alphaType(), texMatrix));
auto yFP = GrColorMatrixFragmentProcessor::Make(yM, false, true, false);
yPaint.addColorFragmentProcessor(std::move(yFP));
yPaint.setPorterDuffXPFactory(SkBlendMode::kSrc);
@@ -2039,8 +2040,8 @@
std::fill_n(uM, 15, 0.f);
std::copy_n(baseM + 5, 5, uM + 15);
GrPaint uPaint;
- uPaint.addColorTextureProcessor(srcProxy, this->colorInfo().alphaType(), texMatrix,
- GrSamplerState::Filter::kBilerp);
+ uPaint.addColorFragmentProcessor(GrTextureEffect::Make(
+ srcProxy, this->colorInfo().alphaType(), texMatrix, GrSamplerState::Filter::kBilerp));
auto uFP = GrColorMatrixFragmentProcessor::Make(uM, false, true, false);
uPaint.addColorFragmentProcessor(std::move(uFP));
uPaint.setPorterDuffXPFactory(SkBlendMode::kSrc);
@@ -2058,8 +2059,8 @@
std::fill_n(vM, 15, 0.f);
std::copy_n(baseM + 10, 5, vM + 15);
GrPaint vPaint;
- vPaint.addColorTextureProcessor(srcProxy, this->colorInfo().alphaType(), texMatrix,
- GrSamplerState::Filter::kBilerp);
+ vPaint.addColorFragmentProcessor(GrTextureEffect::Make(
+ srcProxy, this->colorInfo().alphaType(), texMatrix, GrSamplerState::Filter::kBilerp));
auto vFP = GrColorMatrixFragmentProcessor::Make(vM, false, true, false);
vPaint.addColorFragmentProcessor(std::move(vFP));
vPaint.setPorterDuffXPFactory(SkBlendMode::kSrc);
@@ -2579,7 +2580,7 @@
GrPaint paint;
paint.setPorterDuffXPFactory(SkBlendMode::kSrc);
- auto fp = GrTextureEffect::Make(sk_ref_sp(src), kUnknown_SkAlphaType, SkMatrix::I());
+ auto fp = GrTextureEffect::Make(sk_ref_sp(src), kUnknown_SkAlphaType);
if (!fp) {
return false;
}
diff --git a/src/gpu/GrSurfaceContext.cpp b/src/gpu/GrSurfaceContext.cpp
index ca840ba..6722d10 100644
--- a/src/gpu/GrSurfaceContext.cpp
+++ b/src/gpu/GrSurfaceContext.cpp
@@ -219,9 +219,8 @@
std::unique_ptr<GrFragmentProcessor> fp;
if (canvas2DFastPath) {
- fp = direct->priv().createPMToUPMEffect(
- GrTextureEffect::Make(sk_ref_sp(srcProxy->asTextureProxy()),
- this->colorInfo().alphaType(), SkMatrix::I()));
+ fp = direct->priv().createPMToUPMEffect(GrTextureEffect::Make(
+ sk_ref_sp(srcProxy->asTextureProxy()), this->colorInfo().alphaType()));
if (dstInfo.colorType() == GrColorType::kBGRA_8888) {
fp = GrFragmentProcessor::SwizzleOutput(std::move(fp), GrSwizzle::BGRA());
dstInfo = dstInfo.makeColorType(GrColorType::kRGBA_8888);
@@ -232,7 +231,7 @@
dstInfo = dstInfo.makeAlphaType(kPremul_SkAlphaType);
} else {
fp = GrTextureEffect::Make(sk_ref_sp(srcProxy->asTextureProxy()),
- this->colorInfo().alphaType(), SkMatrix::I());
+ this->colorInfo().alphaType());
}
if (!fp) {
return false;
@@ -412,13 +411,13 @@
std::unique_ptr<GrFragmentProcessor> fp;
if (canvas2DFastPath) {
fp = direct->priv().createUPMToPMEffect(
- GrTextureEffect::Make(std::move(tempProxy), alphaType, SkMatrix::I()));
+ GrTextureEffect::Make(std::move(tempProxy), alphaType));
// Important: check the original src color type here!
if (origSrcInfo.colorType() == GrColorType::kBGRA_8888) {
fp = GrFragmentProcessor::SwizzleOutput(std::move(fp), GrSwizzle::BGRA());
}
} else {
- fp = GrTextureEffect::Make(std::move(tempProxy), alphaType, SkMatrix::I());
+ fp = GrTextureEffect::Make(std::move(tempProxy), alphaType);
}
if (!fp) {
return false;
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 9cd44c4..466b72b 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -1036,7 +1036,7 @@
tmpUnfiltered.setImageFilter(nullptr);
- auto fp = GrTextureEffect::Make(std::move(proxy), special->alphaType(), SkMatrix::I());
+ auto fp = GrTextureEffect::Make(std::move(proxy), special->alphaType());
fp = GrColorSpaceXformEffect::Make(std::move(fp), result->getColorSpace(), result->alphaType(),
fRenderTargetContext->colorInfo().colorSpace());
if (GrColorTypeIsAlphaOnly(SkColorTypeToGrColorType(result->colorType()))) {
diff --git a/src/gpu/effects/GrConfigConversionEffect.fp b/src/gpu/effects/GrConfigConversionEffect.fp
index 8978efe..0ff5b2d 100644
--- a/src/gpu/effects/GrConfigConversionEffect.fp
+++ b/src/gpu/effects/GrConfigConversionEffect.fp
@@ -82,7 +82,7 @@
std::unique_ptr<GrFragmentProcessor> upmToPM(
new GrConfigConversionEffect(PMConversion::kToPremul));
- paint1.addColorTextureProcessor(dataProxy, kPremul_SkAlphaType, SkMatrix::I());
+ paint1.addColorFragmentProcessor(GrTextureEffect::Make(dataProxy, kPremul_SkAlphaType));
paint1.addColorFragmentProcessor(pmToUPM->clone());
paint1.setPorterDuffXPFactory(SkBlendMode::kSrc);
@@ -96,16 +96,14 @@
// draw
tempRTC->discard();
- paint2.addColorTextureProcessor(readRTC->asTextureProxyRef(), kUnpremul_SkAlphaType,
- SkMatrix::I());
+ paint2.addColorFragmentProcessor(GrTextureEffect::Make(readRTC->asTextureProxyRef(), kUnpremul_SkAlphaType));
paint2.addColorFragmentProcessor(std::move(upmToPM));
paint2.setPorterDuffXPFactory(SkBlendMode::kSrc);
tempRTC->fillRectToRect(GrNoClip(), std::move(paint2), GrAA::kNo, SkMatrix::I(), kRect,
kRect);
- paint3.addColorTextureProcessor(tempRTC->asTextureProxyRef(), kPremul_SkAlphaType,
- SkMatrix::I());
+ paint3.addColorFragmentProcessor(GrTextureEffect::Make(tempRTC->asTextureProxyRef(), kPremul_SkAlphaType));
paint3.addColorFragmentProcessor(std::move(pmToUPM));
paint3.setPorterDuffXPFactory(SkBlendMode::kSrc);
diff --git a/src/gpu/effects/GrTextureEffect.h b/src/gpu/effects/GrTextureEffect.h
index 50239e9..c6fc305 100644
--- a/src/gpu/effects/GrTextureEffect.h
+++ b/src/gpu/effects/GrTextureEffect.h
@@ -15,12 +15,10 @@
class GrTextureEffect : public GrFragmentProcessor {
public:
- static std::unique_ptr<GrFragmentProcessor> Make(
- sk_sp<GrSurfaceProxy>,
- SkAlphaType,
- const SkMatrix&,
- GrSamplerState = {GrSamplerState::Filter::kNearest});
-
+ static std::unique_ptr<GrFragmentProcessor> Make(sk_sp<GrSurfaceProxy>,
+ SkAlphaType,
+ const SkMatrix& = SkMatrix::I(),
+ GrSamplerState = {});
std::unique_ptr<GrFragmentProcessor> clone() const override;
diff --git a/src/gpu/effects/generated/GrConfigConversionEffect.h b/src/gpu/effects/generated/GrConfigConversionEffect.h
index 6260b35..f5f608e 100644
--- a/src/gpu/effects/generated/GrConfigConversionEffect.h
+++ b/src/gpu/effects/generated/GrConfigConversionEffect.h
@@ -88,7 +88,7 @@
std::unique_ptr<GrFragmentProcessor> upmToPM(
new GrConfigConversionEffect(PMConversion::kToPremul));
- paint1.addColorTextureProcessor(dataProxy, kPremul_SkAlphaType, SkMatrix::I());
+ paint1.addColorFragmentProcessor(GrTextureEffect::Make(dataProxy, kPremul_SkAlphaType));
paint1.addColorFragmentProcessor(pmToUPM->clone());
paint1.setPorterDuffXPFactory(SkBlendMode::kSrc);
@@ -102,16 +102,16 @@
// draw
tempRTC->discard();
- paint2.addColorTextureProcessor(readRTC->asTextureProxyRef(), kUnpremul_SkAlphaType,
- SkMatrix::I());
+ paint2.addColorFragmentProcessor(
+ GrTextureEffect::Make(readRTC->asTextureProxyRef(), kUnpremul_SkAlphaType));
paint2.addColorFragmentProcessor(std::move(upmToPM));
paint2.setPorterDuffXPFactory(SkBlendMode::kSrc);
tempRTC->fillRectToRect(GrNoClip(), std::move(paint2), GrAA::kNo, SkMatrix::I(), kRect,
kRect);
- paint3.addColorTextureProcessor(tempRTC->asTextureProxyRef(), kPremul_SkAlphaType,
- SkMatrix::I());
+ paint3.addColorFragmentProcessor(
+ GrTextureEffect::Make(tempRTC->asTextureProxyRef(), kPremul_SkAlphaType));
paint3.addColorFragmentProcessor(std::move(pmToUPM));
paint3.setPorterDuffXPFactory(SkBlendMode::kSrc);
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index 60608bb..5949c5f 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -91,7 +91,7 @@
GrPaint paint;
paint.setPorterDuffXPFactory(SkBlendMode::kSrc);
sk_sp<GrTextureProxy> proxy = this->asTextureProxyRef(context);
- paint.addColorTextureProcessor(std::move(proxy), this->alphaType(), SkMatrix::I());
+ paint.addColorFragmentProcessor(GrTextureEffect::Make(std::move(proxy), this->alphaType()));
if (xform) {
paint.addColorFragmentProcessor(std::move(xform));
}
diff --git a/tests/OnFlushCallbackTest.cpp b/tests/OnFlushCallbackTest.cpp
index 12f9bc0..2045421 100644
--- a/tests/OnFlushCallbackTest.cpp
+++ b/tests/OnFlushCallbackTest.cpp
@@ -449,7 +449,7 @@
for (int i = 0; i < 3; ++i) {
SkRect r = SkRect::MakeXYWH(i*kDrawnTileSize, 0, kDrawnTileSize, kDrawnTileSize);
- auto fp = GrTextureEffect::Make(atlasProxy, atlasAlphaType, SkMatrix::I());
+ auto fp = GrTextureEffect::Make(atlasProxy, atlasAlphaType);
GrPaint paint;
paint.addColorFragmentProcessor(std::move(fp));
paint.setPorterDuffXPFactory(SkBlendMode::kSrc);
diff --git a/tests/ProcessorTest.cpp b/tests/ProcessorTest.cpp
index cfe00d6..87bebcc 100644
--- a/tests/ProcessorTest.cpp
+++ b/tests/ProcessorTest.cpp
@@ -236,7 +236,8 @@
sk_sp<GrTextureProxy> inputDataProxy,
SkAlphaType inputAlphaType) {
GrPaint paint;
- paint.addColorTextureProcessor(std::move(inputDataProxy), inputAlphaType, SkMatrix::I());
+ paint.addColorFragmentProcessor(
+ GrTextureEffect::Make(std::move(inputDataProxy), inputAlphaType));
paint.addColorFragmentProcessor(std::move(fp));
paint.setPorterDuffXPFactory(SkBlendMode::kSrc);