Add SkBlurDrawLooper::Make(SkColor4f, SkColorSpace)

Bug: b/120904891

This will allow adding android.graphics.Paint#setShadowLayer(
    float radius, float dx, float dy, @ColorLong long shadowColor).

Change-Id: Ic9256b10c82b56847802f209cf82b4e5c07a9069
Reviewed-on: https://skia-review.googlesource.com/c/182762
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/include/effects/SkBlurDrawLooper.h b/include/effects/SkBlurDrawLooper.h
index 08e7766..13f5b8a 100644
--- a/include/effects/SkBlurDrawLooper.h
+++ b/include/effects/SkBlurDrawLooper.h
@@ -16,6 +16,8 @@
  *  its original position.
  */
 namespace SkBlurDrawLooper {
+    sk_sp<SkDrawLooper> SK_API Make(SkColor4f color, SkColorSpace* cs,
+            SkScalar sigma, SkScalar dx, SkScalar dy);
     sk_sp<SkDrawLooper> SK_API Make(SkColor color, SkScalar sigma, SkScalar dx, SkScalar dy);
 };
 
diff --git a/src/effects/SkLayerDrawLooper.cpp b/src/effects/SkLayerDrawLooper.cpp
index 02ad625..f0a429e 100644
--- a/src/effects/SkLayerDrawLooper.cpp
+++ b/src/effects/SkLayerDrawLooper.cpp
@@ -343,6 +343,12 @@
 
 sk_sp<SkDrawLooper> SkBlurDrawLooper::Make(SkColor color, SkScalar sigma, SkScalar dx, SkScalar dy)
 {
+    return Make(SkColor4f::FromColor(color), sk_srgb_singleton(), sigma, dx, dy);
+}
+
+sk_sp<SkDrawLooper> SkBlurDrawLooper::Make(SkColor4f color, SkColorSpace* cs,
+        SkScalar sigma, SkScalar dx, SkScalar dy)
+{
     sk_sp<SkMaskFilter> blur = nullptr;
     if (sigma > 0.0f) {
         blur = SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, sigma, true);
@@ -361,7 +367,7 @@
     blurInfo.fOffset = SkVector::Make(dx, dy);
     SkPaint* paint = builder.addLayer(blurInfo);
     paint->setMaskFilter(std::move(blur));
-    paint->setColor(color);
+    paint->setColor4f(color, cs);
 
     return builder.detach();
 }