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);