SkSL 'key' variables can now be controlled by 'when' expressions

Bug: skia:8880
Change-Id: I075ef57035b37250196d85bc6767eb877e445aa2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/206698
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/gpu/effects/GrMagnifierEffect.cpp b/src/gpu/effects/GrMagnifierEffect.cpp
index 4bef44d..3e34da7 100644
--- a/src/gpu/effects/GrMagnifierEffect.cpp
+++ b/src/gpu/effects/GrMagnifierEffect.cpp
@@ -22,29 +22,29 @@
         GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder;
         const GrMagnifierEffect& _outer = args.fFp.cast<GrMagnifierEffect>();
         (void)_outer;
-        auto bounds = _outer.bounds();
+        auto bounds = _outer.bounds;
         (void)bounds;
-        auto srcRect = _outer.srcRect();
+        auto srcRect = _outer.srcRect;
         (void)srcRect;
-        auto xInvZoom = _outer.xInvZoom();
+        auto xInvZoom = _outer.xInvZoom;
         (void)xInvZoom;
-        auto yInvZoom = _outer.yInvZoom();
+        auto yInvZoom = _outer.yInvZoom;
         (void)yInvZoom;
-        auto xInvInset = _outer.xInvInset();
+        auto xInvInset = _outer.xInvInset;
         (void)xInvInset;
-        auto yInvInset = _outer.yInvInset();
+        auto yInvInset = _outer.yInvInset;
         (void)yInvInset;
