Sweep gradient support for CanvasKit

Change-Id: I04af9ea7aa6c6f95de6ff1eaf5ee41d59df7f09e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277059
Reviewed-by: Kevin Lubick <kjlubick@google.com>
diff --git a/modules/canvaskit/interface.js b/modules/canvaskit/interface.js
index fb180d8..fdb5552 100644
--- a/modules/canvaskit/interface.js
+++ b/modules/canvaskit/interface.js
@@ -1128,6 +1128,33 @@
     return rgs;
   }
 
+  CanvasKit.SkShader.MakeSweepGradient = function(cx, cy, colors, pos, mode, localMatrix, flags, startAngle, endAngle) {
+    var colorPtr = copy1dArray(colors, CanvasKit.HEAPU32);
+    var posPtr =   copy1dArray(pos,    CanvasKit.HEAPF32);
+    flags = flags || 0;
+    startAngle = startAngle || 0;
+    endAngle = endAngle || 360;
+    localMatrix = localMatrix || [
+                                   1, 0, 0,
+                                   0, 1, 0,
+                                   0, 0, 1,
+                                 ];
+
+    // Add perspective args if not provided.
+    if (localMatrix.length === 6) {
+      localMatrix.push(0, 0, 1);
+    }
+
+    var sgs = CanvasKit._MakeSweepGradientShader(cx, cy, colorPtr, posPtr,
+                                                  colors.length, mode,
+                                                  startAngle, endAngle, flags,
+                                                  localMatrix);
+
+    CanvasKit._free(colorPtr);
+    CanvasKit._free(posPtr);
+    return sgs;
+  }
+
   CanvasKit.SkShader.MakeTwoPointConicalGradient = function(start, startRadius, end, endRadius,
                                                          colors, pos, mode, localMatrix, flags) {
     var colorPtr = copy1dArray(colors, CanvasKit.HEAPU32);