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/GrPathProcessor.cpp b/src/gpu/GrPathProcessor.cpp
index 571ad1c..667a80f 100644
--- a/src/gpu/GrPathProcessor.cpp
+++ b/src/gpu/GrPathProcessor.cpp
@@ -58,11 +58,10 @@
void emitTransforms(GrGLSLVaryingHandler* varyingHandler,
FPCoordTransformHandler* transformHandler) {
- int i = 0;
- while (const GrCoordTransform* coordTransform = transformHandler->nextCoordTransform()) {
+ for (int i = 0; *transformHandler; ++*transformHandler, ++i) {
+ auto [coordTransform, fp] = transformHandler->get();
GrSLType varyingType =
- coordTransform->getMatrix().hasPerspective() ? kHalf3_GrSLType
- : kHalf2_GrSLType;
+ coordTransform.matrix().hasPerspective() ? kHalf3_GrSLType : kHalf2_GrSLType;
SkString strVaryingName;
strVaryingName.printf("TransformedCoord_%d", i);
@@ -75,10 +74,9 @@
fInstalledTransforms.back().fType = varyingType;
transformHandler->specifyCoordsForCurrCoordTransform(
- matrix_to_sksl(coordTransform->getMatrix()),
- UniformHandle(),
- GrShaderVar(SkString(v.fsIn()),
- varyingType));
+ matrix_to_sksl(coordTransform.matrix()),
+ UniformHandle(),
+ GrShaderVar(SkString(v.fsIn()), varyingType));
++i;
}
}