-        fBoundsUniformVar = args.fUniformHandler->addUniform(
+        boundsUniformVar = args.fUniformHandler->addUniform(
                 kFragment_GrShaderFlag, kFloat4_GrSLType, "boundsUniform");
-        fXInvZoomVar = args.fUniformHandler->addUniform(
+        xInvZoomVar = args.fUniformHandler->addUniform(
                 kFragment_GrShaderFlag, kFloat_GrSLType, "xInvZoom");
-        fYInvZoomVar = args.fUniformHandler->addUniform(
+        yInvZoomVar = args.fUniformHandler->addUniform(
                 kFragment_GrShaderFlag, kFloat_GrSLType, "yInvZoom");
-        fXInvInsetVar = args.fUniformHandler->addUniform(
+        xInvInsetVar = args.fUniformHandler->addUniform(
                 kFragment_GrShaderFlag, kFloat_GrSLType, "xInvInset");
-        fYInvInsetVar = args.fUniformHandler->addUniform(
+        yInvInsetVar = args.fUniformHandler->addUniform(
                 kFragment_GrShaderFlag, kFloat_GrSLType, "yInvInset");
-        fOffsetVar =
+        offsetVar =
                 args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf2_GrSLType, "offset");
         SkString sk_TransformedCoords2D_0 = fragBuilder->ensureCoords2D(args.fTransformedCoords[0]);
         fragBuilder->codeAppendf(
@@ -56,13 +56,13 @@
                 "weight = min(dist * dist, 1.0);\n} else {\n    float2 delta_squared = delta * "
                 "delta;\n    weight = min(min(delta_squared.x, delta_square",
                 sk_TransformedCoords2D_0.c_str(),
-                args.fUniformHandler->getUniformCStr(fOffsetVar),
-                args.fUniformHandler->getUniformCStr(fXInvZoomVar),
-                args.fUniformHandler->getUniformCStr(fYInvZoomVar),
-                args.fUniformHandler->getUniformCStr(fBoundsUniformVar),
-                args.fUniformHandler->getUniformCStr(fBoundsUniformVar),
-                args.fUniformHandler->getUniformCStr(fXInvInsetVar),
-                args.fUniformHandler->getUniformCStr(fYInvInsetVar));
+                args.fUniformHandler->getUniformCStr(offsetVar),
+                args.fUniformHandler->getUniformCStr(xInvZoomVar),
+                args.fUniformHandler->getUniformCStr(yInvZoomVar),
+                args.fUniformHandler->getUniformCStr(boundsUniformVar),
+                args.fUniformHandler->getUniformCStr(boundsUniformVar),
+                args.fUniformHandler->getUniformCStr(xInvInsetVar),
+                args.fUniformHandler->getUniformCStr(yInvInsetVar));
         fragBuilder->codeAppendf(
                 "d.y), 1.0);\n}\n%s = texture(%s, mix(coord, zoom_coord, weight)).%s;\n",
                 args.fOutputColor,
@@ -75,29 +75,29 @@
                    const GrFragmentProcessor& _proc) override {
         const GrMagnifierEffect& _outer = _proc.cast<GrMagnifierEffect>();
         {
-            pdman.set1f(fXInvZoomVar, (_outer.xInvZoom()));
-            pdman.set1f(fYInvZoomVar, (_outer.yInvZoom()));
-            pdman.set1f(fXInvInsetVar, (_outer.xInvInset()));
-            pdman.set1f(fYInvInsetVar, (_outer.yInvInset()));
+            pdman.set1f(xInvZoomVar, (_outer.xInvZoom));
+            pdman.set1f(yInvZoomVar, (_outer.yInvZoom));
+            pdman.set1f(xInvInsetVar, (_outer.xInvInset));
+            pdman.set1f(yInvInsetVar, (_outer.yInvInset));
         }
         GrSurfaceProxy& srcProxy = *_outer.textureSampler(0).proxy();
         GrTexture& src = *srcProxy.peekTexture();
         (void)src;
-        auto bounds = _outer.bounds();
+        auto bounds = _outer.bounds;
         (void)bounds;
-        UniformHandle& boundsUniform = fBoundsUniformVar;
+        UniformHandle& boundsUniform = boundsUniformVar;
         (void)boundsUniform;
-        auto srcRect = _outer.srcRect();
+        auto srcRect = _outer.srcRect;
         (void)srcRect;
-        UniformHandle& xInvZoom = fXInvZoomVar;
+        UniformHandle& xInvZoom = xInvZoomVar;
         (void)xInvZoom;
-        UniformHandle& yInvZoom = fYInvZoomVar;
+        UniformHandle& yInvZoom = yInvZoomVar;
         (void)yInvZoom;
-        UniformHandle& xInvInset = fXInvInsetVar;
+        UniformHandle& xInvInset = xInvInsetVar;
         (void)xInvInset;
-        UniformHandle& yInvInset = fYInvInsetVar;
+        UniformHandle& yInvInset = yInvInsetVar;
         (void)yInvInset;
-        UniformHandle& offset = fOffsetVar;
+        UniformHandle& offset = offsetVar;
         (void)offset;
 
         SkScalar invW = 1.0f / src.width();
@@ -125,12 +125,12 @@
                         SkIntToScalar(src.height()) / bounds.height());
         }
     }
-    UniformHandle fBoundsUniformVar;
-    UniformHandle fOffsetVar;
-    UniformHandle fXInvZoomVar;
-    UniformHandle fYInvZoomVar;
-    UniformHandle fXInvInsetVar;
-    UniformHandle fYInvInsetVar;
+    UniformHandle boundsUniformVar;
+    UniformHandle offsetVar;
+    UniformHandle xInvZoomVar;
+    UniformHandle yInvZoomVar;
+    UniformHandle xInvInsetVar;
+    UniformHandle yInvInsetVar;
 };
 GrGLSLFragmentProcessor* GrMagnifierEffect::onCreateGLSLInstance() const {
     return new GrGLSLMagnifierEffect();
@@ -140,33 +140,33 @@
 bool GrMagnifierEffect::onIsEqual(const GrFragmentProcessor& other) const {
     const GrMagnifierEffect& that = other.cast<GrMagnifierEffect>();
     (void)that;
-    if (fSrc != that.fSrc) return false;
-    if (fBounds != that.fBounds) return false;
-    if (fSrcRect != that.fSrcRect) return false;
-    if (fXInvZoom != that.fXInvZoom) return false;
-    if (fYInvZoom != that.fYInvZoom) return false;
-    if (fXInvInset != that.fXInvInset) return false;
-    if (fYInvInset != that.fYInvInset) return false;
+    if (src != that.src) return false;
+    if (bounds != that.bounds) return false;
+    if (srcRect != that.srcRect) return false;
+    if (xInvZoom != that.xInvZoom) return false;
+    if (yInvZoom != that.yInvZoom) return false;
+    if (xInvInset != that.xInvInset) return false;
+    if (yInvInset != that.yInvInset) return false;
     return true;
 }
 GrMagnifierEffect::GrMagnifierEffect(const GrMagnifierEffect& src)
         : INHERITED(kGrMagnifierEffect_ClassID, src.optimizationFlags())
-        , fSrc(src.fSrc)
-        , fBounds(src.fBounds)
-        , fSrcRect(src.fSrcRect)
-        , fXInvZoom(src.fXInvZoom)
-        , fYInvZoom(src.fYInvZoom)
-        , fXInvInset(src.fXInvInset)
-        , fYInvInset(src.fYInvInset)
-        , fSrcCoordTransform(src.fSrcCoordTransform) {
+        , srcCoordTransform(src.srcCoordTransform)
+        , src(src.src)
+        , bounds(src.bounds)
+        , srcRect(src.srcRect)
+        , xInvZoom(src.xInvZoom)
+        , yInvZoom(src.yInvZoom)
+        , xInvInset(src.xInvInset)
+        , yInvInset(src.yInvInset) {
     this->setTextureSamplerCnt(1);
-    this->addCoordTransform(&fSrcCoordTransform);
+    this->addCoordTransform(&srcCoordTransform);
 }
 std::unique_ptr<GrFragmentProcessor> GrMagnifierEffect::clone() const {
     return std::unique_ptr<GrFragmentProcessor>(new GrMagnifierEffect(*this));
 }
 const GrFragmentProcessor::TextureSampler& GrMagnifierEffect::onTextureSampler(int index) const {
-    return IthTextureSampler(index, fSrc);
+    return IthTextureSampler(index, src);
 }
 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrMagnifierEffect);
 #if GR_TEST_UTILS