Convert some SkRuntimeEffect::Make to use stage-specific factories

The old factory is deprecated. The new ones do stricter checking on the
signature of main and calls to sample, and include checks at effect
creation-time that the SkSL is valid for the requested stage.

Bug: skia:11813
Change-Id: Ibd15a6f90e74bdc9c2352d3dc61b6682f626f413
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397477
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/gm/lumafilter.cpp b/gm/lumafilter.cpp
index 1b3166b..779dd89 100644
--- a/gm/lumafilter.cpp
+++ b/gm/lumafilter.cpp
@@ -185,7 +185,7 @@
     canvas->translate(128,0);
 
     // Splatting the Y channel of XYZ on the right should result in (near) greyscale.
-    auto [effect, err] = SkRuntimeEffect::Make(SkString{
+    auto [effect, err] = SkRuntimeEffect::MakeForColorFilter(SkString{
             "half4 main(half4 inColor) { return inColor.yyya; }"});
     SkASSERT(effect && err.isEmpty());
 
diff --git a/gm/runtimecolorfilter.cpp b/gm/runtimecolorfilter.cpp
index d544c02..d55319d 100644
--- a/gm/runtimecolorfilter.cpp
+++ b/gm/runtimecolorfilter.cpp
@@ -32,12 +32,6 @@
     }
 )";
 
-const char* gLumaSrcWithCoords = R"(
-    half4 main(float2 p, half4 color) {
-        return dot(color.rgb, half3(0.3, 0.6, 0.1)).000r;
-    }
-)";
-
 // Build up the same effect with increasingly complex control flow syntax.
 // All of these are semantically equivalent and can be reduced in principle to one basic block.
 
@@ -92,7 +86,7 @@
     sk_sp<SkImage> img = GetResourceAsImage("images/mandrill_256.png");
 
     auto draw_filter = [&](const char* src) {
-        auto [effect, err] = SkRuntimeEffect::Make(SkString(src));
+        auto [effect, err] = SkRuntimeEffect::MakeForColorFilter(SkString(src));
         if (!effect) {
             SkDebugf("%s\n%s\n", src, err.c_str());
         }
@@ -103,10 +97,10 @@
         canvas->translate(256, 0);
     };
 
-    for (const char* src : { gNoop, gLumaSrc, gLumaSrcWithCoords}) {
+    for (const char* src : { gNoop, gLumaSrc }) {
         draw_filter(src);
     }
-    canvas->translate(-256*3, 256);
+    canvas->translate(-256*2, 256);
     for (const char* src : { gTernary, gIfs, gEarlyReturn}) {
         draw_filter(src);
     }
diff --git a/gm/runtimeeffectimage.cpp b/gm/runtimeeffectimage.cpp
index b9cb610..c24f77a 100644
--- a/gm/runtimeeffectimage.cpp
+++ b/gm/runtimeeffectimage.cpp
@@ -42,7 +42,7 @@
                 return result;
             }
         )");
-        auto [effect, error] = SkRuntimeEffect::Make(sksl);
+        auto [effect, error] = SkRuntimeEffect::MakeForShader(sksl);
         if (!effect) {
             SkDebugf("RuntimeShader error: %s\n", error.c_str());
         }
diff --git a/gm/runtimefunctions.cpp b/gm/runtimefunctions.cpp
index d472602..8158864 100644
--- a/gm/runtimefunctions.cpp
+++ b/gm/runtimefunctions.cpp
@@ -40,7 +40,7 @@
 
     void onDraw(SkCanvas* canvas) override {
         sk_sp<SkRuntimeEffect> gEffect =
-                SkRuntimeEffect::Make(SkString(RUNTIME_FUNCTIONS_SRC)).effect;
+                SkRuntimeEffect::MakeForShader(SkString(RUNTIME_FUNCTIONS_SRC)).effect;
         SkASSERT(gEffect);
 
         SkMatrix localM;
diff --git a/gm/runtimeintrinsics.cpp b/gm/runtimeintrinsics.cpp
index a6729c9..5a51c61 100644
--- a/gm/runtimeintrinsics.cpp
+++ b/gm/runtimeintrinsics.cpp
@@ -114,7 +114,7 @@
 
     draw_label(canvas, label ? label : fn);
 
-    auto [effect, error] = SkRuntimeEffect::Make(make_unary_sksl_1d(fn));
+    auto [effect, error] = SkRuntimeEffect::MakeForShader(make_unary_sksl_1d(fn));
     if (!effect) {
         SkDebugf("Error: %s\n", error.c_str());
         return;
@@ -339,7 +339,7 @@
 
     draw_label(canvas, label);
 
-    auto [effect, error] = SkRuntimeEffect::Make(make_matrix_comp_mult_sksl(N));
+    auto [effect, error] = SkRuntimeEffect::MakeForShader(make_matrix_comp_mult_sksl(N));
     if (!effect) {
         SkDebugf("Error: %s\n", error.c_str());
         return;
@@ -376,7 +376,7 @@
 
     draw_label(canvas, label);
 
-    auto [effect, error] = SkRuntimeEffect::Make(make_matrix_inverse_sksl(N));
+    auto [effect, error] = SkRuntimeEffect::MakeForShader(make_matrix_inverse_sksl(N));
     if (!effect) {
         SkDebugf("Error: %s\n", error.c_str());
         return;
@@ -465,7 +465,7 @@
     draw_label(canvas, label);
 
     const char* type = std::is_integral<T>::value ? "int" : "float";
-    auto [effect, error] = SkRuntimeEffect::Make(make_bvec_sksl(type, fn));
+    auto [effect, error] = SkRuntimeEffect::MakeForShader(make_bvec_sksl(type, fn));
     if (!effect) {
         SkDebugf("Error: %s\n", error.c_str());
         return;
diff --git a/gm/runtimeshader.cpp b/gm/runtimeshader.cpp
index 578f28a..663c349 100644
--- a/gm/runtimeshader.cpp
+++ b/gm/runtimeshader.cpp
@@ -30,7 +30,7 @@
             : fName(name), fSize(size), fFlags(flags), fSkSL(sksl) {}
 
     void onOnceBeforeDraw() override {
-        auto [effect, error] = SkRuntimeEffect::Make(fSkSL);
+        auto [effect, error] = SkRuntimeEffect::MakeForShader(fSkSL);
         if (!effect) {
             SkDebugf("RuntimeShader error: %s\n", error.c_str());
         }
@@ -300,12 +300,10 @@
 
 class DefaultColorRT : public RuntimeShaderGM {
 public:
-    // This test also *explicitly* doesn't include coords in main's parameter list, to test that
-    // runtime shaders work without them being declared (when they're not used).
     DefaultColorRT() : RuntimeShaderGM("default_color_rt", {512, 256}, R"(
         uniform shader input;
-        half4 main() {
-            return sample(input);
+        half4 main(float2 xy) {
+            return sample(input, xy);
         }
     )") {}
 
@@ -513,7 +511,7 @@
     surf->getCanvas()->drawLine(0, 0, 100, 100, p);
     auto shader = surf->makeImageSnapshot()->makeShader(SkSamplingOptions(SkFilterMode::kLinear));
 
-    SkRuntimeShaderBuilder builder(SkRuntimeEffect::Make(SkString(scale)).effect);
+    SkRuntimeShaderBuilder builder(SkRuntimeEffect::MakeForShader(SkString(scale)).effect);
     builder.child("child") = shader;
     p.setShader(builder.makeShader(nullptr, false));