Update SkColorFilterShader to use an inputFP instead of RunInSeries.

Change-Id: I22a6b110c414fe3d8942b2c890c1339de45c39e6
Bug: skia:10217
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/298984
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
diff --git a/src/shaders/SkColorFilterShader.cpp b/src/shaders/SkColorFilterShader.cpp
index c3cf244..95bdcc1 100644
--- a/src/shaders/SkColorFilterShader.cpp
+++ b/src/shaders/SkColorFilterShader.cpp
@@ -93,21 +93,19 @@
 
 std::unique_ptr<GrFragmentProcessor> SkColorFilterShader::asFragmentProcessor(
         const GrFPArgs& args) const {
-    auto fp1 = as_SB(fShader)->asFragmentProcessor(args);
-    if (!fp1) {
+    auto shaderFP = as_SB(fShader)->asFragmentProcessor(args);
+    if (!shaderFP) {
         return nullptr;
     }
 
     // TODO I guess, but it shouldn't come up as used today.
     SkASSERT(fAlpha == 1.0f);
 
-    auto fp2 = fFilter->asFragmentProcessor(args.fContext, *args.fDstColorInfo);
-    if (!fp2) {
-        return fp1;
-    }
-
-    std::unique_ptr<GrFragmentProcessor> fpSeries[] = { std::move(fp1), std::move(fp2) };
-    return GrFragmentProcessor::RunInSeries(fpSeries, 2);
+    auto [success, fp] = fFilter->asFragmentProcessor(std::move(shaderFP), args.fContext,
+                                                      *args.fDstColorInfo);
+    // If the filter FP could not be created, we still want to return the shader FP, so checking
+    // success can be omitted here.
+    return std::move(fp);
 }
 #endif