Remove array of TextureSampler pointers from GrIOResourceProcessor.
Instead store sampler count on base class and subclasses implement a
virtual to get the ith sampler.
Change-Id: I13e2447a6467a09761d8615acb4aa360b87b1476
Reviewed-on: https://skia-review.googlesource.com/141563
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
index 4d5d50b..351e191 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
@@ -236,10 +236,9 @@
for (int i = 0; i < numProxies; ++i) {
SkASSERT(proxies[i]);
-
fTextureSamplers[i].reset(std::move(proxies[i]), params);
- this->addTextureSampler(&fTextureSamplers[i]);
}
+ this->setTextureSamplerCnt(numProxies);
}
void GrDistanceFieldA8TextGeoProc::addNewProxies(const sk_sp<GrTextureProxy>* proxies,
@@ -249,12 +248,11 @@
for (int i = 0; i < numProxies; ++i) {
SkASSERT(proxies[i]);
-
if (!fTextureSamplers[i].isInitialized()) {
fTextureSamplers[i].reset(std::move(proxies[i]), params);
- this->addTextureSampler(&fTextureSamplers[i]);
}
}
+ this->setTextureSamplerCnt(numProxies);
}
void GrDistanceFieldA8TextGeoProc::getGLSLProcessorKey(const GrShaderCaps& caps,
@@ -519,10 +517,9 @@
this->setVertexAttributeCnt(3);
for (int i = 0; i < numProxies; ++i) {
SkASSERT(proxies[i]);
-
fTextureSamplers[i].reset(std::move(proxies[i]), params);
- this->addTextureSampler(&fTextureSamplers[i]);
}
+ this->setTextureSamplerCnt(numProxies);
}
void GrDistanceFieldPathGeoProc::addNewProxies(const sk_sp<GrTextureProxy>* proxies,
@@ -535,9 +532,9 @@
if (!fTextureSamplers[i].isInitialized()) {
fTextureSamplers[i].reset(std::move(proxies[i]), params);
- this->addTextureSampler(&fTextureSamplers[i]);
}
}
+ this->setTextureSamplerCnt(numProxies);
}
void GrDistanceFieldPathGeoProc::getGLSLProcessorKey(const GrShaderCaps& caps,
@@ -834,10 +831,9 @@
for (int i = 0; i < numProxies; ++i) {
SkASSERT(proxies[i]);
-
fTextureSamplers[i].reset(std::move(proxies[i]), params);
- this->addTextureSampler(&fTextureSamplers[i]);
}
+ this->setTextureSamplerCnt(numProxies);
}
void GrDistanceFieldLCDTextGeoProc::addNewProxies(const sk_sp<GrTextureProxy>* proxies,
@@ -850,9 +846,9 @@
if (!fTextureSamplers[i].isInitialized()) {
fTextureSamplers[i].reset(std::move(proxies[i]), params);
- this->addTextureSampler(&fTextureSamplers[i]);
}
}
+ this->setTextureSamplerCnt(numProxies);
}
void GrDistanceFieldLCDTextGeoProc::getGLSLProcessorKey(const GrShaderCaps& caps,