Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 67d0f3f

Browse files
jvanverthSkia Commit-Bot
authored andcommitted
Revert "Remove GrPaint::addColorTextureProcessor"
This reverts commit a92320d. Reason for revert: Blocking Chrome roll. Original change's description: > Remove GrPaint::addColorTextureProcessor > > Just make the effect and then add it. > > Makes it easier to make changes to GrTextureEffect::Make going forward. > > Also add default param for matrix (identity). > > Change-Id: I52073f11a0a78b971bb512627198ee1724bfdac7 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/263518 > Reviewed-by: Michael Ludwig <[email protected]> > Commit-Queue: Brian Salomon <[email protected]> [email protected],[email protected] Change-Id: I2618844f5a8f5f1873dd79142caafd8939384e9e No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/263560 Reviewed-by: Jim Van Verth <[email protected]> Commit-Queue: Jim Van Verth <[email protected]>
1 parent 0cca8a2 commit 67d0f3f

13 files changed

+48
-31
lines changed

samplecode/SampleCCPRGeometry.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,8 @@ void CCPRGeometryView::onDrawContent(SkCanvas* canvas) {
195195
// Visualize coverage count in main canvas.
196196
GrPaint paint;
197197
paint.addColorFragmentProcessor(GrTextureEffect::Make(sk_ref_sp(ccbuff->asTextureProxy()),
198-
ccbuff->colorInfo().alphaType()));
198+
ccbuff->colorInfo().alphaType(),
199+
SkMatrix::I()));
199200
paint.addColorFragmentProcessor(
200201
std::make_unique<VisualizeCoverageCountFP>());
201202
paint.setPorterDuffXPFactory(SkBlendMode::kSrcOver);

