Use SkPMColor4f in OverrideInput, remove some kruft from SkGr

Bug: skia:
Change-Id: I2263048fea3b708aa0ac7758a80cbdc47e4f45f2
Reviewed-on: https://skia-review.googlesource.com/c/159540
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/atlastext/SkAtlasTextTarget.cpp b/src/atlastext/SkAtlasTextTarget.cpp
index c85e8d0..1eaba05 100644
--- a/src/atlastext/SkAtlasTextTarget.cpp
+++ b/src/atlastext/SkAtlasTextTarget.cpp
@@ -105,7 +105,7 @@
 
     void makeGrPaint(GrMaskFormat, const SkPaint& skPaint, const SkMatrix&,
                      GrPaint* grPaint) override {
-        grPaint->setColor4f(SkColor4fToPremulGrColor4fLegacy(skPaint.getColor4f()));
+        grPaint->setColor4f(GrColor4f::FromRGBA4f(skPaint.getColor4f().premul()));
     }
 
     GrContext* getContext() override {
diff --git a/src/gpu/GrFragmentProcessor.cpp b/src/gpu/GrFragmentProcessor.cpp
index 550134b..eff7419 100644
--- a/src/gpu/GrFragmentProcessor.cpp
+++ b/src/gpu/GrFragmentProcessor.cpp
@@ -281,11 +281,11 @@
 //////////////////////////////////////////////////////////////////////////////
 
 std::unique_ptr<GrFragmentProcessor> GrFragmentProcessor::OverrideInput(
-        std::unique_ptr<GrFragmentProcessor> fp, GrColor4f color) {
+        std::unique_ptr<GrFragmentProcessor> fp, const SkPMColor4f& color) {
     class ReplaceInputFragmentProcessor : public GrFragmentProcessor {
     public:
         static std::unique_ptr<GrFragmentProcessor> Make(std::unique_ptr<GrFragmentProcessor> child,
-                                                         GrColor4f color) {
+                                                         const SkPMColor4f& color) {
             return std::unique_ptr<GrFragmentProcessor>(
                     new ReplaceInputFragmentProcessor(std::move(child), color));
         }
@@ -312,29 +312,31 @@
             private:
                 void onSetData(const GrGLSLProgramDataManager& pdman,
                                const GrFragmentProcessor& fp) override {
-                    GrColor4f color = fp.cast<ReplaceInputFragmentProcessor>().fColor;
+                    SkPMColor4f color = fp.cast<ReplaceInputFragmentProcessor>().fColor;
                     if (!fHaveSetColor || color != fPreviousColor) {
-                        pdman.set4fv(fColorUni, 1, color.fRGBA);
+                        pdman.set4fv(fColorUni, 1, color.vec());
                         fPreviousColor = color;
                         fHaveSetColor = true;
                     }
                 }
 
                 GrGLSLProgramDataManager::UniformHandle fColorUni;
-                bool      fHaveSetColor;
-                GrColor4f fPreviousColor;
+                bool        fHaveSetColor;
+                SkPMColor4f fPreviousColor;
             };
 
             return new GLFP;
         }
 
-        ReplaceInputFragmentProcessor(std::unique_ptr<GrFragmentProcessor> child, GrColor4f color)
+        ReplaceInputFragmentProcessor(std::unique_ptr<GrFragmentProcessor> child,
+                                      const SkPMColor4f& color)
                 : INHERITED(kReplaceInputFragmentProcessor_ClassID, OptFlags(child.get(), color))
                 , fColor(color) {
             this->registerChildProcessor(std::move(child));
         }
 
-        static OptimizationFlags OptFlags(const GrFragmentProcessor* child, GrColor4f color) {
+        static OptimizationFlags OptFlags(const GrFragmentProcessor* child,
+                                          const SkPMColor4f& color) {
             OptimizationFlags childFlags = child->optimizationFlags();
             OptimizationFlags flags = kNone_OptimizationFlags;
             if (childFlags & kConstantOutputForConstantInput_OptimizationFlag) {
@@ -354,11 +356,10 @@
         }
 
         SkPMColor4f constantOutputForConstantInput(const SkPMColor4f&) const override {
-            return ConstantOutputForConstantInput(this->childProcessor(0),
-                                                  fColor.asRGBA4f<kPremul_SkAlphaType>());
+            return ConstantOutputForConstantInput(this->childProcessor(0), fColor);
         }
 
-        GrColor4f fColor;
+        SkPMColor4f fColor;
 
         typedef GrFragmentProcessor INHERITED;
     };
diff --git a/src/gpu/GrFragmentProcessor.h b/src/gpu/GrFragmentProcessor.h
index 19ce61b..6371950 100644
--- a/src/gpu/GrFragmentProcessor.h
+++ b/src/gpu/GrFragmentProcessor.h
@@ -64,7 +64,7 @@
      *  child.
      */
     static std::unique_ptr<GrFragmentProcessor> OverrideInput(std::unique_ptr<GrFragmentProcessor>,
-                                                              GrColor4f);
+                                                              const SkPMColor4f&);
 
     /**
      *  Returns a fragment processor that premuls the input before calling the passed in fragment
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index 8f08d6d..f78ef18 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -254,15 +254,6 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-GrColor4f SkColorToPremulGrColor4f(SkColor c, const GrColorSpaceInfo& colorSpaceInfo) {
-    // We want to premultiply after color space conversion, so this is easy:
-    return SkColor4fToUnpremulGrColor4f(SkColor4f::FromColor(c), colorSpaceInfo).premul();
-}
-
-GrColor4f SkColor4fToPremulGrColor4fLegacy(SkColor4f c) {
-    return GrColor4f::FromRGBA4f(c.premul());
-}
-
 GrColor4f SkColor4fToUnpremulGrColor4f(SkColor4f c, const GrColorSpaceInfo& colorSpaceInfo) {
     GrColor4f color = GrColor4f::FromRGBA4f(c);
     if (auto* xform = colorSpaceInfo.colorSpaceXformFromSRGB()) {
@@ -405,7 +396,7 @@
             // The geometry processor will insert the primitive color to start the color chain, so
             // the GrPaint color will be ignored.
 
-            GrColor4f shaderInput = origColor.opaque();
+            SkPMColor4f shaderInput = origColor.opaque().asRGBA4f<kPremul_SkAlphaType>();
             shaderFP = GrFragmentProcessor::OverrideInput(std::move(shaderFP), shaderInput);
             shaderFP = GrXfermodeFragmentProcessor::MakeFromSrcProcessor(std::move(shaderFP),
                                                                          *primColorMode);
diff --git a/src/gpu/SkGr.h b/src/gpu/SkGr.h
index cdc885a..2159cd9 100644
--- a/src/gpu/SkGr.h
+++ b/src/gpu/SkGr.h
@@ -59,8 +59,6 @@
 
 /** Transform an SkColor (sRGB bytes) or SkColor4f (sRGB floats) to GrColor4f
     for the specified color space info. */
-GrColor4f SkColorToPremulGrColor4f(SkColor, const GrColorSpaceInfo&);
-GrColor4f SkColor4fToPremulGrColor4fLegacy(SkColor4f);
 GrColor4f SkColor4fToUnpremulGrColor4f(SkColor4f, const GrColorSpaceInfo&);
 
 /** Similar, but using SkPMColor4f. */
@@ -166,8 +164,6 @@
 GR_STATIC_ASSERT((int)kIDA_GrBlendCoeff == (int)SkBlendModeCoeff::kIDA);
 //GR_STATIC_ASSERT(SkXfermode::kCoeffCount == 10);
 
-#define SkXfermodeCoeffToGrBlendCoeff(X) ((GrBlendCoeff)(X))
-
 ////////////////////////////////////////////////////////////////////////////////
 // Texture management