Replace ModulateRGBA effect with Xfermode using modulate blend.

This reduces our code size by reusing existing components to perform
the same blend, and generates a shader that should be conceptually
equivalent (although it gives the inliner a bit more work to do).

Change-Id: Ie2203f7613503476fa9d045aba58d9ef39f3ea26
Bug: skia:10457
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302264
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrFragmentProcessor.h b/src/gpu/GrFragmentProcessor.h
index c23be06..812f06f 100644
--- a/src/gpu/GrFragmentProcessor.h
+++ b/src/gpu/GrFragmentProcessor.h
@@ -55,6 +55,13 @@
             std::unique_ptr<GrFragmentProcessor> child, const SkPMColor4f& color);
 
     /**
+     *  Returns a fragment processor that generates the passed-in color, modulated by the child's
+     *  RGBA color. (Pass a null FP to use the color from sk_InColor instead of a child FP.)
+     */
+    static std::unique_ptr<GrFragmentProcessor> ModulateRGBA(
+            std::unique_ptr<GrFragmentProcessor> child, const SkPMColor4f& color);
+
+    /**
      *  This assumes that the input color to the returned processor will be unpremul and that the
      *  passed processor (which becomes the returned processor's child) produces a premul output.
      *  The result of the returned processor is a premul of its input color modulated by the child