@shopify/react-native-skia 0.1.132 → 0.1.133
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/cpp/rnskia-android/RNSkDrawViewImpl.cpp +5 -0
- package/cpp/api/JsiSkImage.h +2 -19
- package/cpp/api/JsiSkPaint.h +5 -32
- package/cpp/api/JsiSkPath.h +4 -4
- package/lib/commonjs/skia/types/Image/Image.js +5 -5
- package/lib/commonjs/skia/types/Image/Image.js.map +1 -1
- package/lib/commonjs/skia/types/Paint/Paint.js +3 -3
- package/lib/commonjs/skia/types/Paint/Paint.js.map +1 -1
- package/lib/commonjs/skia/types/Path/Path.js +0 -1
- package/lib/commonjs/skia/types/Path/Path.js.map +1 -1
- package/lib/commonjs/skia/types/Shader/Shader.js +1 -7
- package/lib/commonjs/skia/types/Shader/Shader.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.js +1 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkFontMgr.js +0 -2
- package/lib/commonjs/skia/web/JsiSkFontMgr.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImage.js +10 -6
- package/lib/commonjs/skia/web/JsiSkImage.js.map +1 -1
- package/lib/commonjs/skia/web/{JsiImageFilterFactory.js → JsiSkImageFilterFactory.js} +1 -1
- package/lib/commonjs/skia/web/JsiSkImageFilterFactory.js.map +1 -0
- package/lib/commonjs/skia/web/JsiSkPaint.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPath.js +65 -52
- package/lib/commonjs/skia/web/JsiSkPath.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkShaderFactory.js +1 -1
- package/lib/commonjs/skia/web/JsiSkShaderFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkVerticesFactory.js +23 -1
- package/lib/commonjs/skia/web/JsiSkVerticesFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkia.js +2 -2
- package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
- package/lib/commonjs/views/SkiaView.web.js +4 -4
- package/lib/commonjs/views/SkiaView.web.js.map +1 -1
- package/lib/commonjs/web/index.js +4 -2
- package/lib/commonjs/web/index.js.map +1 -1
- package/lib/module/skia/types/Image/Image.js +5 -5
- package/lib/module/skia/types/Image/Image.js.map +1 -1
- package/lib/module/skia/types/Paint/Paint.js +3 -3
- package/lib/module/skia/types/Paint/Paint.js.map +1 -1
- package/lib/module/skia/types/Path/Path.js +0 -1
- package/lib/module/skia/types/Path/Path.js.map +1 -1
- package/lib/module/skia/types/Shader/Shader.js +1 -7
- package/lib/module/skia/types/Shader/Shader.js.map +1 -1
- package/lib/module/skia/web/JsiSkCanvas.js +1 -1
- package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/module/skia/web/JsiSkFontMgr.js +0 -2
- package/lib/module/skia/web/JsiSkFontMgr.js.map +1 -1
- package/lib/module/skia/web/JsiSkImage.js +10 -7
- package/lib/module/skia/web/JsiSkImage.js.map +1 -1
- package/lib/module/skia/web/{JsiImageFilterFactory.js → JsiSkImageFilterFactory.js} +1 -1
- package/lib/module/skia/web/JsiSkImageFilterFactory.js.map +1 -0
- package/lib/module/skia/web/JsiSkPaint.js.map +1 -1
- package/lib/module/skia/web/JsiSkPath.js +65 -52
- package/lib/module/skia/web/JsiSkPath.js.map +1 -1
- package/lib/module/skia/web/JsiSkShaderFactory.js +1 -1
- package/lib/module/skia/web/JsiSkShaderFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkVerticesFactory.js +24 -1
- package/lib/module/skia/web/JsiSkVerticesFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkia.js +1 -1
- package/lib/module/skia/web/JsiSkia.js.map +1 -1
- package/lib/module/views/SkiaView.web.js +4 -4
- package/lib/module/views/SkiaView.web.js.map +1 -1
- package/lib/module/web/index.js +3 -1
- package/lib/module/web/index.js.map +1 -1
- package/lib/typescript/src/skia/types/Image/Image.d.ts +5 -5
- package/lib/typescript/src/skia/types/Paint/Paint.d.ts +3 -3
- package/lib/typescript/src/skia/types/Path/Path.d.ts +1 -2
- package/lib/typescript/src/skia/types/RuntimeEffect/RuntimeEffect.d.ts +1 -0
- package/lib/typescript/src/skia/web/JsiSkImage.d.ts +3 -3
- package/lib/typescript/src/skia/web/{JsiImageFilterFactory.d.ts → JsiSkImageFilterFactory.d.ts} +0 -0
- package/lib/typescript/src/skia/web/JsiSkPaint.d.ts +1 -1
- package/package.json +1 -1
- package/src/skia/types/Image/Image.ts +4 -4
- package/src/skia/types/Paint/Paint.ts +1 -1
- package/src/skia/types/Path/Path.ts +0 -1
- package/src/skia/types/RuntimeEffect/RuntimeEffect.ts +1 -0
- package/src/skia/types/Shader/Shader.ts +3 -5
- package/src/skia/web/JsiSkCanvas.ts +2 -2
- package/src/skia/web/JsiSkFontMgr.ts +0 -4
- package/src/skia/web/JsiSkImage.ts +37 -16
- package/src/skia/web/{JsiImageFilterFactory.ts → JsiSkImageFilterFactory.ts} +0 -0
- package/src/skia/web/JsiSkPaint.ts +1 -1
- package/src/skia/web/JsiSkPath.ts +64 -47
- package/src/skia/web/JsiSkShaderFactory.ts +4 -1
- package/src/skia/web/JsiSkVerticesFactory.ts +15 -1
- package/src/skia/web/JsiSkia.ts +1 -1
- package/src/views/SkiaView.web.tsx +9 -11
- package/src/web/index.ts +3 -1
- package/lib/commonjs/skia/web/JsiImageFilterFactory.js.map +0 -1
- package/lib/module/skia/web/JsiImageFilterFactory.js.map +0 -1
|
@@ -13,6 +13,31 @@ var _JsiSkPoint = require("./JsiSkPoint");
|
|
|
13
13
|
|
|
14
14
|
var _JsiSkRect = require("./JsiSkRect");
|
|
15
15
|
|
|
16
|
+
const CommandCount = {
|
|
17
|
+
[_types.PathVerb.Move]: 3,
|
|
18
|
+
[_types.PathVerb.Line]: 3,
|
|
19
|
+
[_types.PathVerb.Quad]: 5,
|
|
20
|
+
[_types.PathVerb.Conic]: 6,
|
|
21
|
+
[_types.PathVerb.Cubic]: 7,
|
|
22
|
+
[_types.PathVerb.Close]: 1
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const areCmdsInterpolatable = (cmd1, cmd2) => {
|
|
26
|
+
if (cmd1.length !== cmd2.length) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
for (let i = 0; i < cmd1.length; i++) {
|
|
31
|
+
if (cmd1[i][0] !== cmd2[i][0]) {
|
|
32
|
+
return false;
|
|
33
|
+
} else if (cmd1[i][0] === _types.PathVerb.Conic && cmd1[i][5] !== cmd2[i][5]) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return true;
|
|
39
|
+
};
|
|
40
|
+
|
|
16
41
|
class JsiSkPath extends _Host.HostObject {
|
|
17
42
|
constructor(CanvasKit, ref) {
|
|
18
43
|
super(CanvasKit, ref, "Path");
|
|
@@ -235,26 +260,27 @@ class JsiSkPath extends _Host.HostObject {
|
|
|
235
260
|
const cmd1 = this.toCmds();
|
|
236
261
|
const cmd2 = end.toCmds();
|
|
237
262
|
|
|
238
|
-
if (cmd1
|
|
263
|
+
if (!areCmdsInterpolatable(cmd1, cmd2)) {
|
|
239
264
|
return null;
|
|
240
265
|
}
|
|
241
266
|
|
|
242
267
|
const interpolated = [];
|
|
268
|
+
cmd1.forEach((cmd, i) => {
|
|
269
|
+
const interpolatedCmd = [cmd[0]];
|
|
270
|
+
interpolated.push(interpolatedCmd);
|
|
271
|
+
cmd.forEach((c, j) => {
|
|
272
|
+
if (j === 0) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
243
275
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
cmd.push(cmd2[i][j] + (cmd1[i][j] - cmd2[i][j]) * t);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
interpolated.push(cmd);
|
|
256
|
-
}
|
|
257
|
-
|
|
276
|
+
if (interpolatedCmd[0] === _types.PathVerb.Conic && j === 5) {
|
|
277
|
+
interpolatedCmd.push(c);
|
|
278
|
+
} else {
|
|
279
|
+
const c2 = cmd2[i][j];
|
|
280
|
+
interpolatedCmd.push(c2 + (c - c2) * t);
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
});
|
|
258
284
|
const path = this.CanvasKit.Path.MakeFromCmds(interpolated.flat());
|
|
259
285
|
|
|
260
286
|
if (path === null) {
|
|
@@ -269,53 +295,40 @@ class JsiSkPath extends _Host.HostObject {
|
|
|
269
295
|
// throw new NotImplementedOnRNWeb();
|
|
270
296
|
const cmd1 = this.toCmds();
|
|
271
297
|
const cmd2 = path2.toCmds();
|
|
272
|
-
|
|
273
|
-
if (cmd1.length !== cmd2.length) {
|
|
274
|
-
return false;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
for (let i = 0; i < cmd1.length; i++) {
|
|
278
|
-
if (cmd1[i][0] !== cmd2[i][0]) {
|
|
279
|
-
return false;
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
return true;
|
|
298
|
+
return areCmdsInterpolatable(cmd1, cmd2);
|
|
284
299
|
}
|
|
285
300
|
|
|
286
301
|
toCmds() {
|
|
287
|
-
const cmds =
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
[_types.PathVerb.Move]: 3,
|
|
292
|
-
[_types.PathVerb.Line]: 3,
|
|
293
|
-
[_types.PathVerb.Quad]: 5,
|
|
294
|
-
[_types.PathVerb.Conic]: 6,
|
|
295
|
-
[_types.PathVerb.Cubic]: 7,
|
|
296
|
-
[_types.PathVerb.Close]: 0,
|
|
297
|
-
[_types.PathVerb.Done]: 0
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
for (let i = 0; i < flatCmds.length; i++) {
|
|
301
|
-
if (cmd.length === 0 && flatCmds[i] === _types.PathVerb.Done) {
|
|
302
|
-
break;
|
|
302
|
+
const cmds = this.ref.toCmds();
|
|
303
|
+
const result = cmds.reduce((acc, cmd, i) => {
|
|
304
|
+
if (i === 0) {
|
|
305
|
+
acc.push([]);
|
|
303
306
|
}
|
|
304
307
|
|
|
305
|
-
const
|
|
306
|
-
cmd.push(c);
|
|
308
|
+
const current = acc[acc.length - 1];
|
|
307
309
|
|
|
308
|
-
if (
|
|
309
|
-
|
|
310
|
+
if (current.length === 0) {
|
|
311
|
+
current.push(cmd);
|
|
312
|
+
const length = CommandCount[current[0]];
|
|
313
|
+
|
|
314
|
+
if (current.length === length && i !== cmds.length - 1) {
|
|
315
|
+
acc.push([]);
|
|
316
|
+
}
|
|
317
|
+
} else {
|
|
318
|
+
const length = CommandCount[current[0]];
|
|
310
319
|
|
|
311
|
-
if (
|
|
312
|
-
|
|
313
|
-
|
|
320
|
+
if (current.length < length) {
|
|
321
|
+
current.push(cmd);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
if (current.length === length && i !== cmds.length - 1) {
|
|
325
|
+
acc.push([]);
|
|
314
326
|
}
|
|
315
327
|
}
|
|
316
|
-
}
|
|
317
328
|
|
|
318
|
-
|
|
329
|
+
return acc;
|
|
330
|
+
}, []);
|
|
331
|
+
return result;
|
|
319
332
|
}
|
|
320
333
|
|
|
321
334
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["JsiSkPath.ts"],"names":["JsiSkPath","HostObject","constructor","CanvasKit","ref","addArc","oval","startAngleInDegrees","sweepAngleInDegrees","addOval","isCCW","startIndex","countPoints","addPoly","points","close","map","p","moveTo","x","y","lineTo","makeAsWinding","result","offset","dx","dy","rArcTo","rx","ry","xAxisRotateInDegrees","useSmallArc","rConicTo","dx1","dy1","dx2","dy2","w","rCubicTo","cpx1","cpy1","cpx2","cpy2","rMoveTo","rLineTo","rQuadTo","x1","y1","x2","y2","setFillType","fill","setIsVolatile","volatile","stroke","opts","undefined","width","miter_limit","precision","join","cap","reset","rewind","computeTightBounds","JsiSkRect","arcToOval","forceMoveTo","arcToRotated","arcToTangent","radius","conicTo","contains","copy","cubicTo","dash","on","off","phase","equals","other","getBounds","getFillType","value","quadTo","addRect","rect","addRRect","rrect","getPoint","index","JsiSkPoint","isEmpty","isVolatile","addCircle","r","LTRBRect","getLastPt","op","path","simplify","toSVGString","trim","startT","stopT","isComplement","transform","m3","interpolate","end","t","cmd1","toCmds","cmd2","length","interpolated","i","cmd","j","push","Path","MakeFromCmds","flat","isInterpolatable","path2","cmds","flatCmds","CmdCount","PathVerb","Move","Line","Quad","Conic","Cubic","Close","Done","c","concat"],"mappings":"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","sourcesContent":["import type { CanvasKit, Path } from \"canvaskit-wasm\";\n\nimport { PathVerb } from \"../types\";\nimport type {\n FillType,\n PathCommand,\n PathOp,\n SkMatrix,\n SkPath,\n SkPoint,\n SkRect,\n SkRRect,\n StrokeOpts,\n} from \"../types\";\n\nimport { ckEnum, HostObject, optEnum, toValue } from \"./Host\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\n\nexport class JsiSkPath extends HostObject<Path, \"Path\"> implements SkPath {\n constructor(CanvasKit: CanvasKit, ref: Path) {\n super(CanvasKit, ref, \"Path\");\n }\n\n addArc(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number\n ) {\n this.ref.addArc(toValue(oval), startAngleInDegrees, sweepAngleInDegrees);\n return this;\n }\n\n addOval(oval: SkRect, isCCW?: boolean, startIndex?: number) {\n this.ref.addOval(toValue(oval), isCCW, startIndex);\n return this;\n }\n\n countPoints() {\n return this.ref.countPoints();\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n this.ref.addPoly(\n points.map((p) => toValue(p)),\n close\n );\n return this;\n }\n\n moveTo(x: number, y: number) {\n this.ref.moveTo(x, y);\n return this;\n }\n\n lineTo(x: number, y: number) {\n this.ref.lineTo(x, y);\n return this;\n }\n\n makeAsWinding() {\n const result = this.ref.makeAsWinding();\n return result === null ? result : this;\n }\n\n offset(dx: number, dy: number) {\n this.ref.offset(dx, dy);\n return this;\n }\n\n rArcTo(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n dx: number,\n dy: number\n ) {\n this.ref.rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy);\n return this;\n }\n\n rConicTo(dx1: number, dy1: number, dx2: number, dy2: number, w: number) {\n this.ref.rConicTo(dx1, dy1, dx2, dy2, w);\n return this;\n }\n\n rCubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n this.ref.rCubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n rMoveTo(x: number, y: number) {\n this.ref.rMoveTo(x, y);\n return this;\n }\n\n rLineTo(x: number, y: number) {\n this.ref.rLineTo(x, y);\n return this;\n }\n\n rQuadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.rQuadTo(x1, y1, x2, y2);\n return this;\n }\n\n setFillType(fill: FillType) {\n this.ref.setFillType(ckEnum(fill));\n }\n\n setIsVolatile(volatile: boolean) {\n this.ref.setIsVolatile(volatile);\n }\n\n stroke(opts?: StrokeOpts) {\n const result = this.ref.stroke(\n opts === undefined\n ? undefined\n : {\n width: opts.width,\n // eslint-disable-next-line camelcase\n miter_limit: opts.width,\n precision: opts.width,\n join: optEnum(opts.join),\n cap: optEnum(opts.cap),\n }\n );\n return result === null ? result : this;\n }\n\n close() {\n this.ref.close();\n }\n\n reset() {\n this.ref.reset();\n }\n\n rewind() {\n this.ref.rewind();\n }\n\n computeTightBounds(): SkRect {\n return new JsiSkRect(this.CanvasKit, this.ref.computeTightBounds());\n }\n\n arcToOval(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number,\n forceMoveTo: boolean\n ) {\n this.ref.arcToOval(\n toValue(oval),\n startAngleInDegrees,\n sweepAngleInDegrees,\n forceMoveTo\n );\n return this;\n }\n\n arcToRotated(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n x: number,\n y: number\n ) {\n this.ref.arcToRotated(\n rx,\n ry,\n xAxisRotateInDegrees,\n useSmallArc,\n isCCW,\n x,\n y\n );\n return this;\n }\n\n arcToTangent(x1: number, y1: number, x2: number, y2: number, radius: number) {\n this.ref.arcToTangent(x1, y1, x2, y2, radius);\n return this;\n }\n\n conicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n this.ref.conicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n contains(x: number, y: number) {\n return this.ref.contains(x, y);\n }\n\n copy() {\n return new JsiSkPath(this.CanvasKit, this.ref.copy());\n }\n\n cubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n this.ref.cubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n dash(on: number, off: number, phase: number) {\n return this.ref.dash(on, off, phase);\n }\n\n equals(other: SkPath) {\n return this.ref.equals(toValue(other));\n }\n\n getBounds() {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n getFillType() {\n return this.ref.getFillType().value;\n }\n\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.quadTo(x1, y1, x2, y2);\n }\n\n addRect(rect: SkRect, isCCW?: boolean) {\n this.ref.addRect(toValue(rect), isCCW);\n }\n\n addRRect(rrect: SkRRect, isCCW?: boolean) {\n this.ref.addRRect(toValue(rrect), isCCW);\n return this;\n }\n\n getPoint(index: number) {\n return new JsiSkPoint(this.CanvasKit, this.ref.getPoint(index));\n }\n\n isEmpty() {\n return this.ref.isEmpty();\n }\n\n isVolatile() {\n return this.ref.isVolatile();\n }\n\n addCircle(x: number, y: number, r: number) {\n // We leave the comment below to remind us that this is not implemented in CanvasKit\n // throw new NotImplementedOnRNWeb();\n this.ref.addOval(this.CanvasKit.LTRBRect(x - r, y - r, x + r, y + r));\n return this;\n }\n\n getLastPt() {\n return new JsiSkPoint(\n this.CanvasKit,\n this.ref.getPoint(this.ref.countPoints() - 1)\n );\n }\n\n op(path: SkPath, op: PathOp) {\n return this.ref.op(toValue(path), ckEnum(op));\n }\n\n simplify() {\n return this.ref.simplify();\n }\n\n toSVGString() {\n return this.ref.toSVGString();\n }\n\n trim(startT: number, stopT: number, isComplement: boolean) {\n const result = this.ref.trim(startT, stopT, isComplement);\n return result === null ? result : this;\n }\n\n transform(m3: SkMatrix) {\n this.ref.transform(toValue(m3));\n }\n\n interpolate(end: SkPath, t: number) {\n // Do not remove the comment below. We use it to track missing APIs in CanvasKit\n // throw new NotImplementedOnRNWeb();\n const cmd1 = this.toCmds();\n const cmd2 = end.toCmds();\n if (cmd1.length !== cmd2.length) {\n return null;\n }\n const interpolated: PathCommand[] = [];\n for (let i = 0; i < cmd1.length; i++) {\n if (cmd1[i][0] !== cmd2[i][0]) {\n return null;\n }\n const cmd: PathCommand = [cmd1[i][0]];\n for (let j = 1; j < cmd1[i].length; j++) {\n cmd.push(cmd2[i][j] + (cmd1[i][j] - cmd2[i][j]) * t);\n }\n interpolated.push(cmd);\n }\n const path = this.CanvasKit.Path.MakeFromCmds(interpolated.flat());\n if (path === null) {\n return null;\n }\n return new JsiSkPath(this.CanvasKit, path);\n }\n\n isInterpolatable(path2: SkPath): boolean {\n // Do not remove the comment below. We use it to track missing APIs in CanvasKit\n // throw new NotImplementedOnRNWeb();\n const cmd1 = this.toCmds();\n const cmd2 = path2.toCmds();\n if (cmd1.length !== cmd2.length) {\n return false;\n }\n for (let i = 0; i < cmd1.length; i++) {\n if (cmd1[i][0] !== cmd2[i][0]) {\n return false;\n }\n }\n return true;\n }\n\n toCmds(): PathCommand[] {\n const cmds: PathCommand[] = [];\n let cmd = [];\n const flatCmds = this.ref.toCmds();\n const CmdCount = {\n [PathVerb.Move]: 3,\n [PathVerb.Line]: 3,\n [PathVerb.Quad]: 5,\n [PathVerb.Conic]: 6,\n [PathVerb.Cubic]: 7,\n [PathVerb.Close]: 0,\n [PathVerb.Done]: 0,\n };\n for (let i = 0; i < flatCmds.length; i++) {\n if (cmd.length === 0 && flatCmds[i] === PathVerb.Done) {\n break;\n }\n const c = flatCmds[i];\n cmd.push(c);\n if (cmd.length > 1) {\n const length = CmdCount[cmd[0] as PathVerb];\n if (cmd.length === length) {\n cmds.push(cmd);\n cmd = [];\n }\n }\n }\n return cmds.concat(cmd);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["JsiSkPath.ts"],"names":["CommandCount","PathVerb","Move","Line","Quad","Conic","Cubic","Close","areCmdsInterpolatable","cmd1","cmd2","length","i","JsiSkPath","HostObject","constructor","CanvasKit","ref","addArc","oval","startAngleInDegrees","sweepAngleInDegrees","addOval","isCCW","startIndex","countPoints","addPoly","points","close","map","p","moveTo","x","y","lineTo","makeAsWinding","result","offset","dx","dy","rArcTo","rx","ry","xAxisRotateInDegrees","useSmallArc","rConicTo","dx1","dy1","dx2","dy2","w","rCubicTo","cpx1","cpy1","cpx2","cpy2","rMoveTo","rLineTo","rQuadTo","x1","y1","x2","y2","setFillType","fill","setIsVolatile","volatile","stroke","opts","undefined","width","miter_limit","precision","join","cap","reset","rewind","computeTightBounds","JsiSkRect","arcToOval","forceMoveTo","arcToRotated","arcToTangent","radius","conicTo","contains","copy","cubicTo","dash","on","off","phase","equals","other","getBounds","getFillType","value","quadTo","addRect","rect","addRRect","rrect","getPoint","index","JsiSkPoint","isEmpty","isVolatile","addCircle","r","LTRBRect","getLastPt","op","path","simplify","toSVGString","trim","startT","stopT","isComplement","transform","m3","interpolate","end","t","toCmds","interpolated","forEach","cmd","interpolatedCmd","push","c","j","c2","Path","MakeFromCmds","flat","isInterpolatable","path2","cmds","reduce","acc","current"],"mappings":"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","sourcesContent":["import type { CanvasKit, Path } from \"canvaskit-wasm\";\n\nimport { PathVerb } from \"../types\";\nimport type {\n FillType,\n PathCommand,\n PathOp,\n SkMatrix,\n SkPath,\n SkPoint,\n SkRect,\n SkRRect,\n StrokeOpts,\n} from \"../types\";\n\nimport { ckEnum, HostObject, optEnum, toValue } from \"./Host\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\n\nconst CommandCount = {\n [PathVerb.Move]: 3,\n [PathVerb.Line]: 3,\n [PathVerb.Quad]: 5,\n [PathVerb.Conic]: 6,\n [PathVerb.Cubic]: 7,\n [PathVerb.Close]: 1,\n};\n\nconst areCmdsInterpolatable = (cmd1: PathCommand[], cmd2: PathCommand[]) => {\n if (cmd1.length !== cmd2.length) {\n return false;\n }\n for (let i = 0; i < cmd1.length; i++) {\n if (cmd1[i][0] !== cmd2[i][0]) {\n return false;\n } else if (cmd1[i][0] === PathVerb.Conic && cmd1[i][5] !== cmd2[i][5]) {\n return false;\n }\n }\n return true;\n};\n\nexport class JsiSkPath extends HostObject<Path, \"Path\"> implements SkPath {\n constructor(CanvasKit: CanvasKit, ref: Path) {\n super(CanvasKit, ref, \"Path\");\n }\n\n addArc(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number\n ) {\n this.ref.addArc(toValue(oval), startAngleInDegrees, sweepAngleInDegrees);\n return this;\n }\n\n addOval(oval: SkRect, isCCW?: boolean, startIndex?: number) {\n this.ref.addOval(toValue(oval), isCCW, startIndex);\n return this;\n }\n\n countPoints() {\n return this.ref.countPoints();\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n this.ref.addPoly(\n points.map((p) => toValue(p)),\n close\n );\n return this;\n }\n\n moveTo(x: number, y: number) {\n this.ref.moveTo(x, y);\n return this;\n }\n\n lineTo(x: number, y: number) {\n this.ref.lineTo(x, y);\n return this;\n }\n\n makeAsWinding() {\n const result = this.ref.makeAsWinding();\n return result === null ? result : this;\n }\n\n offset(dx: number, dy: number) {\n this.ref.offset(dx, dy);\n return this;\n }\n\n rArcTo(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n dx: number,\n dy: number\n ) {\n this.ref.rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy);\n return this;\n }\n\n rConicTo(dx1: number, dy1: number, dx2: number, dy2: number, w: number) {\n this.ref.rConicTo(dx1, dy1, dx2, dy2, w);\n return this;\n }\n\n rCubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n this.ref.rCubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n rMoveTo(x: number, y: number) {\n this.ref.rMoveTo(x, y);\n return this;\n }\n\n rLineTo(x: number, y: number) {\n this.ref.rLineTo(x, y);\n return this;\n }\n\n rQuadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.rQuadTo(x1, y1, x2, y2);\n return this;\n }\n\n setFillType(fill: FillType) {\n this.ref.setFillType(ckEnum(fill));\n }\n\n setIsVolatile(volatile: boolean) {\n this.ref.setIsVolatile(volatile);\n }\n\n stroke(opts?: StrokeOpts) {\n const result = this.ref.stroke(\n opts === undefined\n ? undefined\n : {\n width: opts.width,\n // eslint-disable-next-line camelcase\n miter_limit: opts.width,\n precision: opts.width,\n join: optEnum(opts.join),\n cap: optEnum(opts.cap),\n }\n );\n return result === null ? result : this;\n }\n\n close() {\n this.ref.close();\n }\n\n reset() {\n this.ref.reset();\n }\n\n rewind() {\n this.ref.rewind();\n }\n\n computeTightBounds(): SkRect {\n return new JsiSkRect(this.CanvasKit, this.ref.computeTightBounds());\n }\n\n arcToOval(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number,\n forceMoveTo: boolean\n ) {\n this.ref.arcToOval(\n toValue(oval),\n startAngleInDegrees,\n sweepAngleInDegrees,\n forceMoveTo\n );\n return this;\n }\n\n arcToRotated(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n x: number,\n y: number\n ) {\n this.ref.arcToRotated(\n rx,\n ry,\n xAxisRotateInDegrees,\n useSmallArc,\n isCCW,\n x,\n y\n );\n return this;\n }\n\n arcToTangent(x1: number, y1: number, x2: number, y2: number, radius: number) {\n this.ref.arcToTangent(x1, y1, x2, y2, radius);\n return this;\n }\n\n conicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n this.ref.conicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n contains(x: number, y: number) {\n return this.ref.contains(x, y);\n }\n\n copy() {\n return new JsiSkPath(this.CanvasKit, this.ref.copy());\n }\n\n cubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n this.ref.cubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n dash(on: number, off: number, phase: number) {\n return this.ref.dash(on, off, phase);\n }\n\n equals(other: SkPath) {\n return this.ref.equals(toValue(other));\n }\n\n getBounds() {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n getFillType() {\n return this.ref.getFillType().value;\n }\n\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.quadTo(x1, y1, x2, y2);\n }\n\n addRect(rect: SkRect, isCCW?: boolean) {\n this.ref.addRect(toValue(rect), isCCW);\n }\n\n addRRect(rrect: SkRRect, isCCW?: boolean) {\n this.ref.addRRect(toValue(rrect), isCCW);\n return this;\n }\n\n getPoint(index: number) {\n return new JsiSkPoint(this.CanvasKit, this.ref.getPoint(index));\n }\n\n isEmpty() {\n return this.ref.isEmpty();\n }\n\n isVolatile() {\n return this.ref.isVolatile();\n }\n\n addCircle(x: number, y: number, r: number) {\n // We leave the comment below to remind us that this is not implemented in CanvasKit\n // throw new NotImplementedOnRNWeb();\n this.ref.addOval(this.CanvasKit.LTRBRect(x - r, y - r, x + r, y + r));\n return this;\n }\n\n getLastPt() {\n return new JsiSkPoint(\n this.CanvasKit,\n this.ref.getPoint(this.ref.countPoints() - 1)\n );\n }\n\n op(path: SkPath, op: PathOp) {\n return this.ref.op(toValue(path), ckEnum(op));\n }\n\n simplify() {\n return this.ref.simplify();\n }\n\n toSVGString() {\n return this.ref.toSVGString();\n }\n\n trim(startT: number, stopT: number, isComplement: boolean) {\n const result = this.ref.trim(startT, stopT, isComplement);\n return result === null ? result : this;\n }\n\n transform(m3: SkMatrix) {\n this.ref.transform(toValue(m3));\n }\n\n interpolate(end: SkPath, t: number) {\n // Do not remove the comment below. We use it to track missing APIs in CanvasKit\n // throw new NotImplementedOnRNWeb();\n const cmd1 = this.toCmds();\n const cmd2 = end.toCmds();\n if (!areCmdsInterpolatable(cmd1, cmd2)) {\n return null;\n }\n const interpolated: PathCommand[] = [];\n cmd1.forEach((cmd, i) => {\n const interpolatedCmd = [cmd[0]];\n interpolated.push(interpolatedCmd);\n cmd.forEach((c, j) => {\n if (j === 0) {\n return;\n }\n if (interpolatedCmd[0] === PathVerb.Conic && j === 5) {\n interpolatedCmd.push(c);\n } else {\n const c2 = cmd2[i][j];\n interpolatedCmd.push(c2 + (c - c2) * t);\n }\n });\n });\n const path = this.CanvasKit.Path.MakeFromCmds(interpolated.flat());\n if (path === null) {\n return null;\n }\n return new JsiSkPath(this.CanvasKit, path);\n }\n\n isInterpolatable(path2: SkPath): boolean {\n // Do not remove the comment below. We use it to track missing APIs in CanvasKit\n // throw new NotImplementedOnRNWeb();\n const cmd1 = this.toCmds();\n const cmd2 = path2.toCmds();\n return areCmdsInterpolatable(cmd1, cmd2);\n }\n\n toCmds() {\n const cmds = this.ref.toCmds();\n const result = cmds.reduce<PathCommand[]>((acc, cmd, i) => {\n if (i === 0) {\n acc.push([]);\n }\n const current = acc[acc.length - 1];\n if (current.length === 0) {\n current.push(cmd);\n const length = CommandCount[current[0] as PathVerb];\n if (current.length === length && i !== cmds.length - 1) {\n acc.push([]);\n }\n } else {\n const length = CommandCount[current[0] as PathVerb];\n if (current.length < length) {\n current.push(cmd);\n }\n if (current.length === length && i !== cmds.length - 1) {\n acc.push([]);\n }\n }\n return acc;\n }, []);\n return result;\n }\n}\n"]}
|
|
@@ -43,7 +43,7 @@ class JsiSkShaderFactory extends _Host.Host {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
MakeColor(color) {
|
|
46
|
-
return new _JsiSkShader.JsiSkShader(this.CanvasKit, this.CanvasKit.Shader.MakeColor((0, _Host.toValue)(color)));
|
|
46
|
+
return new _JsiSkShader.JsiSkShader(this.CanvasKit, this.CanvasKit.Shader.MakeColor((0, _Host.toValue)(color), this.CanvasKit.ColorSpace.SRGB));
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["JsiSkShaderFactory.ts"],"names":["JsiSkShaderFactory","Host","constructor","CanvasKit","MakeLinearGradient","start","end","colors","pos","mode","localMatrix","flags","JsiSkShader","Shader","undefined","MakeRadialGradient","center","radius","MakeTwoPointConicalGradient","startRadius","endRadius","MakeSweepGradient","cx","cy","startAngleInDegrees","endAngleInDegrees","MakeTurbulence","baseFreqX","baseFreqY","octaves","seed","tileW","tileH","MakeFractalNoise","MakeBlend","one","two","MakeColor","color"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["JsiSkShaderFactory.ts"],"names":["JsiSkShaderFactory","Host","constructor","CanvasKit","MakeLinearGradient","start","end","colors","pos","mode","localMatrix","flags","JsiSkShader","Shader","undefined","MakeRadialGradient","center","radius","MakeTwoPointConicalGradient","startRadius","endRadius","MakeSweepGradient","cx","cy","startAngleInDegrees","endAngleInDegrees","MakeTurbulence","baseFreqX","baseFreqY","octaves","seed","tileW","tileH","MakeFractalNoise","MakeBlend","one","two","MakeColor","color","ColorSpace","SRGB"],"mappings":"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","sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type {\n BlendMode,\n SkColor,\n SkMatrix,\n SkPoint,\n SkShader,\n TileMode,\n} from \"../types\";\nimport type { ShaderFactory } from \"../types/Shader/ShaderFactory\";\n\nimport { Host, toValue, ckEnum } from \"./Host\";\nimport { JsiSkShader } from \"./JsiSkShader\";\n\nexport class JsiSkShaderFactory extends Host implements ShaderFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n MakeLinearGradient(\n start: SkPoint,\n end: SkPoint,\n colors: SkColor[],\n pos: number[] | null,\n mode: TileMode,\n localMatrix?: SkMatrix,\n flags?: number\n ) {\n return new JsiSkShader(\n this.CanvasKit,\n this.CanvasKit.Shader.MakeLinearGradient(\n toValue(start),\n toValue(end),\n colors,\n pos,\n ckEnum(mode),\n localMatrix === undefined ? undefined : toValue(localMatrix),\n flags\n )\n );\n }\n\n MakeRadialGradient(\n center: SkPoint,\n radius: number,\n colors: SkColor[],\n pos: number[] | null,\n mode: TileMode,\n localMatrix?: SkMatrix,\n flags?: number\n ) {\n return new JsiSkShader(\n this.CanvasKit,\n this.CanvasKit.Shader.MakeRadialGradient(\n toValue(center),\n radius,\n colors,\n pos,\n ckEnum(mode),\n localMatrix === undefined ? undefined : toValue(localMatrix),\n flags\n )\n );\n }\n\n MakeTwoPointConicalGradient(\n start: SkPoint,\n startRadius: number,\n end: SkPoint,\n endRadius: number,\n colors: SkColor[],\n pos: number[] | null,\n mode: TileMode,\n localMatrix?: SkMatrix,\n flags?: number\n ) {\n return new JsiSkShader(\n this.CanvasKit,\n this.CanvasKit.Shader.MakeTwoPointConicalGradient(\n toValue(start),\n startRadius,\n toValue(end),\n endRadius,\n colors,\n pos,\n ckEnum(mode),\n localMatrix === undefined ? undefined : toValue(localMatrix),\n flags\n )\n );\n }\n\n MakeSweepGradient(\n cx: number,\n cy: number,\n colors: SkColor[],\n pos: number[] | null,\n mode: TileMode,\n localMatrix?: SkMatrix | null,\n flags?: number,\n startAngleInDegrees?: number,\n endAngleInDegrees?: number\n ) {\n return new JsiSkShader(\n this.CanvasKit,\n this.CanvasKit.Shader.MakeSweepGradient(\n cx,\n cy,\n colors,\n pos,\n ckEnum(mode),\n localMatrix === undefined || localMatrix === null\n ? undefined\n : toValue(localMatrix),\n flags,\n startAngleInDegrees,\n endAngleInDegrees\n )\n );\n }\n\n MakeTurbulence(\n baseFreqX: number,\n baseFreqY: number,\n octaves: number,\n seed: number,\n tileW: number,\n tileH: number\n ) {\n return new JsiSkShader(\n this.CanvasKit,\n this.CanvasKit.Shader.MakeTurbulence(\n baseFreqX,\n baseFreqY,\n octaves,\n seed,\n tileW,\n tileH\n )\n );\n }\n\n MakeFractalNoise(\n baseFreqX: number,\n baseFreqY: number,\n octaves: number,\n seed: number,\n tileW: number,\n tileH: number\n ) {\n return new JsiSkShader(\n this.CanvasKit,\n this.CanvasKit.Shader.MakeFractalNoise(\n baseFreqX,\n baseFreqY,\n octaves,\n seed,\n tileW,\n tileH\n )\n );\n }\n\n MakeBlend(mode: BlendMode, one: SkShader, two: SkShader) {\n return new JsiSkShader(\n this.CanvasKit,\n this.CanvasKit.Shader.MakeBlend(ckEnum(mode), toValue(one), toValue(two))\n );\n }\n\n MakeColor(color: SkColor) {\n return new JsiSkShader(\n this.CanvasKit,\n this.CanvasKit.Shader.MakeColor(\n toValue(color),\n this.CanvasKit.ColorSpace.SRGB\n )\n );\n }\n}\n"]}
|
|
@@ -9,6 +9,28 @@ var _Host = require("./Host");
|
|
|
9
9
|
|
|
10
10
|
var _JsiSkVertices = require("./JsiSkVertices");
|
|
11
11
|
|
|
12
|
+
const concat = function () {
|
|
13
|
+
let totalLength = 0;
|
|
14
|
+
|
|
15
|
+
for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
16
|
+
arrays[_key] = arguments[_key];
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
for (const arr of arrays) {
|
|
20
|
+
totalLength += arr.length;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const result = new Float32Array(totalLength);
|
|
24
|
+
let offset = 0;
|
|
25
|
+
|
|
26
|
+
for (const arr of arrays) {
|
|
27
|
+
result.set(arr, offset);
|
|
28
|
+
offset += arr.length;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
33
|
+
|
|
12
34
|
const MakeVertices = (CanvasKit, mode, positions, textureCoordinates, colors, indices, isVolatile) => new _JsiSkVertices.JsiSkVertices(CanvasKit, CanvasKit.MakeVertices((0, _Host.ckEnum)(mode), positions.map(_ref => {
|
|
13
35
|
let {
|
|
14
36
|
x,
|
|
@@ -21,7 +43,7 @@ const MakeVertices = (CanvasKit, mode, positions, textureCoordinates, colors, in
|
|
|
21
43
|
y
|
|
22
44
|
} = _ref2;
|
|
23
45
|
return [x, y];
|
|
24
|
-
}).flat(), colors, indices, isVolatile));
|
|
46
|
+
}).flat(), !colors ? null : colors.reduce((a, c) => concat(a, c)), indices, isVolatile));
|
|
25
47
|
|
|
26
48
|
exports.MakeVertices = MakeVertices;
|
|
27
49
|
//# sourceMappingURL=JsiSkVerticesFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["JsiSkVerticesFactory.ts"],"names":["MakeVertices","CanvasKit","mode","positions","textureCoordinates","colors","indices","isVolatile","JsiSkVertices","map","x","y","flat"],"mappings":";;;;;;;AAIA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["JsiSkVerticesFactory.ts"],"names":["concat","totalLength","arrays","arr","length","result","Float32Array","offset","set","MakeVertices","CanvasKit","mode","positions","textureCoordinates","colors","indices","isVolatile","JsiSkVertices","map","x","y","flat","reduce","a","c"],"mappings":";;;;;;;AAIA;;AACA;;AAEA,MAAMA,MAAM,GAAG,YAA+B;AAC5C,MAAIC,WAAW,GAAG,CAAlB;;AAD4C,oCAA3BC,MAA2B;AAA3BA,IAAAA,MAA2B;AAAA;;AAE5C,OAAK,MAAMC,GAAX,IAAkBD,MAAlB,EAA0B;AACxBD,IAAAA,WAAW,IAAIE,GAAG,CAACC,MAAnB;AACD;;AACD,QAAMC,MAAM,GAAG,IAAIC,YAAJ,CAAiBL,WAAjB,CAAf;AACA,MAAIM,MAAM,GAAG,CAAb;;AACA,OAAK,MAAMJ,GAAX,IAAkBD,MAAlB,EAA0B;AACxBG,IAAAA,MAAM,CAACG,GAAP,CAAWL,GAAX,EAAgBI,MAAhB;AACAA,IAAAA,MAAM,IAAIJ,GAAG,CAACC,MAAd;AACD;;AACD,SAAOC,MAAP;AACD,CAZD;;AAcO,MAAMI,YAAY,GAAG,CAC1BC,SAD0B,EAE1BC,IAF0B,EAG1BC,SAH0B,EAI1BC,kBAJ0B,EAK1BC,MAL0B,EAM1BC,OAN0B,EAO1BC,UAP0B,KAS1B,IAAIC,4BAAJ,CACEP,SADF,EAEEA,SAAS,CAACD,YAAV,CACE,kBAAOE,IAAP,CADF,EAEEC,SAAS,CAACM,GAAV,CAAc;AAAA,MAAC;AAAEC,IAAAA,CAAF;AAAKC,IAAAA;AAAL,GAAD;AAAA,SAAc,CAACD,CAAD,EAAIC,CAAJ,CAAd;AAAA,CAAd,EAAoCC,IAApC,EAFF,EAGE,CAACR,kBAAkB,IAAI,EAAvB,EAA2BK,GAA3B,CAA+B;AAAA,MAAC;AAAEC,IAAAA,CAAF;AAAKC,IAAAA;AAAL,GAAD;AAAA,SAAc,CAACD,CAAD,EAAIC,CAAJ,CAAd;AAAA,CAA/B,EAAqDC,IAArD,EAHF,EAIE,CAACP,MAAD,GAAU,IAAV,GAAiBA,MAAM,CAACQ,MAAP,CAAc,CAACC,CAAD,EAAIC,CAAJ,KAAUxB,MAAM,CAACuB,CAAD,EAAIC,CAAJ,CAA9B,CAJnB,EAKET,OALF,EAMEC,UANF,CAFF,CATK","sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type { SkColor, SkPoint, VertexMode } from \"../types\";\n\nimport { ckEnum } from \"./Host\";\nimport { JsiSkVertices } from \"./JsiSkVertices\";\n\nconst concat = (...arrays: Float32Array[]) => {\n let totalLength = 0;\n for (const arr of arrays) {\n totalLength += arr.length;\n }\n const result = new Float32Array(totalLength);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n};\n\nexport const MakeVertices = (\n CanvasKit: CanvasKit,\n mode: VertexMode,\n positions: SkPoint[],\n textureCoordinates?: SkPoint[] | null,\n colors?: SkColor[],\n indices?: number[] | null,\n isVolatile?: boolean\n) =>\n new JsiSkVertices(\n CanvasKit,\n CanvasKit.MakeVertices(\n ckEnum(mode),\n positions.map(({ x, y }) => [x, y]).flat(),\n (textureCoordinates || []).map(({ x, y }) => [x, y]).flat(),\n !colors ? null : colors.reduce((a, c) => concat(a, c)),\n indices,\n isVolatile\n )\n );\n"]}
|
|
@@ -39,7 +39,7 @@ var _JsiSkMaskFilterFactory = require("./JsiSkMaskFilterFactory");
|
|
|
39
39
|
|
|
40
40
|
var _JsiSkRuntimeEffectFactory = require("./JsiSkRuntimeEffectFactory");
|
|
41
41
|
|
|
42
|
-
var
|
|
42
|
+
var _JsiSkImageFilterFactory = require("./JsiSkImageFilterFactory");
|
|
43
43
|
|
|
44
44
|
var _JsiSkShaderFactory = require("./JsiSkShaderFactory");
|
|
45
45
|
|
|
@@ -78,7 +78,7 @@ const JsiSkApi = CanvasKit => ({
|
|
|
78
78
|
Typeface: new _JsiSkTypefaceFactory.JsiSkTypefaceFactory(CanvasKit),
|
|
79
79
|
MaskFilter: new _JsiSkMaskFilterFactory.JsiSkMaskFilterFactory(CanvasKit),
|
|
80
80
|
RuntimeEffect: new _JsiSkRuntimeEffectFactory.JsiSkRuntimeEffectFactory(CanvasKit),
|
|
81
|
-
ImageFilter: new
|
|
81
|
+
ImageFilter: new _JsiSkImageFilterFactory.JsiSkImageFilterFactory(CanvasKit),
|
|
82
82
|
Shader: new _JsiSkShaderFactory.JsiSkShaderFactory(CanvasKit),
|
|
83
83
|
PathEffect: new _JsiSkPathEffectFactory.JsiSkPathEffectFactory(CanvasKit),
|
|
84
84
|
MakeVertices: _JsiSkVerticesFactory.MakeVertices.bind(null, CanvasKit),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["JsiSkia.ts"],"names":["JsiSkApi","CanvasKit","Point","x","y","JsiSkPoint","Float32Array","of","RuntimeShaderBuilder","_","Error","RRectXY","rect","rx","ry","JsiSkRRect","RSXform","scos","ssin","tx","ty","JsiSkRSXform","Color","ContourMeasureIter","path","forceClosed","resScale","JsiSkContourMeasureIter","Paint","JsiSkPaint","PictureRecorder","JsiSkPictureRecorder","Picture","JsiSkPictureFactory","Path","JsiSkPathFactory","Matrix","matrix","JsiSkMatrix","identity","ColorFilter","JsiSkColorFilterFactory","Font","typeface","size","JsiSkFont","undefined","Typeface","JsiSkTypefaceFactory","MaskFilter","JsiSkMaskFilterFactory","RuntimeEffect","JsiSkRuntimeEffectFactory","ImageFilter","JsiSkImageFilterFactory","Shader","JsiSkShaderFactory","PathEffect","JsiSkPathEffectFactory","MakeVertices","bind","Data","JsiSkDataFactory","Image","JsiSkImageFactory","SVG","JsiSkSVGFactory","TextBlob","JsiSkTextBlobFactory","FontMgr","JsiSkFontMgrFactory","XYWHRect","width","height","JsiSkRect","Surface","JsiSkSurfaceFactory"],"mappings":";;;;;;;AAYA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEO,MAAMA,QAAQ,GAAIC,SAAD,KAAiC;AACvDC,EAAAA,KAAK,EAAE,CAACC,CAAD,EAAYC,CAAZ,KACL,IAAIC,sBAAJ,CAAeJ,SAAf,EAA0BK,YAAY,CAACC,EAAb,CAAgBJ,CAAhB,EAAmBC,CAAnB,CAA1B,CAFqD;AAGvDI,EAAAA,oBAAoB,EAAGC,CAAD,IAAgD;AACpE,UAAM,IAAIC,KAAJ,CAAU,qCAAV,CAAN;AACD,GALsD;AAMvDC,EAAAA,OAAO,EAAE,CAACC,IAAD,EAAeC,EAAf,EAA2BC,EAA3B,KACP,IAAIC,sBAAJ,CAAed,SAAf,EAA0BA,SAAS,CAACU,OAAV,CAAkB,mBAAQC,IAAR,CAAlB,EAAiCC,EAAjC,EAAqCC,EAArC,CAA1B,CAPqD;AAQvDE,EAAAA,OAAO,EAAE,CAACC,IAAD,EAAeC,IAAf,EAA6BC,EAA7B,EAAyCC,EAAzC,KACP,IAAIC,0BAAJ,CAAiBpB,SAAjB,EAA4BK,YAAY,CAACC,EAAb,CAAgBU,IAAhB,EAAsBC,IAAtB,EAA4BC,EAA5B,EAAgCC,EAAhC,CAA5B,CATqD;AAUvDE,EAAAA,KAAK,EAALA,iBAVuD;AAWvDC,EAAAA,kBAAkB,EAAE,CAClBC,IADkB,EAElBC,WAFkB,EAGlBC,QAHkB,KAKlB,IAAIC,gDAAJ,CACE1B,SADF,EAEE,IAAIA,SAAS,CAACsB,kBAAd,CAAiC,mBAAQC,IAAR,CAAjC,EAAgDC,WAAhD,EAA6DC,QAA7D,CAFF,CAhBqD;AAoBvDE,EAAAA,KAAK,EAAE,MAAM,IAAIC,sBAAJ,CAAe5B,SAAf,EAA0B,IAAIA,SAAS,CAAC2B,KAAd,EAA1B,CApB0C;AAqBvDE,EAAAA,eAAe,EAAE,MACf,IAAIC,0CAAJ,CAAyB9B,SAAzB,EAAoC,IAAIA,SAAS,CAAC6B,eAAd,EAApC,CAtBqD;AAuBvDE,EAAAA,OAAO,EAAE,IAAIC,wCAAJ,CAAwBhC,SAAxB,CAvB8C;AAwBvDiC,EAAAA,IAAI,EAAE,IAAIC,kCAAJ,CAAqBlC,SAArB,CAxBiD;AAyBvDmC,EAAAA,MAAM,EAAGC,MAAD,IACN,IAAIC,wBAAJ,CACErC,SADF,EAEEoC,MAAM,GACF/B,YAAY,CAACC,EAAb,CAAgB,GAAG8B,MAAnB,CADE,GAEF/B,YAAY,CAACC,EAAb,CAAgB,GAAGN,SAAS,CAACmC,MAAV,CAAiBG,QAAjB,EAAnB,CAJN,CA1BqD;AAgCvDC,EAAAA,WAAW,EAAE,IAAIC,gDAAJ,CAA4BxC,SAA5B,CAhC0C;AAiCvDyC,EAAAA,IAAI,EAAE,CAACC,QAAD,EAAwBC,IAAxB,KACJ,IAAIC,oBAAJ,CACE5C,SADF,EAEE,IAAIA,SAAS,CAACyC,IAAd,CACEC,QAAQ,KAAKG,SAAb,GAAyB,IAAzB,GAAgC,mBAAQH,QAAR,CADlC,EAEEC,IAFF,CAFF,CAlCqD;AAyCvDG,EAAAA,QAAQ,EAAE,IAAIC,0CAAJ,CAAyB/C,SAAzB,CAzC6C;AA0CvDgD,EAAAA,UAAU,EAAE,IAAIC,8CAAJ,CAA2BjD,SAA3B,CA1C2C;AA2CvDkD,EAAAA,aAAa,EAAE,IAAIC,oDAAJ,CAA8BnD,SAA9B,CA3CwC;AA4CvDoD,EAAAA,WAAW,EAAE,IAAIC,
|
|
1
|
+
{"version":3,"sources":["JsiSkia.ts"],"names":["JsiSkApi","CanvasKit","Point","x","y","JsiSkPoint","Float32Array","of","RuntimeShaderBuilder","_","Error","RRectXY","rect","rx","ry","JsiSkRRect","RSXform","scos","ssin","tx","ty","JsiSkRSXform","Color","ContourMeasureIter","path","forceClosed","resScale","JsiSkContourMeasureIter","Paint","JsiSkPaint","PictureRecorder","JsiSkPictureRecorder","Picture","JsiSkPictureFactory","Path","JsiSkPathFactory","Matrix","matrix","JsiSkMatrix","identity","ColorFilter","JsiSkColorFilterFactory","Font","typeface","size","JsiSkFont","undefined","Typeface","JsiSkTypefaceFactory","MaskFilter","JsiSkMaskFilterFactory","RuntimeEffect","JsiSkRuntimeEffectFactory","ImageFilter","JsiSkImageFilterFactory","Shader","JsiSkShaderFactory","PathEffect","JsiSkPathEffectFactory","MakeVertices","bind","Data","JsiSkDataFactory","Image","JsiSkImageFactory","SVG","JsiSkSVGFactory","TextBlob","JsiSkTextBlobFactory","FontMgr","JsiSkFontMgrFactory","XYWHRect","width","height","JsiSkRect","Surface","JsiSkSurfaceFactory"],"mappings":"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","sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type {\n SkContourMeasureIter,\n Skia,\n SkPath,\n SkRect,\n SkRuntimeEffect,\n SkRuntimeShaderBuilder,\n SkTypeface,\n} from \"../types\";\n\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { Color } from \"./JsiSkColor\";\nimport { JsiSkSurfaceFactory } from \"./JsiSkSurfaceFactory\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport { toValue } from \"./Host\";\nimport { JsiSkContourMeasureIter } from \"./JsiSkContourMeasureIter\";\nimport { JsiSkPictureRecorder } from \"./JsiSkPictureRecorder\";\nimport { JsiSkPictureFactory } from \"./JsiSkPictureFactory\";\nimport { JsiSkPathFactory } from \"./JsiSkPathFactory\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkColorFilterFactory } from \"./JsiSkColorFilterFactory\";\nimport { JsiSkTypefaceFactory } from \"./JsiSkTypefaceFactory\";\nimport { JsiSkMaskFilterFactory } from \"./JsiSkMaskFilterFactory\";\nimport { JsiSkRuntimeEffectFactory } from \"./JsiSkRuntimeEffectFactory\";\nimport { JsiSkImageFilterFactory } from \"./JsiSkImageFilterFactory\";\nimport { JsiSkShaderFactory } from \"./JsiSkShaderFactory\";\nimport { JsiSkPathEffectFactory } from \"./JsiSkPathEffectFactory\";\nimport { JsiSkDataFactory } from \"./JsiSkDataFactory\";\nimport { JsiSkImageFactory } from \"./JsiSkImageFactory\";\nimport { JsiSkSVGFactory } from \"./JsiSkSVGFactory\";\nimport { JsiSkTextBlobFactory } from \"./JsiSkTextBlobFactory\";\nimport { JsiSkFontMgrFactory } from \"./JsiSkFontMgrFactory\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { MakeVertices } from \"./JsiSkVerticesFactory\";\n\nexport const JsiSkApi = (CanvasKit: CanvasKit): Skia => ({\n Point: (x: number, y: number) =>\n new JsiSkPoint(CanvasKit, Float32Array.of(x, y)),\n RuntimeShaderBuilder: (_: SkRuntimeEffect): SkRuntimeShaderBuilder => {\n throw new Error(\"Not implemented on React Native Web\");\n },\n RRectXY: (rect: SkRect, rx: number, ry: number) =>\n new JsiSkRRect(CanvasKit, CanvasKit.RRectXY(toValue(rect), rx, ry)),\n RSXform: (scos: number, ssin: number, tx: number, ty: number) =>\n new JsiSkRSXform(CanvasKit, Float32Array.of(scos, ssin, tx, ty)),\n Color,\n ContourMeasureIter: (\n path: SkPath,\n forceClosed: boolean,\n resScale: number\n ): SkContourMeasureIter =>\n new JsiSkContourMeasureIter(\n CanvasKit,\n new CanvasKit.ContourMeasureIter(toValue(path), forceClosed, resScale)\n ),\n Paint: () => new JsiSkPaint(CanvasKit, new CanvasKit.Paint()),\n PictureRecorder: () =>\n new JsiSkPictureRecorder(CanvasKit, new CanvasKit.PictureRecorder()),\n Picture: new JsiSkPictureFactory(CanvasKit),\n Path: new JsiSkPathFactory(CanvasKit),\n Matrix: (matrix?: number[]) =>\n new JsiSkMatrix(\n CanvasKit,\n matrix\n ? Float32Array.of(...matrix)\n : Float32Array.of(...CanvasKit.Matrix.identity())\n ),\n ColorFilter: new JsiSkColorFilterFactory(CanvasKit),\n Font: (typeface?: SkTypeface, size?: number) =>\n new JsiSkFont(\n CanvasKit,\n new CanvasKit.Font(\n typeface === undefined ? null : toValue(typeface),\n size\n )\n ),\n Typeface: new JsiSkTypefaceFactory(CanvasKit),\n MaskFilter: new JsiSkMaskFilterFactory(CanvasKit),\n RuntimeEffect: new JsiSkRuntimeEffectFactory(CanvasKit),\n ImageFilter: new JsiSkImageFilterFactory(CanvasKit),\n Shader: new JsiSkShaderFactory(CanvasKit),\n PathEffect: new JsiSkPathEffectFactory(CanvasKit),\n MakeVertices: MakeVertices.bind(null, CanvasKit),\n Data: new JsiSkDataFactory(CanvasKit),\n Image: new JsiSkImageFactory(CanvasKit),\n SVG: new JsiSkSVGFactory(CanvasKit),\n TextBlob: new JsiSkTextBlobFactory(CanvasKit),\n FontMgr: new JsiSkFontMgrFactory(CanvasKit),\n XYWHRect: (x: number, y: number, width: number, height: number) => {\n return new JsiSkRect(CanvasKit, CanvasKit.XYWHRect(x, y, width, height));\n },\n Surface: new JsiSkSurfaceFactory(CanvasKit),\n});\n"]}
|
|
@@ -199,15 +199,15 @@ class SkiaView extends _react.default.Component {
|
|
|
199
199
|
} = this.props;
|
|
200
200
|
return /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({}, viewProps, {
|
|
201
201
|
onLayout: this.onLayout.bind(this)
|
|
202
|
-
}),
|
|
202
|
+
}), /*#__PURE__*/_react.default.createElement("canvas", {
|
|
203
203
|
ref: this._canvasRef,
|
|
204
|
-
width:
|
|
205
|
-
height:
|
|
204
|
+
width: this.state.width,
|
|
205
|
+
height: this.state.height,
|
|
206
206
|
onPointerDown: this.handleTouchStart.bind(this),
|
|
207
207
|
onPointerMove: this.handleTouchMove.bind(this),
|
|
208
208
|
onPointerUp: this.handleTouchEnd.bind(this),
|
|
209
209
|
onPointerCancel: this.handleTouchCancel.bind(this)
|
|
210
|
-
})
|
|
210
|
+
}));
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SkiaView.web.tsx"],"names":["SkiaView","React","Component","constructor","props","createRef","state","width","height","_mode","mode","unsubscribeAll","_unsubscriptions","forEach","u","onLayout","evt","setState","nativeEvent","layout","_canvasRef","current","_surface","JsiSkSurface","global","CanvasKit","MakeCanvasSurface","_canvas","getCanvas","requestRedraw","redraw","componentDidMount","componentWillUnmount","_unmounted","makeImageSnapshot","rect","_redrawRequests","onDraw","touches","_touches","info","timestamp","Date","now","ref","flush","requestAnimationFrame","bind","setDrawMode","registerValues","_values","v","push","addListener","handleTouchEvent","touchType","id","pointerId","x","clientX","currentTarget","getClientRects","left","y","clientY","top","force","pressure","type","handleTouchStart","TouchType","Start","handleTouchMove","Active","handleTouchEnd","Cancelled","handleTouchCancel","End","render","debug","viewProps"],"mappings":"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","sourcesContent":["/* global HTMLCanvasElement */\nimport React from \"react\";\nimport type { PointerEvent } from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\nimport { View } from \"react-native\";\n\nimport type { SkRect, SkCanvas } from \"../skia/types\";\nimport type { SkiaValue } from \"../values\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\n\nimport type { DrawingInfo, DrawMode, SkiaViewProps, TouchInfo } from \"./types\";\nimport { TouchType } from \"./types\";\n\nexport class SkiaView extends React.Component<\n SkiaViewProps,\n { width: number; height: number }\n> {\n constructor(props: SkiaViewProps) {\n super(props);\n this.state = { width: -1, height: -1 };\n this._mode = props.mode ?? \"default\";\n }\n\n private _surface: JsiSkSurface | null = null;\n private _unsubscriptions: Array<() => void> = [];\n private _touches: Array<TouchInfo> = [];\n private _canvas: SkCanvas | null = null;\n private _canvasRef: React.RefObject<HTMLCanvasElement> = React.createRef();\n private _mode: DrawMode;\n private _redrawRequests = 0;\n private _unmounted = false;\n\n private unsubscribeAll() {\n this._unsubscriptions.forEach((u) => u());\n this._unsubscriptions = [];\n }\n\n private onLayout(evt: LayoutChangeEvent) {\n this.setState({\n width: evt.nativeEvent.layout.width,\n height: evt.nativeEvent.layout.height,\n });\n // Reset canvas / surface on layout change\n if (this._canvasRef.current) {\n // Create surface\n this._surface = new JsiSkSurface(\n global.CanvasKit,\n global.CanvasKit.MakeCanvasSurface(this._canvasRef.current)!\n );\n // Get canvas and repaint\n if (this._surface) {\n this._canvas = this._surface.getCanvas();\n this.requestRedraw();\n this.redraw();\n }\n }\n }\n\n componentDidMount() {\n // Start render loop\n this.redraw();\n }\n\n componentWillUnmount() {\n this.unsubscribeAll();\n this._surface = null;\n this._canvas = null;\n this._unmounted = true;\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n return this._surface?.makeImageSnapshot(rect);\n }\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n private redraw() {\n if (this._mode === \"continuous\" || this._redrawRequests > 0) {\n this._redrawRequests = 0;\n if (\n this._canvas &&\n this.props.onDraw &&\n this.state.height !== -1 &&\n this.state.width !== -1\n ) {\n const touches = [...this._touches];\n this._touches = [];\n const info: DrawingInfo = {\n height: this.state.height,\n width: this.state.width,\n timestamp: Date.now(),\n touches: [touches],\n };\n this.props.onDraw && this.props.onDraw(this._canvas!, info);\n this._surface?.ref.flush();\n }\n }\n // Always request a new redraw as long as we're not unmounted\n if (!this._unmounted) {\n requestAnimationFrame(this.redraw.bind(this));\n }\n }\n\n public requestRedraw() {\n this._redrawRequests++;\n }\n\n /**\n * Updates the drawing mode for the skia view. This is the same\n * as declaratively setting the mode property on the SkiaView.\n * There are two drawing modes, \"continuous\" and \"default\",\n * where the continuous mode will continuously redraw the view and\n * the default mode will only redraw when any of the regular react\n * properties are changed like size and margins.\n * @param mode Drawing mode to use.\n */\n public setDrawMode(mode: DrawMode) {\n this._mode = mode;\n this.redraw();\n }\n\n /**\n * Registers one or move values as a dependant value of the Skia View. The view will\n * The view will redraw itself when any of the values change.\n * @param values Values to register\n */\n public registerValues(_values: SkiaValue<unknown>[]) {\n // Unsubscribe from dependency values\n this.unsubscribeAll();\n // Register redraw dependencies on values\n _values.forEach((v) => {\n this._unsubscriptions.push(\n v.addListener(() => {\n this.requestRedraw();\n })\n );\n });\n }\n\n private handleTouchEvent(evt: PointerEvent, touchType: TouchType) {\n this._touches.push({\n id: evt.pointerId,\n x: evt.clientX - evt.currentTarget.getClientRects()[0].left,\n y: evt.clientY - evt.currentTarget.getClientRects()[0].top,\n force: evt.pressure,\n type: touchType,\n timestamp: Date.now(),\n });\n this.requestRedraw();\n }\n\n handleTouchStart(evt: PointerEvent) {\n this.handleTouchEvent(evt, TouchType.Start);\n }\n\n handleTouchMove(evt: PointerEvent) {\n this.handleTouchEvent(evt, TouchType.Active);\n }\n\n handleTouchEnd(evt: PointerEvent) {\n this.handleTouchEvent(evt, TouchType.Cancelled);\n }\n\n handleTouchCancel(evt: PointerEvent) {\n this.handleTouchEvent(evt, TouchType.End);\n }\n\n render() {\n const { mode, debug = false, ...viewProps } = this.props;\n return (\n <View {...viewProps} onLayout={this.onLayout.bind(this)}>\n {this.state.width > -1 ? (\n <canvas\n ref={this._canvasRef}\n width={`${this.state.width}px`}\n height={`${this.state.height}px`}\n onPointerDown={this.handleTouchStart.bind(this)}\n onPointerMove={this.handleTouchMove.bind(this)}\n onPointerUp={this.handleTouchEnd.bind(this)}\n onPointerCancel={this.handleTouchCancel.bind(this)}\n />\n ) : null}\n </View>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["SkiaView.web.tsx"],"names":["SkiaView","React","Component","constructor","props","createRef","state","width","height","_mode","mode","unsubscribeAll","_unsubscriptions","forEach","u","onLayout","evt","setState","nativeEvent","layout","_canvasRef","current","_surface","JsiSkSurface","global","CanvasKit","MakeCanvasSurface","_canvas","getCanvas","requestRedraw","redraw","componentDidMount","componentWillUnmount","_unmounted","makeImageSnapshot","rect","_redrawRequests","onDraw","touches","_touches","info","timestamp","Date","now","ref","flush","requestAnimationFrame","bind","setDrawMode","registerValues","_values","v","push","addListener","handleTouchEvent","touchType","id","pointerId","x","clientX","currentTarget","getClientRects","left","y","clientY","top","force","pressure","type","handleTouchStart","TouchType","Start","handleTouchMove","Active","handleTouchEnd","Cancelled","handleTouchCancel","End","render","debug","viewProps"],"mappings":"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","sourcesContent":["/* global HTMLCanvasElement */\nimport React from \"react\";\nimport type { PointerEvent } from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\nimport { View } from \"react-native\";\n\nimport type { SkRect, SkCanvas } from \"../skia/types\";\nimport type { SkiaValue } from \"../values\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\n\nimport type { DrawingInfo, DrawMode, SkiaViewProps, TouchInfo } from \"./types\";\nimport { TouchType } from \"./types\";\n\nexport class SkiaView extends React.Component<\n SkiaViewProps,\n { width: number; height: number }\n> {\n constructor(props: SkiaViewProps) {\n super(props);\n this.state = { width: -1, height: -1 };\n this._mode = props.mode ?? \"default\";\n }\n\n private _surface: JsiSkSurface | null = null;\n private _unsubscriptions: Array<() => void> = [];\n private _touches: Array<TouchInfo> = [];\n private _canvas: SkCanvas | null = null;\n private _canvasRef: React.RefObject<HTMLCanvasElement> = React.createRef();\n private _mode: DrawMode;\n private _redrawRequests = 0;\n private _unmounted = false;\n\n private unsubscribeAll() {\n this._unsubscriptions.forEach((u) => u());\n this._unsubscriptions = [];\n }\n\n private onLayout(evt: LayoutChangeEvent) {\n this.setState({\n width: evt.nativeEvent.layout.width,\n height: evt.nativeEvent.layout.height,\n });\n // Reset canvas / surface on layout change\n if (this._canvasRef.current) {\n // Create surface\n this._surface = new JsiSkSurface(\n global.CanvasKit,\n global.CanvasKit.MakeCanvasSurface(this._canvasRef.current)!\n );\n // Get canvas and repaint\n if (this._surface) {\n this._canvas = this._surface.getCanvas();\n this.requestRedraw();\n this.redraw();\n }\n }\n }\n\n componentDidMount() {\n // Start render loop\n this.redraw();\n }\n\n componentWillUnmount() {\n this.unsubscribeAll();\n this._surface = null;\n this._canvas = null;\n this._unmounted = true;\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n return this._surface?.makeImageSnapshot(rect);\n }\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n private redraw() {\n if (this._mode === \"continuous\" || this._redrawRequests > 0) {\n this._redrawRequests = 0;\n if (\n this._canvas &&\n this.props.onDraw &&\n this.state.height !== -1 &&\n this.state.width !== -1\n ) {\n const touches = [...this._touches];\n this._touches = [];\n const info: DrawingInfo = {\n height: this.state.height,\n width: this.state.width,\n timestamp: Date.now(),\n touches: [touches],\n };\n this.props.onDraw && this.props.onDraw(this._canvas!, info);\n this._surface?.ref.flush();\n }\n }\n // Always request a new redraw as long as we're not unmounted\n if (!this._unmounted) {\n requestAnimationFrame(this.redraw.bind(this));\n }\n }\n\n public requestRedraw() {\n this._redrawRequests++;\n }\n\n /**\n * Updates the drawing mode for the skia view. This is the same\n * as declaratively setting the mode property on the SkiaView.\n * There are two drawing modes, \"continuous\" and \"default\",\n * where the continuous mode will continuously redraw the view and\n * the default mode will only redraw when any of the regular react\n * properties are changed like size and margins.\n * @param mode Drawing mode to use.\n */\n public setDrawMode(mode: DrawMode) {\n this._mode = mode;\n this.redraw();\n }\n\n /**\n * Registers one or move values as a dependant value of the Skia View. The view will\n * The view will redraw itself when any of the values change.\n * @param values Values to register\n */\n public registerValues(_values: SkiaValue<unknown>[]) {\n // Unsubscribe from dependency values\n this.unsubscribeAll();\n // Register redraw dependencies on values\n _values.forEach((v) => {\n this._unsubscriptions.push(\n v.addListener(() => {\n this.requestRedraw();\n })\n );\n });\n }\n\n private handleTouchEvent(evt: PointerEvent, touchType: TouchType) {\n this._touches.push({\n id: evt.pointerId,\n x: evt.clientX - evt.currentTarget.getClientRects()[0].left,\n y: evt.clientY - evt.currentTarget.getClientRects()[0].top,\n force: evt.pressure,\n type: touchType,\n timestamp: Date.now(),\n });\n this.requestRedraw();\n }\n\n handleTouchStart(evt: PointerEvent) {\n this.handleTouchEvent(evt, TouchType.Start);\n }\n\n handleTouchMove(evt: PointerEvent) {\n this.handleTouchEvent(evt, TouchType.Active);\n }\n\n handleTouchEnd(evt: PointerEvent) {\n this.handleTouchEvent(evt, TouchType.Cancelled);\n }\n\n handleTouchCancel(evt: PointerEvent) {\n this.handleTouchEvent(evt, TouchType.End);\n }\n\n render() {\n const { mode, debug = false, ...viewProps } = this.props;\n return (\n <View {...viewProps} onLayout={this.onLayout.bind(this)}>\n <canvas\n ref={this._canvasRef}\n width={this.state.width}\n height={this.state.height}\n onPointerDown={this.handleTouchStart.bind(this)}\n onPointerMove={this.handleTouchMove.bind(this)}\n onPointerUp={this.handleTouchEnd.bind(this)}\n onPointerCancel={this.handleTouchCancel.bind(this)}\n />\n </View>\n );\n }\n}\n"]}
|
|
@@ -5,12 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.LoadSkia = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _canvaskit = _interopRequireDefault(require("canvaskit-wasm/bin/full/canvaskit"));
|
|
9
9
|
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
11
|
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
13
|
+
// @ts-expect-error
|
|
12
14
|
const LoadSkia = async () => {
|
|
13
|
-
const CanvasKit = await (0,
|
|
15
|
+
const CanvasKit = await (0, _canvaskit.default)(); // The CanvasKit API is stored on the global object and used
|
|
14
16
|
// to create the JsiSKApi in the Skia.web.ts file.
|
|
15
17
|
|
|
16
18
|
global.CanvasKit = CanvasKit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":["LoadSkia","CanvasKit","global"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["LoadSkia","CanvasKit","global"],"mappings":";;;;;;;AAEA;;;;AAFA;AACA;AAQO,MAAMA,QAAQ,GAAG,YAAY;AAClC,QAAMC,SAAS,GAAG,MAAM,yBAAxB,CADkC,CAElC;AACA;;AACAC,EAAAA,MAAM,CAACD,SAAP,GAAmBA,SAAnB;AACD,CALM","sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-expect-error\nimport CanvasKitInit from \"canvaskit-wasm/bin/full/canvaskit\";\nimport type { CanvasKit as CanvasKitType } from \"canvaskit-wasm\";\n\ndeclare global {\n var CanvasKit: CanvasKitType;\n}\n\nexport const LoadSkia = async () => {\n const CanvasKit = await CanvasKitInit();\n // The CanvasKit API is stored on the global object and used\n // to create the JsiSKApi in the Skia.web.ts file.\n global.CanvasKit = CanvasKit;\n};\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export let FilterMode;
|
|
2
2
|
|
|
3
3
|
(function (FilterMode) {
|
|
4
|
-
FilterMode[FilterMode["
|
|
5
|
-
FilterMode[FilterMode["
|
|
4
|
+
FilterMode[FilterMode["Nearest"] = 0] = "Nearest";
|
|
5
|
+
FilterMode[FilterMode["Linear"] = 1] = "Linear";
|
|
6
6
|
})(FilterMode || (FilterMode = {}));
|
|
7
7
|
|
|
8
8
|
export let MipmapMode;
|
|
@@ -16,8 +16,8 @@ export let MipmapMode;
|
|
|
16
16
|
export let ImageFormat;
|
|
17
17
|
|
|
18
18
|
(function (ImageFormat) {
|
|
19
|
-
ImageFormat[ImageFormat["
|
|
20
|
-
ImageFormat[ImageFormat["
|
|
21
|
-
ImageFormat[ImageFormat["WEBP"] =
|
|
19
|
+
ImageFormat[ImageFormat["JPEG"] = 3] = "JPEG";
|
|
20
|
+
ImageFormat[ImageFormat["PNG"] = 4] = "PNG";
|
|
21
|
+
ImageFormat[ImageFormat["WEBP"] = 6] = "WEBP";
|
|
22
22
|
})(ImageFormat || (ImageFormat = {}));
|
|
23
23
|
//# sourceMappingURL=Image.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Image.ts"],"names":["FilterMode","MipmapMode","ImageFormat"],"mappings":"AAKA,WAAYA,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAKZ,WAAYC,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAMZ,WAAYC,WAAZ;;WAAYA,W;AAAAA,EAAAA,W,CAAAA,W;AAAAA,EAAAA,W,CAAAA,W;AAAAA,EAAAA,W,CAAAA,W;GAAAA,W,KAAAA,W","sourcesContent":["import type { SkMatrix } from \"../Matrix\";\nimport type { SkJSIInstance } from \"../JsiInstance\";\nimport type { TileMode } from \"../ImageFilter\";\nimport type { SkShader } from \"../Shader\";\n\nexport enum FilterMode {\n
|
|
1
|
+
{"version":3,"sources":["Image.ts"],"names":["FilterMode","MipmapMode","ImageFormat"],"mappings":"AAKA,WAAYA,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAKZ,WAAYC,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAMZ,WAAYC,WAAZ;;WAAYA,W;AAAAA,EAAAA,W,CAAAA,W;AAAAA,EAAAA,W,CAAAA,W;AAAAA,EAAAA,W,CAAAA,W;GAAAA,W,KAAAA,W","sourcesContent":["import type { SkMatrix } from \"../Matrix\";\nimport type { SkJSIInstance } from \"../JsiInstance\";\nimport type { TileMode } from \"../ImageFilter\";\nimport type { SkShader } from \"../Shader\";\n\nexport enum FilterMode {\n Nearest,\n Linear,\n}\n\nexport enum MipmapMode {\n None,\n Nearest,\n Linear,\n}\n\nexport enum ImageFormat {\n JPEG = 3,\n PNG = 4,\n WEBP = 6,\n}\n\nexport interface SkImage extends SkJSIInstance<\"Image\"> {\n /**\n * Returns the possibly scaled height of the image.\n */\n height(): number;\n\n /**\n * Returns the possibly scaled width of the image.\n */\n width(): number;\n\n /**\n * Returns this image as a shader with the specified tiling. It will use cubic sampling.\n * @param tx - tile mode in the x direction.\n * @param ty - tile mode in the y direction.\n * @param fm - The filter mode. (default nearest)\n * @param mm - The mipmap mode. Note: for settings other than None, the image must have mipmaps (default none)\n * calculated with makeCopyWithDefaultMipmaps;\n * @param localMatrix\n */\n makeShaderOptions(\n tx: TileMode,\n ty: TileMode,\n fm: FilterMode,\n mm: MipmapMode,\n localMatrix?: SkMatrix\n ): SkShader;\n\n /**\n * Returns this image as a shader with the specified tiling. It will use cubic sampling.\n * @param tx - tile mode in the x direction.\n * @param ty - tile mode in the y direction.\n * @param B - See CubicResampler in SkSamplingOptions.h for more information\n * @param C - See CubicResampler in SkSamplingOptions.h for more information\n * @param localMatrix\n */\n makeShaderCubic(\n tx: TileMode,\n ty: TileMode,\n B: number,\n C: number,\n localMatrix?: SkMatrix\n ): SkShader;\n\n /** Encodes Image pixels, returning result as UInt8Array. Returns existing\n encoded data if present; otherwise, SkImage is encoded with\n SkEncodedImageFormat::kPNG. Skia must be built with SK_ENCODE_PNG to encode\n SkImage.\n\n Returns nullptr if existing encoded data is missing or invalid, and\n encoding fails.\n\n @param fmt - PNG is the default value.\n @param quality - a value from 0 to 100; 100 is the least lossy. May be ignored.\n\n @return Uint8Array with data\n */\n encodeToBytes(fmt?: ImageFormat, quality?: number): Uint8Array;\n\n /** Encodes Image pixels, returning result as a base64 encoded string. Returns existing\n encoded data if present; otherwise, SkImage is encoded with\n SkEncodedImageFormat::kPNG. Skia must be built with SK_ENCODE_PNG to encode\n SkImage.\n\n Returns nullptr if existing encoded data is missing or invalid, and\n encoding fails.\n\n @param fmt - PNG is the default value.\n @param quality - a value from 0 to 100; 100 is the least lossy. May be ignored.\n\n @return base64 encoded string of data\n */\n encodeToBase64(fmt?: ImageFormat, quality?: number): string;\n}\n"]}
|
|
@@ -16,9 +16,9 @@ export let StrokeCap;
|
|
|
16
16
|
export let StrokeJoin;
|
|
17
17
|
|
|
18
18
|
(function (StrokeJoin) {
|
|
19
|
-
StrokeJoin[StrokeJoin["
|
|
20
|
-
StrokeJoin[StrokeJoin["
|
|
21
|
-
StrokeJoin[StrokeJoin["
|
|
19
|
+
StrokeJoin[StrokeJoin["Miter"] = 0] = "Miter";
|
|
20
|
+
StrokeJoin[StrokeJoin["Round"] = 1] = "Round";
|
|
21
|
+
StrokeJoin[StrokeJoin["Bevel"] = 2] = "Bevel";
|
|
22
22
|
})(StrokeJoin || (StrokeJoin = {}));
|
|
23
23
|
|
|
24
24
|
export const isPaint = obj => obj !== null && obj.__typename__ === "Paint";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Paint.ts"],"names":["PaintStyle","StrokeCap","StrokeJoin","isPaint","obj","__typename__"],"mappings":"AAUA,WAAYA,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAKZ,WAAYC,SAAZ;;WAAYA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;GAAAA,S,KAAAA,S;;AAMZ,WAAYC,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAMZ,OAAO,MAAMC,OAAO,GAAIC,GAAD,IACrBA,GAAG,KAAK,IAAR,IAAgBA,GAAG,CAACC,YAAJ,KAAqB,OADhC","sourcesContent":["import type { SkImageFilter } from \"../ImageFilter\";\nimport type { SkMaskFilter } from \"../MaskFilter\";\nimport type { SkColorFilter } from \"../ColorFilter\";\nimport type { SkColor } from \"../Color\";\nimport type { SkPathEffect } from \"../PathEffect\";\nimport type { SkJSIInstance } from \"../JsiInstance\";\nimport type { SkShader } from \"../Shader\";\n\nimport type { BlendMode } from \"./BlendMode\";\n\nexport enum PaintStyle {\n Fill,\n Stroke,\n}\n\nexport enum StrokeCap {\n Butt,\n Round,\n Square,\n}\n\nexport enum StrokeJoin {\n
|
|
1
|
+
{"version":3,"sources":["Paint.ts"],"names":["PaintStyle","StrokeCap","StrokeJoin","isPaint","obj","__typename__"],"mappings":"AAUA,WAAYA,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAKZ,WAAYC,SAAZ;;WAAYA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;GAAAA,S,KAAAA,S;;AAMZ,WAAYC,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAMZ,OAAO,MAAMC,OAAO,GAAIC,GAAD,IACrBA,GAAG,KAAK,IAAR,IAAgBA,GAAG,CAACC,YAAJ,KAAqB,OADhC","sourcesContent":["import type { SkImageFilter } from \"../ImageFilter\";\nimport type { SkMaskFilter } from \"../MaskFilter\";\nimport type { SkColorFilter } from \"../ColorFilter\";\nimport type { SkColor } from \"../Color\";\nimport type { SkPathEffect } from \"../PathEffect\";\nimport type { SkJSIInstance } from \"../JsiInstance\";\nimport type { SkShader } from \"../Shader\";\n\nimport type { BlendMode } from \"./BlendMode\";\n\nexport enum PaintStyle {\n Fill,\n Stroke,\n}\n\nexport enum StrokeCap {\n Butt,\n Round,\n Square,\n}\n\nexport enum StrokeJoin {\n Miter,\n Round,\n Bevel,\n}\n\nexport const isPaint = (obj: SkJSIInstance<string> | null): obj is SkPaint =>\n obj !== null && obj.__typename__ === \"Paint\";\n\nexport interface SkPaint extends SkJSIInstance<\"Paint\"> {\n /**\n * Returns a copy of this paint.\n */\n copy(): SkPaint;\n\n /**\n * Retrieves the alpha and RGB unpremultiplied. RGB are extended sRGB values\n * (sRGB gamut, and encoded with the sRGB transfer function).\n */\n getColor(): SkColor;\n\n /**\n * Returns the geometry drawn at the beginning and end of strokes.\n */\n getStrokeCap(): StrokeCap;\n\n /**\n * Returns the geometry drawn at the corners of strokes.\n */\n getStrokeJoin(): StrokeJoin;\n\n /**\n * Returns the limit at which a sharp corner is drawn beveled.\n */\n getStrokeMiter(): number;\n\n /**\n * Returns the thickness of the pen used to outline the shape.\n */\n getStrokeWidth(): number;\n\n /**\n * Replaces alpha, leaving RGBA unchanged. 0 means fully transparent, 1.0 means opaque.\n * @param alpha\n */\n setAlphaf(alpha: number): void;\n\n /**\n * Requests, but does not require, that edge pixels draw opaque or with\n * partial transparency.\n * @param aa\n */\n setAntiAlias: (aa: boolean) => void;\n\n /**\n * Sets the blend mode that is, the mode used to combine source color\n * with destination color.\n * @param mode\n */\n setBlendMode: (blendMode: BlendMode) => void;\n\n /**\n * Sets alpha and RGB used when stroking and filling. The color is a 32-bit\n * value, unpremultiplied, packing 8-bit components for alpha, red, blue,\n * and green.\n *\n * @param color unpremultiplied ARGB\n *\n * example: https://fiddle.skia.org/c/@Paint_setColor\n */\n setColor(color: SkColor): void;\n\n /**\n * Sets the current color filter, replacing the existing one if there was one.\n * @param filter\n */\n setColorFilter(filter: SkColorFilter | null): void;\n\n /**\n * Sets the current image filter, replacing the existing one if there was one.\n * @param filter\n */\n setImageFilter(filter: SkImageFilter | null): void;\n\n /**\n * Sets the current mask filter, replacing the existing one if there was one.\n * @param filter\n */\n setMaskFilter(filter: SkMaskFilter | null): void;\n\n /**\n * Sets the current path effect, replacing the existing one if there was one.\n * @param effect\n */\n setPathEffect(effect: SkPathEffect | null): void;\n\n /**\n * Sets the current shader, replacing the existing one if there was one.\n * @param shader\n */\n setShader(shader: SkShader | null): void;\n\n /**\n * Sets the geometry drawn at the beginning and end of strokes.\n * @param cap\n */\n setStrokeCap(cap: StrokeCap): void;\n\n /**\n * Sets the geometry drawn at the corners of strokes.\n * @param join\n */\n setStrokeJoin(join: StrokeJoin): void;\n\n /**\n * Sets the limit at which a sharp corner is drawn beveled.\n * @param limit\n */\n setStrokeMiter(limit: number): void;\n\n /**\n * Sets the thickness of the pen used to outline the shape.\n * @param width\n */\n setStrokeWidth(width: number): void;\n\n /**\n * Sets whether the geometry is filled or stroked.\n * @param style\n */\n setStyle(style: PaintStyle): void;\n}\n"]}
|
|
@@ -29,7 +29,6 @@ export let PathVerb;
|
|
|
29
29
|
PathVerb[PathVerb["Conic"] = 3] = "Conic";
|
|
30
30
|
PathVerb[PathVerb["Cubic"] = 4] = "Cubic";
|
|
31
31
|
PathVerb[PathVerb["Close"] = 5] = "Close";
|
|
32
|
-
PathVerb[PathVerb["Done"] = 6] = "Done";
|
|
33
32
|
})(PathVerb || (PathVerb = {}));
|
|
34
33
|
|
|
35
34
|
export const isPath = obj => obj !== null && obj.__typename__ === "Path";
|