src/core/SkBlurMF.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -902,7 +902,7 @@ sk_sp<GrTextureProxy> SkBlurMaskFilterImpl::filterMaskGPU(GrRecordingContext* co
902902
GrPaint paint;
903903
// Blend pathTexture over blurTexture.
904904
paint.addCoverageFragmentProcessor(
905-
GrTextureEffect::Make(std::move(srcProxy), srcAlphaType));
905+
GrTextureEffect::Make(std::move(srcProxy), srcAlphaType, SkMatrix::I()));
906906
if (kInner_SkBlurStyle == fBlurStyle) {
907907
// inner: dst = dst * src
908908
paint.setCoverageSetOpXPFactory(SkRegion::kIntersect_Op);

src/gpu/GrPaint.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ void GrPaint::setCoverageSetOpXPFactory(SkRegion::Op regionOp, bool invertCovera
3535
this->setXPFactory(GrCoverageSetOpXPFactory::Get(regionOp, invertCoverage));
3636
}
3737

38+
void GrPaint::addColorTextureProcessor(sk_sp<GrTextureProxy> proxy, SkAlphaType alphaType,
39+
const SkMatrix& matrix, GrSamplerState samplerState) {
40+
this->addColorFragmentProcessor(
41+
GrTextureEffect::Make(std::move(proxy), alphaType, matrix, samplerState));
42+
}
43+
3844
bool GrPaint::isConstantBlendedColor(SkPMColor4f* constantColor) const {
3945
// This used to do a more sophisticated analysis but now it just explicitly looks for common
4046
// cases.

src/gpu/GrPaint.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,13 @@ class GrPaint {
7777
fTrivial = false;
7878
}
7979

80+
/**
81+
* Helpers for adding color or coverage effects that sample a texture. The matrix is applied
82+
* to the src space position to compute texture coordinates.
83+
*/
84+
void addColorTextureProcessor(sk_sp<GrTextureProxy>, SkAlphaType, const SkMatrix&,
85+
GrSamplerState = GrSamplerState::Filter::kBilerp);
86+
8087
int numColorFragmentProcessors() const { return fColorFragmentProcessors.count(); }
8188
int numCoverageFragmentProcessors() const { return fCoverageFragmentProcessors.count(); }
8289
int numTotalFragmentProcessors() const { return this->numColorFragmentProcessors() +

src/gpu/GrRenderTargetContext.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2020,8 +2020,7 @@ void GrRenderTargetContext::asyncRescaleAndReadPixelsYUV420(SkYUVColorSpace yuvC
20202020
std::fill_n(yM, 15, 0.f);
20212021
std::copy_n(baseM + 0, 5, yM + 15);
20222022
GrPaint yPaint;
2023-
yPaint.addColorFragmentProcessor(
2024-
GrTextureEffect::Make(srcProxy, this->colorInfo().alphaType(), texMatrix));
2023+
yPaint.addColorTextureProcessor(srcProxy, this->colorInfo().alphaType(), texMatrix);
20252024
auto yFP = GrColorMatrixFragmentProcessor::Make(yM, false, true, false);
20262025
yPaint.addColorFragmentProcessor(std::move(yFP));
20272026
yPaint.setPorterDuffXPFactory(SkBlendMode::kSrc);
@@ -2040,8 +2039,8 @@ void GrRenderTargetContext::asyncRescaleAndReadPixelsYUV420(SkYUVColorSpace yuvC
20402039
std::fill_n(uM, 15, 0.f);
20412040
std::copy_n(baseM + 5, 5, uM + 15);
20422041
GrPaint uPaint;
2043-
uPaint.addColorFragmentProcessor(GrTextureEffect::Make(
2044-
srcProxy, this->colorInfo().alphaType(), texMatrix, GrSamplerState::Filter::kBilerp));
2042+
uPaint.addColorTextureProcessor(srcProxy, this->colorInfo().alphaType(), texMatrix,
2043+
GrSamplerState::Filter::kBilerp);
20452044
auto uFP = GrColorMatrixFragmentProcessor::Make(uM, false, true, false);
20462045
uPaint.addColorFragmentProcessor(std::move(uFP));
20472046
uPaint.setPorterDuffXPFactory(SkBlendMode::kSrc);
@@ -2059,8 +2058,8 @@ void GrRenderTargetContext::asyncRescaleAndReadPixelsYUV420(SkYUVColorSpace yuvC
20592058
std::fill_n(vM, 15, 0.f);
20602059
std::copy_n(baseM + 10, 5, vM + 15);
20612060
GrPaint vPaint;
2062-
vPaint.addColorFragmentProcessor(GrTextureEffect::Make(
2063-
srcProxy, this->colorInfo().alphaType(), texMatrix, GrSamplerState::Filter::kBilerp));
2061+
vPaint.addColorTextureProcessor(srcProxy, this->colorInfo().alphaType(), texMatrix,
2062+
GrSamplerState::Filter::kBilerp);
20642063
auto vFP = GrColorMatrixFragmentProcessor::Make(vM, false, true, false);
20652064
vPaint.addColorFragmentProcessor(std::move(vFP));
20662065
vPaint.setPorterDuffXPFactory(SkBlendMode::kSrc);
@@ -2580,7 +2579,7 @@ bool GrRenderTargetContext::blitTexture(GrTextureProxy* src, const SkIRect& srcR
25802579

25812580
GrPaint paint;
25822581
paint.setPorterDuffXPFactory(SkBlendMode::kSrc);
2583-
auto fp = GrTextureEffect::Make(sk_ref_sp(src), kUnknown_SkAlphaType);
2582+
auto fp = GrTextureEffect::Make(sk_ref_sp(src), kUnknown_SkAlphaType, SkMatrix::I());
25842583
if (!fp) {
25852584
return false;
25862585
}

src/gpu/GrSurfaceContext.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,9 @@ bool GrSurfaceContext::readPixels(const GrImageInfo& origDstInfo, void* dst, siz
219219

220220
std::unique_ptr<GrFragmentProcessor> fp;
221221
if (canvas2DFastPath) {
222-
fp = direct->priv().createPMToUPMEffect(GrTextureEffect::Make(
223-
sk_ref_sp(srcProxy->asTextureProxy()), this->colorInfo().alphaType()));
222+
fp = direct->priv().createPMToUPMEffect(
223+
GrTextureEffect::Make(sk_ref_sp(srcProxy->asTextureProxy()),
224+
this->colorInfo().alphaType(), SkMatrix::I()));
224225
if (dstInfo.colorType() == GrColorType::kBGRA_8888) {
225226
fp = GrFragmentProcessor::SwizzleOutput(std::move(fp), GrSwizzle::BGRA());
226227
dstInfo = dstInfo.makeColorType(GrColorType::kRGBA_8888);
@@ -231,7 +232,7 @@ bool GrSurfaceContext::readPixels(const GrImageInfo& origDstInfo, void* dst, siz
231232
dstInfo = dstInfo.makeAlphaType(kPremul_SkAlphaType);
232233
} else {
233234
fp = GrTextureEffect::Make(sk_ref_sp(srcProxy->asTextureProxy()),
234-
this->colorInfo().alphaType());
235+
this->colorInfo().alphaType(), SkMatrix::I());
235236
}
236237
if (!fp) {
237238
return false;
@@ -411,13 +412,13 @@ bool GrSurfaceContext::writePixels(const GrImageInfo& origSrcInfo, const void* s
411412
std::unique_ptr<GrFragmentProcessor> fp;
412413
if (canvas2DFastPath) {
413414
fp = direct->priv().createUPMToPMEffect(
414-
GrTextureEffect::Make(std::move(tempProxy), alphaType));
415+
GrTextureEffect::Make(std::move(tempProxy), alphaType, SkMatrix::I()));
415416
// Important: check the original src color type here!
416417
if (origSrcInfo.colorType() == GrColorType::kBGRA_8888) {
417418
fp = GrFragmentProcessor::SwizzleOutput(std::move(fp), GrSwizzle::BGRA());
418419
}
419420
} else {
420-
fp = GrTextureEffect::Make(std::move(tempProxy), alphaType);
421+
fp = GrTextureEffect::Make(std::move(tempProxy), alphaType, SkMatrix::I());
421422
}
422423
if (!fp) {
423424
return false;

src/gpu/SkGpuDevice.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1036,7 +1036,7 @@ void SkGpuDevice::drawSpecial(SkSpecialImage* special, int left, int top, const
10361036

10371037
tmpUnfiltered.setImageFilter(nullptr);
10381038

1039-
auto fp = GrTextureEffect::Make(std::move(proxy), special->alphaType());
1039+
auto fp = GrTextureEffect::Make(std::move(proxy), special->alphaType(), SkMatrix::I());
10401040
fp = GrColorSpaceXformEffect::Make(std::move(fp), result->getColorSpace(), result->alphaType(),
10411041
fRenderTargetContext->colorInfo().colorSpace());
10421042
if (GrColorTypeIsAlphaOnly(SkColorTypeToGrColorType(result->colorType()))) {

src/gpu/effects/GrConfigConversionEffect.fp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
std::unique_ptr<GrFragmentProcessor> upmToPM(
8383
new GrConfigConversionEffect(PMConversion::kToPremul));
8484

85-
paint1.addColorFragmentProcessor(GrTextureEffect::Make(dataProxy, kPremul_SkAlphaType));
85+
paint1.addColorTextureProcessor(dataProxy, kPremul_SkAlphaType, SkMatrix::I());
8686
paint1.addColorFragmentProcessor(pmToUPM->clone());
8787
paint1.setPorterDuffXPFactory(SkBlendMode::kSrc);
8888

@@ -96,14 +96,16 @@
9696
// draw
9797
tempRTC->discard();
9898

99-
paint2.addColorFragmentProcessor(GrTextureEffect::Make(readRTC->asTextureProxyRef(), kUnpremul_SkAlphaType));
99+
paint2.addColorTextureProcessor(readRTC->asTextureProxyRef(), kUnpremul_SkAlphaType,
100+
SkMatrix::I());
100101
paint2.addColorFragmentProcessor(std::move(upmToPM));
101102
paint2.setPorterDuffXPFactory(SkBlendMode::kSrc);
102103

103104
tempRTC->fillRectToRect(GrNoClip(), std::move(paint2), GrAA::kNo, SkMatrix::I(), kRect,
104105
kRect);
105106

106-
paint3.addColorFragmentProcessor(GrTextureEffect::Make(tempRTC->asTextureProxyRef(), kPremul_SkAlphaType));
107+
paint3.addColorTextureProcessor(tempRTC->asTextureProxyRef(), kPremul_SkAlphaType,
108+
SkMatrix::I());
107109
paint3.addColorFragmentProcessor(std::move(pmToUPM));
108110
paint3.setPorterDuffXPFactory(SkBlendMode::kSrc);
109111

src/gpu/effects/GrTextureEffect.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@
1515

1616
class GrTextureEffect : public GrFragmentProcessor {
1717
public:
18-
static std::unique_ptr<GrFragmentProcessor> Make(sk_sp<GrSurfaceProxy>,
19-
SkAlphaType,
20-
const SkMatrix& = SkMatrix::I(),
21-
GrSamplerState = {});
18+
static std::unique_ptr<GrFragmentProcessor> Make(
19+
sk_sp<GrSurfaceProxy>,
20+
SkAlphaType,
21+
const SkMatrix&,
22+
GrSamplerState = {GrSamplerState::Filter::kNearest});
23+
2224

2325
std::unique_ptr<GrFragmentProcessor> clone() const override;
2426

src/gpu/effects/generated/GrConfigConversionEffect.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class GrConfigConversionEffect : public GrFragmentProcessor {
8888
std::unique_ptr<GrFragmentProcessor> upmToPM(
8989
new GrConfigConversionEffect(PMConversion::kToPremul));
9090

91-
paint1.addColorFragmentProcessor(GrTextureEffect::Make(dataProxy, kPremul_SkAlphaType));
91+
paint1.addColorTextureProcessor(dataProxy, kPremul_SkAlphaType, SkMatrix::I());
9292
paint1.addColorFragmentProcessor(pmToUPM->clone());
9393
paint1.setPorterDuffXPFactory(SkBlendMode::kSrc);
9494

@@ -102,16 +102,16 @@ class GrConfigConversionEffect : public GrFragmentProcessor {
102102
// draw
103103
tempRTC->discard();
104104

105-
paint2.addColorFragmentProcessor(
106-
GrTextureEffect::Make(readRTC->asTextureProxyRef(), kUnpremul_SkAlphaType));
105+
paint2.addColorTextureProcessor(readRTC->asTextureProxyRef(), kUnpremul_SkAlphaType,
106+
SkMatrix::I());
107107
paint2.addColorFragmentProcessor(std::move(upmToPM));
108108
paint2.setPorterDuffXPFactory(SkBlendMode::kSrc);
109109

110110
tempRTC->fillRectToRect(GrNoClip(), std::move(paint2), GrAA::kNo, SkMatrix::I(), kRect,
111111
kRect);
112112

113-
paint3.addColorFragmentProcessor(
114-
GrTextureEffect::Make(tempRTC->asTextureProxyRef(), kPremul_SkAlphaType));
113+
paint3.addColorTextureProcessor(tempRTC->asTextureProxyRef(), kPremul_SkAlphaType,
114+
SkMatrix::I());
115115
paint3.addColorFragmentProcessor(std::move(pmToUPM));
116116
paint3.setPorterDuffXPFactory(SkBlendMode::kSrc);
117117

0 commit comments

Comments
 (0)