Add helper method to clone and register a child FP.

This will remove common boilerplate from our gen-code, and gives us a
place to put common child-cloning boilerplate.

Change-Id: I6101655af89d4c5844ec908b81ce4f6e5d59f834
Bug: skia:10217
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/296177
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
diff --git a/src/gpu/effects/generated/GrMixerEffect.cpp b/src/gpu/effects/generated/GrMixerEffect.cpp
index ceb665e..0753de6 100644
--- a/src/gpu/effects/generated/GrMixerEffect.cpp
+++ b/src/gpu/effects/generated/GrMixerEffect.cpp
@@ -65,19 +65,9 @@
 }
 GrMixerEffect::GrMixerEffect(const GrMixerEffect& src)
         : INHERITED(kGrMixerEffect_ClassID, src.optimizationFlags()), weight(src.weight) {
-    {
-        auto fp0_clone = src.childProcessor(src.fp0_index).clone();
-        if (src.childProcessor(src.fp0_index).isSampledWithExplicitCoords()) {
-            fp0_clone->setSampledWithExplicitCoords();
-        }
-        fp0_index = this->registerChildProcessor(std::move(fp0_clone));
-    }
+    { fp0_index = this->cloneAndRegisterChildProcessor(src.childProcessor(src.fp0_index)); }
     if (src.fp1_index >= 0) {
-        auto fp1_clone = src.childProcessor(src.fp1_index).clone();
-        if (src.childProcessor(src.fp1_index).isSampledWithExplicitCoords()) {
-            fp1_clone->setSampledWithExplicitCoords();
-        }
-        fp1_index = this->registerChildProcessor(std::move(fp1_clone));
+        fp1_index = this->cloneAndRegisterChildProcessor(src.childProcessor(src.fp1_index));
     }
 }
 std::unique_ptr<GrFragmentProcessor> GrMixerEffect::clone() const {