collapse parametric_{r,g,b} into parametric, remove _a and gamma_dst

parametric_a and gamma_dst were unused outside of unit tests.

In all other cases, we always use parametric_{r,g,b} together
and always pass them the same argument.  So we can collapse
them into a single stage like gamma and to/from_srgb.

Change-Id: I08cea896c7744f97b4f4bf9e029f5d643e45e177
Reviewed-on: https://skia-review.googlesource.com/140576
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/tests/ParametricStageTest.cpp b/tests/ParametricStageTest.cpp
index 6d98ac4..1b943e9 100644
--- a/tests/ParametricStageTest.cpp
+++ b/tests/ParametricStageTest.cpp
@@ -22,10 +22,7 @@
 
     SkRasterPipeline_<256> p;
     p.append(SkRasterPipeline::load_f32, &ip);
-    p.append(SkRasterPipeline::parametric_r, &fn);
-    p.append(SkRasterPipeline::parametric_g, &fn);
-    p.append(SkRasterPipeline::parametric_b, &fn);
-    p.append(SkRasterPipeline::parametric_a, &fn);
+    p.append(SkRasterPipeline::parametric, &fn);
     p.append(SkRasterPipeline::store_f32, &op);
 
     p.run(0,0, 256/4,1);
@@ -34,6 +31,9 @@
     for (int i = 0; i < 256; i++) {
         float want = (in[i] <= fn.fD) ? fn.fC * in[i] + fn.fF
                                       : powf(in[i] * fn.fA + fn.fB, fn.fG) + fn.fE;
+        if (i % 4 == 3) {  // alpha should stay unchanged.
+            want = in[i];
+        }
         float err = fabsf(out[i] - want);
         if (err > limit) {
             ERRORF(r, "At %d, error was %g (got %g, want %g)", i, err, out[i], want);