Update SkPaintToGrPaint to perform clamping via child FPs.

Previously, clamping would be a separate child processor on the GrPaint.
This CL consolidates all GrPaint-related color processors into a single
call to grPaint->addColorFragmentProcessor.

Change-Id: If726a1d216d55cb2d07cff92a7c4e7e2a873322d
Bug: skia:10217
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301020
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index 46514d5..e7e181f 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -337,14 +337,9 @@
     }
 #endif
 
-    if (paintFP) {
-        grPaint->addColorFragmentProcessor(std::move(paintFP));
-    }
-
     if (GrColorTypeClampType(dstColorInfo.colorType()) == GrClampType::kManual) {
-        if (grPaint->numColorFragmentProcessors()) {
-            grPaint->addColorFragmentProcessor(
-                GrClampFragmentProcessor::Make(/*inputFP=*/nullptr, /*clampToPremul=*/false));
+        if (paintFP != nullptr) {
+            paintFP = GrClampFragmentProcessor::Make(std::move(paintFP), /*clampToPremul=*/false);
         } else {
             auto color = grPaint->getColor4f();
             grPaint->setColor4f({SkTPin(color.fR, 0.f, 1.f),
@@ -353,6 +348,11 @@
                                  SkTPin(color.fA, 0.f, 1.f)});
         }
     }
+
+    if (paintFP) {
+        grPaint->addColorFragmentProcessor(std::move(paintFP));
+    }
+
     return true;
 }