Changes to GrCoordTransform and local coords
*Don't track vertex-shader status per-coord transform, just at FP level
*Remove outdated "in processor" checks
*Adjust "uses local coords" on FP to consider whether coord transforms
actually transform local coords or custom coords
*Remove unused accessMatrix() method
*Don't track normalization and y-flipping separately from proxy
*Rename some things for clarity
*Simplify FPCoordTransformHandler
Change-Id: Ic493afc82bd949bbab177d33111a1942e33f88a9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256101
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrFragmentProcessor.cpp b/src/gpu/GrFragmentProcessor.cpp
index 88acf1e..23836f8 100644
--- a/src/gpu/GrFragmentProcessor.cpp
+++ b/src/gpu/GrFragmentProcessor.cpp
@@ -69,10 +69,8 @@
}
void GrFragmentProcessor::addCoordTransform(GrCoordTransform* transform) {
- transform->setComputeInVertexShader(this->computeLocalCoordsInVertexShader());
fCoordTransforms.push_back(transform);
- fFlags |= kUsesLocalCoords_Flag;
- SkDEBUGCODE(transform->setInProcessor();)
+ fFlags |= kHasCoordTranforms_Flag;
}
#ifdef SK_DEBUG
@@ -94,8 +92,8 @@
#endif
int GrFragmentProcessor::registerChildProcessor(std::unique_ptr<GrFragmentProcessor> child) {
- if (child->usesLocalCoords()) {
- fFlags |= kUsesLocalCoords_Flag;
+ if (child->fFlags & kHasCoordTranforms_Flag) {
+ fFlags |= kHasCoordTranforms_Flag;
}
fRequestedFeatures |= child->fRequestedFeatures;
@@ -111,7 +109,7 @@
}
int count = this->numCoordTransforms();
for (int i = 0; i < count; ++i) {
- if (!this->coordTransform(i).hasSameEffectAs(that.coordTransform(i))) {
+ if (!this->coordTransform(i).hasSameEffectiveMatrix(that.coordTransform(i))) {
return false;
}
}