@shopify/react-native-skia 2.6.4 → 2.6.5

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.
Files changed (106) hide show
  1. package/android/CMakeLists.txt +7 -4
  2. package/android/build.gradle +22 -3
  3. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +62 -0
  4. package/apple/RNSkApplePlatformContext.h +2 -0
  5. package/apple/RNSkApplePlatformContext.mm +71 -0
  6. package/apple/RNWebGPUAppleNativeBuffer.mm +33 -0
  7. package/cpp/api/JsiNativeBuffer.h +9 -1
  8. package/cpp/api/JsiSkAnimatedImageFactory.h +1 -1
  9. package/cpp/api/JsiSkApi.h +2 -2
  10. package/cpp/api/JsiSkCanvas.h +1 -1
  11. package/cpp/api/JsiSkDataFactory.h +1 -1
  12. package/cpp/api/JsiSkFont.h +1 -1
  13. package/cpp/api/JsiSkFontMgr.h +1 -1
  14. package/cpp/api/JsiSkHostObjects.h +3 -3
  15. package/cpp/api/JsiSkImage.h +2 -2
  16. package/cpp/api/JsiSkImageFactory.h +2 -2
  17. package/cpp/api/JsiSkPath.h +1 -1
  18. package/cpp/api/JsiSkPathFactory.h +1 -1
  19. package/cpp/api/JsiSkSurface.h +13 -5
  20. package/cpp/api/JsiSkTypeface.h +1 -1
  21. package/cpp/api/JsiSkTypefaceFontProvider.h +1 -1
  22. package/cpp/api/JsiSkiaContext.h +2 -2
  23. package/cpp/api/JsiTextureInfo.h +1 -1
  24. package/cpp/api/JsiVideo.h +2 -2
  25. package/cpp/api/recorder/Drawings.h +1 -1
  26. package/cpp/api/recorder/JsiRecorder.h +4 -4
  27. package/cpp/api/recorder/RNRecorder.h +1 -1
  28. package/cpp/jsi/ViewProperty.h +1 -1
  29. package/cpp/rnskia/RNDawnContext.h +13 -0
  30. package/cpp/rnskia/RNDawnUtils.h +11 -1
  31. package/cpp/rnskia/RNSkJsiViewApi.h +2 -2
  32. package/cpp/rnskia/RNSkManager.cpp +88 -2
  33. package/cpp/rnskia/RNSkPictureView.h +4 -4
  34. package/cpp/rnskia/RNSkPlatformContext.h +7 -0
  35. package/cpp/rnskia/RNSkView.h +9 -6
  36. package/cpp/rnwgpu/ArrayBuffer.h +51 -7
  37. package/cpp/rnwgpu/api/AppleNativeBuffer.h +22 -0
  38. package/cpp/rnwgpu/api/Convertors.h +33 -11
  39. package/cpp/rnwgpu/api/GPUAdapter.cpp +28 -2
  40. package/cpp/rnwgpu/api/GPUBuffer.h +1 -1
  41. package/cpp/rnwgpu/api/GPUDevice.cpp +29 -2
  42. package/cpp/rnwgpu/api/GPUDevice.h +6 -0
  43. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +139 -0
  44. package/cpp/rnwgpu/api/GPUExternalTexture.h +52 -2
  45. package/cpp/rnwgpu/api/GPUQueue.cpp +50 -45
  46. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +82 -0
  47. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +70 -0
  48. package/cpp/rnwgpu/api/ImageBitmap.h +62 -0
  49. package/cpp/rnwgpu/api/NativeBufferUtils.h +87 -0
  50. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +4 -1
  51. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +1 -1
  52. package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +56 -0
  53. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +10 -0
  54. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +43 -24
  55. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +9 -9
  56. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +1 -1
  57. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +2 -2
  58. package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +73 -0
  59. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +1 -1
  60. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +1 -1
  61. package/cpp/skia/include/core/SkRegion.h +10 -5
  62. package/cpp/skia/include/effects/SkRuntimeEffect.h +2 -2
  63. package/cpp/skia/include/gpu/graphite/Context.h +1 -1
  64. package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.d.ts +10 -1
  65. package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.js.map +1 -1
  66. package/lib/commonjs/skia/types/WebGPU.d.ts +88 -0
  67. package/lib/commonjs/skia/types/WebGPU.js +6 -0
  68. package/lib/commonjs/skia/types/WebGPU.js.map +1 -0
  69. package/lib/commonjs/skia/types/index.d.ts +1 -0
  70. package/lib/commonjs/skia/types/index.js +11 -0
  71. package/lib/commonjs/skia/types/index.js.map +1 -1
  72. package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.d.ts +1 -0
  73. package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.js +19 -0
  74. package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.js.map +1 -1
  75. package/lib/commonjs/skia/web/JsiSkPath.js.map +1 -1
  76. package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.d.ts +10 -1
  77. package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.js.map +1 -1
  78. package/lib/module/skia/types/WebGPU.d.ts +88 -0
  79. package/lib/module/skia/types/WebGPU.js +2 -0
  80. package/lib/module/skia/types/WebGPU.js.map +1 -0
  81. package/lib/module/skia/types/index.d.ts +1 -0
  82. package/lib/module/skia/types/index.js +1 -0
  83. package/lib/module/skia/types/index.js.map +1 -1
  84. package/lib/module/skia/web/JsiSkNativeBufferFactory.d.ts +1 -0
  85. package/lib/module/skia/web/JsiSkNativeBufferFactory.js +19 -0
  86. package/lib/module/skia/web/JsiSkNativeBufferFactory.js.map +1 -1
  87. package/lib/module/skia/web/JsiSkPath.js.map +1 -1
  88. package/lib/module/web/LoadSkiaWeb.js +1 -2
  89. package/lib/module/web/LoadSkiaWeb.js.map +1 -1
  90. package/lib/typescript/lib/commonjs/skia/types/WebGPU.d.ts +1 -0
  91. package/lib/typescript/lib/commonjs/skia/web/JsiSkNativeBufferFactory.d.ts +1 -0
  92. package/lib/typescript/lib/module/skia/types/WebGPU.d.ts +1 -0
  93. package/lib/typescript/lib/module/skia/types/index.d.ts +1 -0
  94. package/lib/typescript/lib/module/skia/web/JsiSkNativeBufferFactory.d.ts +1 -0
  95. package/lib/typescript/src/skia/types/NativeBuffer/NativeBufferFactory.d.ts +10 -1
  96. package/lib/typescript/src/skia/types/WebGPU.d.ts +88 -0
  97. package/lib/typescript/src/skia/types/index.d.ts +1 -0
  98. package/lib/typescript/src/skia/web/JsiSkNativeBufferFactory.d.ts +1 -0
  99. package/package.json +10 -8
  100. package/react-native-skia.podspec +59 -7
  101. package/src/skia/types/NativeBuffer/NativeBufferFactory.ts +10 -1
  102. package/src/skia/types/WebGPU.ts +108 -0
  103. package/src/skia/types/index.ts +1 -0
  104. package/src/skia/web/JsiSkNativeBufferFactory.ts +20 -0
  105. package/src/skia/web/JsiSkPath.ts +8 -2
  106. package/scripts/install-libs.js +0 -133
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_Host","_JsiSkPoint","_JsiSkRect","_JsiSkRRect","_JsiSkMatrix","CommandCount","PathVerb","Move","Line","Quad","Conic","Cubic","Close","shownDeprecationWarnings","Set","warnDeprecatedPathMethod","methodName","suggestion","has","add","console","warn","toMatrix3x3","m","matrix","JsiSkMatrix","Array","from","fromValue","length","Error","exports","JsiSkPath","HostObject","constructor","CanvasKit","ref","asPath","snapshot","pathFromValue","value","addPath","src","extend","srcBuilder","srcPath","args","delete","addArc","oval","startAngleInDegrees","sweepAngleInDegrees","JsiSkRect","addOval","isCCW","startIndex","addPoly","points","close","addPolygon","map","p","JsiSkPoint","flat","addRect","rect","addRRect","rrect","JsiSkRRect","addCircle","x","y","r","moveTo","rMoveTo","lineTo","rLineTo","quadTo","x1","y1","x2","y2","rQuadTo","conicTo","w","rConicTo","cubicTo","cpx1","cpy1","cpx2","cpy2","rCubicTo","reset","newBuilder","PathBuilder","rewind","arcToOval","forceMoveTo","arcToRotated","rx","ry","xAxisRotateInDegrees","useSmallArc","rArcTo","dx","dy","arcToTangent","radius","setFillType","fill","getEnum","setIsVolatile","_volatile","offset","transform","makeAsWinding","path","result","old","simplify","makeSimplified","op","self","other","makeCombined","dash","on","off","phase","makeDashed","stroke","opts","makeStroked","undefined","width","miter_limit","precision","join","optEnum","cap","trim","start","stop","isComplement","startT","Math","min","max","stopT","makeTrimmed","countPoints","computeTightBounds","contains","copy","equals","p1","p2","getBounds","getFillType","getPoint","index","isEmpty","isVolatile","getLastPt","count","pt","toSVGString","isInterpolatable","path2","Path","CanInterpolate","interpolate","end","weight","output","MakeFromPathInterpolation","outRef","toCmds","cmds","reduce","acc","cmd","i","push","current"],"sources":["JsiSkPath.ts"],"sourcesContent":["import type { CanvasKit, PathBuilder as CKPathBuilder } 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 InputRRect,\n StrokeOpts,\n InputMatrix,\n} from \"../types\";\n\nimport { getEnum, HostObject, optEnum } from \"./Host\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\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\n// Track which deprecation warnings have been shown to avoid spam\nconst shownDeprecationWarnings = new Set<string>();\n\nconst warnDeprecatedPathMethod = (\n methodName: string,\n suggestion: string\n): void => {\n if (shownDeprecationWarnings.has(methodName)) {\n return;\n }\n shownDeprecationWarnings.add(methodName);\n console.warn(\n `[react-native-skia] SkPath.${methodName}() is deprecated and will be removed in a future release. ${suggestion} See migration guide: https://shopify.github.io/react-native-skia/docs/shapes/path-migration`\n );\n};\n\nexport const toMatrix3x3 = (m: InputMatrix): number[] => {\n let matrix =\n m instanceof JsiSkMatrix\n ? Array.from(JsiSkMatrix.fromValue<Float32Array>(m))\n : (m as Exclude<InputMatrix, SkMatrix>);\n if (matrix.length === 16) {\n matrix = [\n matrix[0],\n matrix[1],\n matrix[3],\n matrix[4],\n matrix[5],\n matrix[7],\n matrix[12],\n matrix[13],\n matrix[15],\n ];\n } else if (matrix.length !== 9) {\n throw new Error(`Invalid matrix length: ${matrix.length}`);\n }\n return matrix as number[];\n};\n\n/**\n * SkPath wraps a CK PathBuilder internally, providing both mutable building\n * methods and immutable query methods. Use snapshot() internally to get\n * an immutable CK Path for read-only operations.\n */\nexport class JsiSkPath\n extends HostObject<CKPathBuilder, \"Path\">\n implements SkPath\n{\n constructor(CanvasKit: CanvasKit, ref: CKPathBuilder) {\n super(CanvasKit, ref, \"Path\");\n }\n\n /** Returns an immutable CK Path snapshot for read-only operations. */\n private asPath() {\n return this.ref.snapshot();\n }\n\n /** Extract an immutable CK Path from a JsiSkPath value (for CK interop). */\n static pathFromValue(value: SkPath) {\n return JsiSkPath.fromValue<CKPathBuilder>(value).snapshot();\n }\n\n // ---- Mutable building methods (deprecated) ----\n\n addPath(src: SkPath, matrix?: SkMatrix, extend = false) {\n warnDeprecatedPathMethod(\n \"addPath\",\n \"Use Skia.PathBuilder.Make().addPath() instead.\"\n );\n const srcBuilder = JsiSkPath.fromValue<CKPathBuilder>(src);\n const srcPath = srcBuilder.snapshot();\n const args = [\n srcPath,\n ...(matrix ? JsiSkMatrix.fromValue<Float32Array>(matrix) : []),\n extend,\n ];\n this.ref.addPath(...args);\n srcPath.delete();\n return this;\n }\n\n addArc(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number\n ) {\n warnDeprecatedPathMethod(\n \"addArc\",\n \"Use Skia.PathBuilder.Make().addArc() instead.\"\n );\n this.ref.addArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees\n );\n return this;\n }\n\n addOval(oval: SkRect, isCCW?: boolean, startIndex?: number) {\n warnDeprecatedPathMethod(\n \"addOval\",\n \"Use Skia.Path.Oval() or Skia.PathBuilder.Make().addOval() instead.\"\n );\n this.ref.addOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n isCCW,\n startIndex\n );\n return this;\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n warnDeprecatedPathMethod(\n \"addPoly\",\n \"Use Skia.Path.Polygon() or Skia.PathBuilder.Make().addPoly() instead.\"\n );\n this.ref.addPolygon(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return this;\n }\n\n addRect(rect: SkRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRect\",\n \"Use Skia.Path.Rect() or Skia.PathBuilder.Make().addRect() instead.\"\n );\n this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n return this;\n }\n\n addRRect(rrect: InputRRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRRect\",\n \"Use Skia.Path.RRect() or Skia.PathBuilder.Make().addRRect() instead.\"\n );\n this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return this;\n }\n\n addCircle(x: number, y: number, r: number) {\n warnDeprecatedPathMethod(\n \"addCircle\",\n \"Use Skia.Path.Circle() or Skia.PathBuilder.Make().addCircle() instead.\"\n );\n this.ref.addCircle(x, y, r);\n return this;\n }\n\n moveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"moveTo\",\n \"Use Skia.PathBuilder.Make().moveTo() instead.\"\n );\n this.ref.moveTo(x, y);\n return this;\n }\n\n rMoveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rMoveTo\",\n \"Use Skia.PathBuilder.Make().rMoveTo() instead.\"\n );\n this.ref.rMoveTo(x, y);\n return this;\n }\n\n lineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"lineTo\",\n \"Use Skia.PathBuilder.Make().lineTo() instead.\"\n );\n this.ref.lineTo(x, y);\n return this;\n }\n\n rLineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rLineTo\",\n \"Use Skia.PathBuilder.Make().rLineTo() instead.\"\n );\n this.ref.rLineTo(x, y);\n return this;\n }\n\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"quadTo\",\n \"Use Skia.PathBuilder.Make().quadTo() instead.\"\n );\n this.ref.quadTo(x1, y1, x2, y2);\n return this;\n }\n\n rQuadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"rQuadTo\",\n \"Use Skia.PathBuilder.Make().rQuadTo() instead.\"\n );\n this.ref.rQuadTo(x1, y1, x2, y2);\n return this;\n }\n\n conicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"conicTo\",\n \"Use Skia.PathBuilder.Make().conicTo() instead.\"\n );\n this.ref.conicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n rConicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"rConicTo\",\n \"Use Skia.PathBuilder.Make().rConicTo() instead.\"\n );\n this.ref.rConicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n cubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n warnDeprecatedPathMethod(\n \"cubicTo\",\n \"Use Skia.PathBuilder.Make().cubicTo() instead.\"\n );\n this.ref.cubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\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 warnDeprecatedPathMethod(\n \"rCubicTo\",\n \"Use Skia.PathBuilder.Make().rCubicTo() instead.\"\n );\n this.ref.rCubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n close() {\n warnDeprecatedPathMethod(\n \"close\",\n \"Use Skia.PathBuilder.Make().close() instead.\"\n );\n this.ref.close();\n return this;\n }\n\n reset() {\n warnDeprecatedPathMethod(\n \"reset\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n // CK PathBuilder has no reset — recreate\n const newBuilder = new this.CanvasKit.PathBuilder();\n if (\n this.ref !== null &&\n typeof this.ref === \"object\" &&\n \"delete\" in this.ref &&\n typeof this.ref.delete === \"function\"\n ) {\n this.ref.delete();\n }\n this.ref = newBuilder;\n return this;\n }\n\n rewind() {\n warnDeprecatedPathMethod(\n \"rewind\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n return this.reset();\n }\n\n arcToOval(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number,\n forceMoveTo: boolean\n ) {\n warnDeprecatedPathMethod(\n \"arcToOval\",\n \"Use Skia.PathBuilder.Make().arcToOval() instead.\"\n );\n this.ref.arcToOval(\n JsiSkRect.fromValue(this.CanvasKit, 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 warnDeprecatedPathMethod(\n \"arcToRotated\",\n \"Use Skia.PathBuilder.Make().arcToRotated() instead.\"\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 rArcTo(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n dx: number,\n dy: number\n ) {\n warnDeprecatedPathMethod(\n \"rArcTo\",\n \"Use Skia.PathBuilder.Make().rArcTo() instead.\"\n );\n this.ref.rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy);\n return this;\n }\n\n arcToTangent(x1: number, y1: number, x2: number, y2: number, radius: number) {\n warnDeprecatedPathMethod(\n \"arcToTangent\",\n \"Use Skia.PathBuilder.Make().arcToTangent() instead.\"\n );\n this.ref.arcToTangent(x1, y1, x2, y2, radius);\n return this;\n }\n\n setFillType(fill: FillType) {\n warnDeprecatedPathMethod(\n \"setFillType\",\n \"Use Skia.PathBuilder.Make().setFillType() instead.\"\n );\n this.ref.setFillType(getEnum(this.CanvasKit, \"FillType\", fill));\n return this;\n }\n\n setIsVolatile(_volatile: boolean) {\n warnDeprecatedPathMethod(\n \"setIsVolatile\",\n \"Use Skia.PathBuilder.Make().setIsVolatile() instead.\"\n );\n // Not supported in CK PathBuilder — no-op\n return this;\n }\n\n // ---- Mutable path operations (deprecated) ----\n\n offset(dx: number, dy: number) {\n warnDeprecatedPathMethod(\n \"offset\",\n \"Use Skia.PathBuilder.Make().offset() instead.\"\n );\n this.ref.offset(dx, dy);\n return this;\n }\n\n transform(m: InputMatrix) {\n warnDeprecatedPathMethod(\n \"transform\",\n \"Use Skia.PathBuilder.Make().transform() instead.\"\n );\n const matrix = toMatrix3x3(m);\n this.ref.transform(matrix);\n return this;\n }\n\n makeAsWinding() {\n warnDeprecatedPathMethod(\n \"makeAsWinding\",\n \"Use Skia.Path.AsWinding(path) instead.\"\n );\n const path = this.asPath();\n const result = path.makeAsWinding();\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n simplify() {\n warnDeprecatedPathMethod(\"simplify\", \"Use Skia.Path.Simplify(path) instead.\");\n const path = this.asPath();\n const result = path.makeSimplified();\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n op(path: SkPath, op: PathOp) {\n warnDeprecatedPathMethod(\"op\", \"Use Skia.Path.MakeFromOp() instead.\");\n const self = this.asPath();\n const other = JsiSkPath.fromValue<CKPathBuilder>(path).snapshot();\n const result = self.makeCombined(\n other,\n getEnum(this.CanvasKit, \"PathOp\", op)\n );\n self.delete();\n other.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n dash(on: number, off: number, phase: number) {\n warnDeprecatedPathMethod(\n \"dash\",\n \"Use Skia.Path.Dash(path, on, off, phase) instead.\"\n );\n const path = this.asPath();\n const result = path.makeDashed(on, off, phase);\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n stroke(opts?: StrokeOpts) {\n warnDeprecatedPathMethod(\"stroke\", \"Use Skia.Path.Stroke(path, opts) instead.\");\n const path = this.asPath();\n const result = path.makeStroked(\n opts === undefined\n ? undefined\n : {\n width: opts.width,\n // eslint-disable-next-line camelcase\n miter_limit: opts.miter_limit,\n precision: opts.precision,\n join: optEnum(this.CanvasKit, \"StrokeJoin\", opts.join),\n cap: optEnum(this.CanvasKit, \"StrokeCap\", opts.cap),\n }\n );\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n trim(start: number, stop: number, isComplement: boolean) {\n warnDeprecatedPathMethod(\n \"trim\",\n \"Use Skia.Path.Trim(path, start, end, isComplement) instead.\"\n );\n const startT = Math.min(Math.max(start, 0), 1);\n const stopT = Math.min(Math.max(stop, 0), 1);\n if (startT === 0 && stopT === 1 && !isComplement) {\n return this;\n }\n const path = this.asPath();\n const result = path.makeTrimmed(startT, stopT, isComplement);\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n // ---- Query methods (use snapshot for read-only) ----\n\n countPoints() {\n return this.ref.countPoints();\n }\n\n computeTightBounds(): SkRect {\n const path = this.asPath();\n const result = new JsiSkRect(this.CanvasKit, path.computeTightBounds());\n path.delete();\n return result;\n }\n\n contains(x: number, y: number) {\n const path = this.asPath();\n const result = path.contains(x, y);\n path.delete();\n return result;\n }\n\n copy() {\n const path = this.asPath();\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n equals(other: SkPath) {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(other).snapshot();\n const result = p1.equals(p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n getBounds() {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n getFillType(): FillType {\n const path = this.asPath();\n const result = path.getFillType().value;\n path.delete();\n return result;\n }\n\n getPoint(index: number): SkPoint {\n const path = this.asPath();\n const result = new JsiSkPoint(this.CanvasKit, path.getPoint(index));\n path.delete();\n return result;\n }\n\n isEmpty() {\n return this.ref.isEmpty();\n }\n\n isVolatile() {\n return false;\n }\n\n getLastPt() {\n const count = this.ref.countPoints();\n if (count === 0) {\n return { x: 0, y: 0 };\n }\n const path = this.asPath();\n const pt = path.getPoint(count - 1);\n path.delete();\n return { x: pt[0], y: pt[1] };\n }\n\n toSVGString() {\n const path = this.asPath();\n const result = path.toSVGString();\n path.delete();\n return result;\n }\n\n isInterpolatable(path2: SkPath): boolean {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(path2).snapshot();\n const result = this.CanvasKit.Path.CanInterpolate(p1, p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n interpolate(end: SkPath, weight: number, output?: SkPath): SkPath | null {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(end).snapshot();\n const path = this.CanvasKit.Path.MakeFromPathInterpolation(p1, p2, weight);\n p1.delete();\n p2.delete();\n if (path === null) {\n return null;\n }\n if (output) {\n const outRef = output as JsiSkPath;\n const old = outRef.ref;\n outRef.ref = new this.CanvasKit.PathBuilder(path);\n path.delete();\n old.delete();\n return output;\n }\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n toCmds() {\n const path = this.asPath();\n const cmds = path.toCmds();\n path.delete();\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_types","require","_Host","_JsiSkPoint","_JsiSkRect","_JsiSkRRect","_JsiSkMatrix","CommandCount","PathVerb","Move","Line","Quad","Conic","Cubic","Close","shownDeprecationWarnings","Set","warnDeprecatedPathMethod","methodName","suggestion","has","add","console","warn","toMatrix3x3","m","matrix","JsiSkMatrix","Array","from","fromValue","length","Error","exports","JsiSkPath","HostObject","constructor","CanvasKit","ref","asPath","snapshot","pathFromValue","value","addPath","src","extend","srcBuilder","srcPath","args","delete","addArc","oval","startAngleInDegrees","sweepAngleInDegrees","JsiSkRect","addOval","isCCW","startIndex","addPoly","points","close","addPolygon","map","p","JsiSkPoint","flat","addRect","rect","addRRect","rrect","JsiSkRRect","addCircle","x","y","r","moveTo","rMoveTo","lineTo","rLineTo","quadTo","x1","y1","x2","y2","rQuadTo","conicTo","w","rConicTo","cubicTo","cpx1","cpy1","cpx2","cpy2","rCubicTo","reset","newBuilder","PathBuilder","rewind","arcToOval","forceMoveTo","arcToRotated","rx","ry","xAxisRotateInDegrees","useSmallArc","rArcTo","dx","dy","arcToTangent","radius","setFillType","fill","getEnum","setIsVolatile","_volatile","offset","transform","makeAsWinding","path","result","old","simplify","makeSimplified","op","self","other","makeCombined","dash","on","off","phase","makeDashed","stroke","opts","makeStroked","undefined","width","miter_limit","precision","join","optEnum","cap","trim","start","stop","isComplement","startT","Math","min","max","stopT","makeTrimmed","countPoints","computeTightBounds","contains","copy","equals","p1","p2","getBounds","getFillType","getPoint","index","isEmpty","isVolatile","getLastPt","count","pt","toSVGString","isInterpolatable","path2","Path","CanInterpolate","interpolate","end","weight","output","MakeFromPathInterpolation","outRef","toCmds","cmds","reduce","acc","cmd","i","push","current"],"sources":["JsiSkPath.ts"],"sourcesContent":["import type { CanvasKit, PathBuilder as CKPathBuilder } 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 InputRRect,\n StrokeOpts,\n InputMatrix,\n} from \"../types\";\n\nimport { getEnum, HostObject, optEnum } from \"./Host\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\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\n// Track which deprecation warnings have been shown to avoid spam\nconst shownDeprecationWarnings = new Set<string>();\n\nconst warnDeprecatedPathMethod = (\n methodName: string,\n suggestion: string\n): void => {\n if (shownDeprecationWarnings.has(methodName)) {\n return;\n }\n shownDeprecationWarnings.add(methodName);\n console.warn(\n `[react-native-skia] SkPath.${methodName}() is deprecated and will be removed in a future release. ${suggestion} See migration guide: https://shopify.github.io/react-native-skia/docs/shapes/path-migration`\n );\n};\n\nexport const toMatrix3x3 = (m: InputMatrix): number[] => {\n let matrix =\n m instanceof JsiSkMatrix\n ? Array.from(JsiSkMatrix.fromValue<Float32Array>(m))\n : (m as Exclude<InputMatrix, SkMatrix>);\n if (matrix.length === 16) {\n matrix = [\n matrix[0],\n matrix[1],\n matrix[3],\n matrix[4],\n matrix[5],\n matrix[7],\n matrix[12],\n matrix[13],\n matrix[15],\n ];\n } else if (matrix.length !== 9) {\n throw new Error(`Invalid matrix length: ${matrix.length}`);\n }\n return matrix as number[];\n};\n\n/**\n * SkPath wraps a CK PathBuilder internally, providing both mutable building\n * methods and immutable query methods. Use snapshot() internally to get\n * an immutable CK Path for read-only operations.\n */\nexport class JsiSkPath\n extends HostObject<CKPathBuilder, \"Path\">\n implements SkPath\n{\n constructor(CanvasKit: CanvasKit, ref: CKPathBuilder) {\n super(CanvasKit, ref, \"Path\");\n }\n\n /** Returns an immutable CK Path snapshot for read-only operations. */\n private asPath() {\n return this.ref.snapshot();\n }\n\n /** Extract an immutable CK Path from a JsiSkPath value (for CK interop). */\n static pathFromValue(value: SkPath) {\n return JsiSkPath.fromValue<CKPathBuilder>(value).snapshot();\n }\n\n // ---- Mutable building methods (deprecated) ----\n\n addPath(src: SkPath, matrix?: SkMatrix, extend = false) {\n warnDeprecatedPathMethod(\n \"addPath\",\n \"Use Skia.PathBuilder.Make().addPath() instead.\"\n );\n const srcBuilder = JsiSkPath.fromValue<CKPathBuilder>(src);\n const srcPath = srcBuilder.snapshot();\n const args = [\n srcPath,\n ...(matrix ? JsiSkMatrix.fromValue<Float32Array>(matrix) : []),\n extend,\n ];\n this.ref.addPath(...args);\n srcPath.delete();\n return this;\n }\n\n addArc(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number\n ) {\n warnDeprecatedPathMethod(\n \"addArc\",\n \"Use Skia.PathBuilder.Make().addArc() instead.\"\n );\n this.ref.addArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees\n );\n return this;\n }\n\n addOval(oval: SkRect, isCCW?: boolean, startIndex?: number) {\n warnDeprecatedPathMethod(\n \"addOval\",\n \"Use Skia.Path.Oval() or Skia.PathBuilder.Make().addOval() instead.\"\n );\n this.ref.addOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n isCCW,\n startIndex\n );\n return this;\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n warnDeprecatedPathMethod(\n \"addPoly\",\n \"Use Skia.Path.Polygon() or Skia.PathBuilder.Make().addPoly() instead.\"\n );\n this.ref.addPolygon(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return this;\n }\n\n addRect(rect: SkRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRect\",\n \"Use Skia.Path.Rect() or Skia.PathBuilder.Make().addRect() instead.\"\n );\n this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n return this;\n }\n\n addRRect(rrect: InputRRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRRect\",\n \"Use Skia.Path.RRect() or Skia.PathBuilder.Make().addRRect() instead.\"\n );\n this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return this;\n }\n\n addCircle(x: number, y: number, r: number) {\n warnDeprecatedPathMethod(\n \"addCircle\",\n \"Use Skia.Path.Circle() or Skia.PathBuilder.Make().addCircle() instead.\"\n );\n this.ref.addCircle(x, y, r);\n return this;\n }\n\n moveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"moveTo\",\n \"Use Skia.PathBuilder.Make().moveTo() instead.\"\n );\n this.ref.moveTo(x, y);\n return this;\n }\n\n rMoveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rMoveTo\",\n \"Use Skia.PathBuilder.Make().rMoveTo() instead.\"\n );\n this.ref.rMoveTo(x, y);\n return this;\n }\n\n lineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"lineTo\",\n \"Use Skia.PathBuilder.Make().lineTo() instead.\"\n );\n this.ref.lineTo(x, y);\n return this;\n }\n\n rLineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rLineTo\",\n \"Use Skia.PathBuilder.Make().rLineTo() instead.\"\n );\n this.ref.rLineTo(x, y);\n return this;\n }\n\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"quadTo\",\n \"Use Skia.PathBuilder.Make().quadTo() instead.\"\n );\n this.ref.quadTo(x1, y1, x2, y2);\n return this;\n }\n\n rQuadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"rQuadTo\",\n \"Use Skia.PathBuilder.Make().rQuadTo() instead.\"\n );\n this.ref.rQuadTo(x1, y1, x2, y2);\n return this;\n }\n\n conicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"conicTo\",\n \"Use Skia.PathBuilder.Make().conicTo() instead.\"\n );\n this.ref.conicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n rConicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"rConicTo\",\n \"Use Skia.PathBuilder.Make().rConicTo() instead.\"\n );\n this.ref.rConicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n cubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n warnDeprecatedPathMethod(\n \"cubicTo\",\n \"Use Skia.PathBuilder.Make().cubicTo() instead.\"\n );\n this.ref.cubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\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 warnDeprecatedPathMethod(\n \"rCubicTo\",\n \"Use Skia.PathBuilder.Make().rCubicTo() instead.\"\n );\n this.ref.rCubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n close() {\n warnDeprecatedPathMethod(\n \"close\",\n \"Use Skia.PathBuilder.Make().close() instead.\"\n );\n this.ref.close();\n return this;\n }\n\n reset() {\n warnDeprecatedPathMethod(\n \"reset\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n // CK PathBuilder has no reset — recreate\n const newBuilder = new this.CanvasKit.PathBuilder();\n if (\n this.ref !== null &&\n typeof this.ref === \"object\" &&\n \"delete\" in this.ref &&\n typeof this.ref.delete === \"function\"\n ) {\n this.ref.delete();\n }\n this.ref = newBuilder;\n return this;\n }\n\n rewind() {\n warnDeprecatedPathMethod(\n \"rewind\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n return this.reset();\n }\n\n arcToOval(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number,\n forceMoveTo: boolean\n ) {\n warnDeprecatedPathMethod(\n \"arcToOval\",\n \"Use Skia.PathBuilder.Make().arcToOval() instead.\"\n );\n this.ref.arcToOval(\n JsiSkRect.fromValue(this.CanvasKit, 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 warnDeprecatedPathMethod(\n \"arcToRotated\",\n \"Use Skia.PathBuilder.Make().arcToRotated() instead.\"\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 rArcTo(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n dx: number,\n dy: number\n ) {\n warnDeprecatedPathMethod(\n \"rArcTo\",\n \"Use Skia.PathBuilder.Make().rArcTo() instead.\"\n );\n this.ref.rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy);\n return this;\n }\n\n arcToTangent(x1: number, y1: number, x2: number, y2: number, radius: number) {\n warnDeprecatedPathMethod(\n \"arcToTangent\",\n \"Use Skia.PathBuilder.Make().arcToTangent() instead.\"\n );\n this.ref.arcToTangent(x1, y1, x2, y2, radius);\n return this;\n }\n\n setFillType(fill: FillType) {\n warnDeprecatedPathMethod(\n \"setFillType\",\n \"Use Skia.PathBuilder.Make().setFillType() instead.\"\n );\n this.ref.setFillType(getEnum(this.CanvasKit, \"FillType\", fill));\n return this;\n }\n\n setIsVolatile(_volatile: boolean) {\n warnDeprecatedPathMethod(\n \"setIsVolatile\",\n \"Use Skia.PathBuilder.Make().setIsVolatile() instead.\"\n );\n // Not supported in CK PathBuilder — no-op\n return this;\n }\n\n // ---- Mutable path operations (deprecated) ----\n\n offset(dx: number, dy: number) {\n warnDeprecatedPathMethod(\n \"offset\",\n \"Use Skia.PathBuilder.Make().offset() instead.\"\n );\n this.ref.offset(dx, dy);\n return this;\n }\n\n transform(m: InputMatrix) {\n warnDeprecatedPathMethod(\n \"transform\",\n \"Use Skia.PathBuilder.Make().transform() instead.\"\n );\n const matrix = toMatrix3x3(m);\n this.ref.transform(matrix);\n return this;\n }\n\n makeAsWinding() {\n warnDeprecatedPathMethod(\n \"makeAsWinding\",\n \"Use Skia.Path.AsWinding(path) instead.\"\n );\n const path = this.asPath();\n const result = path.makeAsWinding();\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n simplify() {\n warnDeprecatedPathMethod(\n \"simplify\",\n \"Use Skia.Path.Simplify(path) instead.\"\n );\n const path = this.asPath();\n const result = path.makeSimplified();\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n op(path: SkPath, op: PathOp) {\n warnDeprecatedPathMethod(\"op\", \"Use Skia.Path.MakeFromOp() instead.\");\n const self = this.asPath();\n const other = JsiSkPath.fromValue<CKPathBuilder>(path).snapshot();\n const result = self.makeCombined(\n other,\n getEnum(this.CanvasKit, \"PathOp\", op)\n );\n self.delete();\n other.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n dash(on: number, off: number, phase: number) {\n warnDeprecatedPathMethod(\n \"dash\",\n \"Use Skia.Path.Dash(path, on, off, phase) instead.\"\n );\n const path = this.asPath();\n const result = path.makeDashed(on, off, phase);\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n stroke(opts?: StrokeOpts) {\n warnDeprecatedPathMethod(\n \"stroke\",\n \"Use Skia.Path.Stroke(path, opts) instead.\"\n );\n const path = this.asPath();\n const result = path.makeStroked(\n opts === undefined\n ? undefined\n : {\n width: opts.width,\n // eslint-disable-next-line camelcase\n miter_limit: opts.miter_limit,\n precision: opts.precision,\n join: optEnum(this.CanvasKit, \"StrokeJoin\", opts.join),\n cap: optEnum(this.CanvasKit, \"StrokeCap\", opts.cap),\n }\n );\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n trim(start: number, stop: number, isComplement: boolean) {\n warnDeprecatedPathMethod(\n \"trim\",\n \"Use Skia.Path.Trim(path, start, end, isComplement) instead.\"\n );\n const startT = Math.min(Math.max(start, 0), 1);\n const stopT = Math.min(Math.max(stop, 0), 1);\n if (startT === 0 && stopT === 1 && !isComplement) {\n return this;\n }\n const path = this.asPath();\n const result = path.makeTrimmed(startT, stopT, isComplement);\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n // ---- Query methods (use snapshot for read-only) ----\n\n countPoints() {\n return this.ref.countPoints();\n }\n\n computeTightBounds(): SkRect {\n const path = this.asPath();\n const result = new JsiSkRect(this.CanvasKit, path.computeTightBounds());\n path.delete();\n return result;\n }\n\n contains(x: number, y: number) {\n const path = this.asPath();\n const result = path.contains(x, y);\n path.delete();\n return result;\n }\n\n copy() {\n const path = this.asPath();\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n equals(other: SkPath) {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(other).snapshot();\n const result = p1.equals(p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n getBounds() {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n getFillType(): FillType {\n const path = this.asPath();\n const result = path.getFillType().value;\n path.delete();\n return result;\n }\n\n getPoint(index: number): SkPoint {\n const path = this.asPath();\n const result = new JsiSkPoint(this.CanvasKit, path.getPoint(index));\n path.delete();\n return result;\n }\n\n isEmpty() {\n return this.ref.isEmpty();\n }\n\n isVolatile() {\n return false;\n }\n\n getLastPt() {\n const count = this.ref.countPoints();\n if (count === 0) {\n return { x: 0, y: 0 };\n }\n const path = this.asPath();\n const pt = path.getPoint(count - 1);\n path.delete();\n return { x: pt[0], y: pt[1] };\n }\n\n toSVGString() {\n const path = this.asPath();\n const result = path.toSVGString();\n path.delete();\n return result;\n }\n\n isInterpolatable(path2: SkPath): boolean {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(path2).snapshot();\n const result = this.CanvasKit.Path.CanInterpolate(p1, p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n interpolate(end: SkPath, weight: number, output?: SkPath): SkPath | null {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(end).snapshot();\n const path = this.CanvasKit.Path.MakeFromPathInterpolation(p1, p2, weight);\n p1.delete();\n p2.delete();\n if (path === null) {\n return null;\n }\n if (output) {\n const outRef = output as JsiSkPath;\n const old = outRef.ref;\n outRef.ref = new this.CanvasKit.PathBuilder(path);\n path.delete();\n old.delete();\n return output;\n }\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n toCmds() {\n const path = this.asPath();\n const cmds = path.toCmds();\n path.delete();\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"],"mappings":"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","ignoreList":[]}
@@ -14,7 +14,16 @@ export interface NativeBufferFactory {
14
14
  */
15
15
  MakeFromImage: (image: SkImage) => NativeBuffer;
16
16
  /**
17
- * Release a native buffer that was created with `MakeFromImage`.
17
+ * Create a native buffer of the given size filled with a procedural test
18
+ * pattern (RGB gradient + diagonal stripes), entirely on the CPU. Useful for
19
+ * examples and tests that need a buffer to feed into
20
+ * `GPUDevice.importExternalTexture` without a camera/video source. Release it
21
+ * with `Release`.
22
+ */
23
+ MakeTestBuffer: (width: number, height: number) => NativeBuffer;
24
+ /**
25
+ * Release a native buffer that was created with `MakeFromImage` or
26
+ * `MakeTestBuffer`.
18
27
  */
19
28
  Release: (nativeBuffer: NativeBuffer) => void;
20
29
  }
@@ -1 +1 @@
1
- {"version":3,"names":["CanvasKitWebGLBuffer","isNativeBufferAddr","buffer","BigInt","isNativeBufferWeb","HTMLVideoElement","HTMLCanvasElement","ImageBitmap","OffscreenCanvas","VideoFrame","HTMLImageElement","SVGImageElement","isNativeBufferNode","ArrayBuffer"],"sources":["NativeBufferFactory.ts"],"sourcesContent":["import type { SkImage } from \"../Image\";\n\nexport abstract class CanvasKitWebGLBuffer {}\n\nexport type NativeBuffer<\n T extends\n | bigint\n | ArrayBuffer\n | CanvasImageSource\n | CanvasKitWebGLBuffer\n | unknown = unknown,\n> = T;\n\nexport type NativeBufferAddr = NativeBuffer<bigint>;\nexport type NativeBufferWeb = NativeBuffer<CanvasImageSource>;\nexport type NativeBufferNode = NativeBuffer<ArrayBuffer>;\n\nexport const isNativeBufferAddr = (\n buffer: NativeBuffer\n): buffer is NativeBufferAddr => buffer instanceof BigInt;\nexport const isNativeBufferWeb = (\n buffer: NativeBuffer\n): buffer is NativeBufferWeb =>\n buffer instanceof HTMLVideoElement ||\n buffer instanceof HTMLCanvasElement ||\n buffer instanceof ImageBitmap ||\n buffer instanceof OffscreenCanvas ||\n (typeof VideoFrame !== \"undefined\" && buffer instanceof VideoFrame) ||\n buffer instanceof HTMLImageElement ||\n buffer instanceof SVGImageElement ||\n buffer instanceof CanvasKitWebGLBuffer;\n\nexport const isNativeBufferNode = (\n buffer: NativeBuffer\n): buffer is NativeBufferNode => buffer instanceof ArrayBuffer;\n\nexport interface NativeBufferFactory {\n /**\n * Copy pixels to a native buffer.\n */\n MakeFromImage: (image: SkImage) => NativeBuffer;\n /**\n * Release a native buffer that was created with `MakeFromImage`.\n */\n Release: (nativeBuffer: NativeBuffer) => void;\n}\n"],"mappings":"AAEA,OAAO,MAAeA,oBAAoB,CAAC;AAe3C,OAAO,MAAMC,kBAAkB,GAC7BC,MAAoB,IACWA,MAAM,YAAYC,MAAM;AACzD,OAAO,MAAMC,iBAAiB,GAC5BF,MAAoB,IAEpBA,MAAM,YAAYG,gBAAgB,IAClCH,MAAM,YAAYI,iBAAiB,IACnCJ,MAAM,YAAYK,WAAW,IAC7BL,MAAM,YAAYM,eAAe,IAChC,OAAOC,UAAU,KAAK,WAAW,IAAIP,MAAM,YAAYO,UAAW,IACnEP,MAAM,YAAYQ,gBAAgB,IAClCR,MAAM,YAAYS,eAAe,IACjCT,MAAM,YAAYF,oBAAoB;AAExC,OAAO,MAAMY,kBAAkB,GAC7BV,MAAoB,IACWA,MAAM,YAAYW,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["CanvasKitWebGLBuffer","isNativeBufferAddr","buffer","BigInt","isNativeBufferWeb","HTMLVideoElement","HTMLCanvasElement","ImageBitmap","OffscreenCanvas","VideoFrame","HTMLImageElement","SVGImageElement","isNativeBufferNode","ArrayBuffer"],"sources":["NativeBufferFactory.ts"],"sourcesContent":["import type { SkImage } from \"../Image\";\n\nexport abstract class CanvasKitWebGLBuffer {}\n\nexport type NativeBuffer<\n T extends\n | bigint\n | ArrayBuffer\n | CanvasImageSource\n | CanvasKitWebGLBuffer\n | unknown = unknown,\n> = T;\n\nexport type NativeBufferAddr = NativeBuffer<bigint>;\nexport type NativeBufferWeb = NativeBuffer<CanvasImageSource>;\nexport type NativeBufferNode = NativeBuffer<ArrayBuffer>;\n\nexport const isNativeBufferAddr = (\n buffer: NativeBuffer\n): buffer is NativeBufferAddr => buffer instanceof BigInt;\nexport const isNativeBufferWeb = (\n buffer: NativeBuffer\n): buffer is NativeBufferWeb =>\n buffer instanceof HTMLVideoElement ||\n buffer instanceof HTMLCanvasElement ||\n buffer instanceof ImageBitmap ||\n buffer instanceof OffscreenCanvas ||\n (typeof VideoFrame !== \"undefined\" && buffer instanceof VideoFrame) ||\n buffer instanceof HTMLImageElement ||\n buffer instanceof SVGImageElement ||\n buffer instanceof CanvasKitWebGLBuffer;\n\nexport const isNativeBufferNode = (\n buffer: NativeBuffer\n): buffer is NativeBufferNode => buffer instanceof ArrayBuffer;\n\nexport interface NativeBufferFactory {\n /**\n * Copy pixels to a native buffer.\n */\n MakeFromImage: (image: SkImage) => NativeBuffer;\n /**\n * Create a native buffer of the given size filled with a procedural test\n * pattern (RGB gradient + diagonal stripes), entirely on the CPU. Useful for\n * examples and tests that need a buffer to feed into\n * `GPUDevice.importExternalTexture` without a camera/video source. Release it\n * with `Release`.\n */\n MakeTestBuffer: (width: number, height: number) => NativeBuffer;\n /**\n * Release a native buffer that was created with `MakeFromImage` or\n * `MakeTestBuffer`.\n */\n Release: (nativeBuffer: NativeBuffer) => void;\n}\n"],"mappings":"AAEA,OAAO,MAAeA,oBAAoB,CAAC;AAe3C,OAAO,MAAMC,kBAAkB,GAC7BC,MAAoB,IACWA,MAAM,YAAYC,MAAM;AACzD,OAAO,MAAMC,iBAAiB,GAC5BF,MAAoB,IAEpBA,MAAM,YAAYG,gBAAgB,IAClCH,MAAM,YAAYI,iBAAiB,IACnCJ,MAAM,YAAYK,WAAW,IAC7BL,MAAM,YAAYM,eAAe,IAChC,OAAOC,UAAU,KAAK,WAAW,IAAIP,MAAM,YAAYO,UAAW,IACnEP,MAAM,YAAYQ,gBAAgB,IAClCR,MAAM,YAAYS,eAAe,IACjCT,MAAM,YAAYF,oBAAoB;AAExC,OAAO,MAAMY,kBAAkB,GAC7BV,MAAoB,IACWA,MAAM,YAAYW,WAAW","ignoreList":[]}
@@ -0,0 +1,88 @@
1
+ import type { NativeBuffer } from "./NativeBuffer";
2
+ /**
3
+ * Descriptor for {@link GPUDevice.importExternalTexture} when the source is a
4
+ * Skia NativeBuffer (Skia has no WebCodecs `VideoFrame`).
5
+ *
6
+ * `source` is the handle returned by `Skia.NativeBuffer.MakeFromImage`: a
7
+ * `CVPixelBufferRef` on Apple, an `AHardwareBuffer*` on Android. The caller
8
+ * owns its lifetime (release it with `Skia.NativeBuffer.Release`) and must keep
9
+ * it alive until the imported texture is destroyed.
10
+ */
11
+ export interface SkiaGPUExternalTextureDescriptor extends GPUObjectDescriptorBase {
12
+ source: NativeBuffer;
13
+ /** Rotation applied while sampling, in degrees. One of 0 | 90 | 180 | 270. */
14
+ rotation?: number;
15
+ /** Mirror horizontally while sampling. */
16
+ mirrored?: boolean;
17
+ }
18
+ /**
19
+ * Descriptor for {@link GPUDevice.importSharedTextureMemory}. `handle` is the
20
+ * NativeBuffer returned by `Skia.NativeBuffer.MakeFromImage` (see
21
+ * {@link SkiaGPUExternalTextureDescriptor} for the platform-specific types and
22
+ * lifetime rules).
23
+ */
24
+ export interface GPUSharedTextureMemoryDescriptor extends GPUObjectDescriptorBase {
25
+ handle: NativeBuffer;
26
+ }
27
+ /**
28
+ * Shared texture memory imported from a platform native buffer via
29
+ * {@link GPUDevice.importSharedTextureMemory}. Create a texture that aliases
30
+ * the memory, then bracket the GPU work that touches it with
31
+ * {@link GPUSharedTextureMemory.beginAccess} / {@link GPUSharedTextureMemory.endAccess}.
32
+ */
33
+ export interface GPUSharedTextureMemory extends GPUObjectBase {
34
+ /** Create a texture that aliases the shared memory. */
35
+ createTexture(descriptor?: GPUTextureDescriptor): GPUTexture;
36
+ /**
37
+ * Acquire the memory for GPU access. `initialized` marks whether the existing
38
+ * contents should be preserved (pass `true` for an already-rendered frame).
39
+ * Returns `false` if access could not be acquired.
40
+ */
41
+ beginAccess(texture: GPUTexture, initialized: boolean): boolean;
42
+ /**
43
+ * Release the memory after the GPU work that accessed it has been submitted.
44
+ * Returns `false` on failure.
45
+ */
46
+ endAccess(texture: GPUTexture): boolean;
47
+ }
48
+ /**
49
+ * Dawn-specific toggles, passed via {@link GPUDeviceDescriptor.dawnToggles} to
50
+ * `adapter.requestDevice`. This is a non-spec, Dawn-only extension; see Dawn's
51
+ * toggle list for valid names.
52
+ */
53
+ export interface GPUDawnTogglesDescriptor {
54
+ enabledToggles?: string[];
55
+ disabledToggles?: string[];
56
+ }
57
+ declare global {
58
+ interface GPUDeviceDescriptor {
59
+ /** Dawn-specific toggles (Skia/Graphite extension, non-spec). */
60
+ dawnToggles?: GPUDawnTogglesDescriptor;
61
+ }
62
+ interface GPUExternalTexture {
63
+ /**
64
+ * Skia extension: end the imported buffer's shared-memory access window and
65
+ * release the underlying resources. Call right after the `queue.submit()`
66
+ * that sampled this texture (never before). Idempotent, and also runs at
67
+ * garbage collection as a fallback.
68
+ */
69
+ destroy(): void;
70
+ }
71
+ interface GPUDevice {
72
+ /**
73
+ * Skia extension: import a NativeBuffer (from
74
+ * `Skia.NativeBuffer.MakeFromImage`) as a {@link GPUExternalTexture}, sampled
75
+ * with `texture_external` in WGSL. The returned texture owns the
76
+ * shared-memory access window; call `destroy()` on it after the sampling
77
+ * `queue.submit()`.
78
+ */
79
+ importExternalTexture(descriptor: SkiaGPUExternalTextureDescriptor): GPUExternalTexture;
80
+ /**
81
+ * Skia extension: import a NativeBuffer (from
82
+ * `Skia.NativeBuffer.MakeFromImage`) as {@link GPUSharedTextureMemory}, the
83
+ * lower-level path that lets you create an aliasing texture and manage the
84
+ * begin/end access window yourself.
85
+ */
86
+ importSharedTextureMemory(descriptor: GPUSharedTextureMemoryDescriptor): GPUSharedTextureMemory;
87
+ }
88
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WebGPU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["WebGPU.ts"],"sourcesContent":["import type { NativeBuffer } from \"./NativeBuffer\";\n\n// Skia's Graphite/Dawn backend extends the standard WebGPU API (typed by\n// @webgpu/types) with a few Skia- and Dawn-specific entry points. These are\n// only available on native (SK_GRAPHITE) builds, reachable through\n// `Skia.getDevice()`.\n//\n// The exported interfaces below describe the descriptors and objects those\n// entry points use; the `declare global` block augments the standard WebGPU\n// interfaces so the new methods are typed without casting to `any`.\n\n/**\n * Descriptor for {@link GPUDevice.importExternalTexture} when the source is a\n * Skia NativeBuffer (Skia has no WebCodecs `VideoFrame`).\n *\n * `source` is the handle returned by `Skia.NativeBuffer.MakeFromImage`: a\n * `CVPixelBufferRef` on Apple, an `AHardwareBuffer*` on Android. The caller\n * owns its lifetime (release it with `Skia.NativeBuffer.Release`) and must keep\n * it alive until the imported texture is destroyed.\n */\nexport interface SkiaGPUExternalTextureDescriptor extends GPUObjectDescriptorBase {\n source: NativeBuffer;\n /** Rotation applied while sampling, in degrees. One of 0 | 90 | 180 | 270. */\n rotation?: number;\n /** Mirror horizontally while sampling. */\n mirrored?: boolean;\n}\n\n/**\n * Descriptor for {@link GPUDevice.importSharedTextureMemory}. `handle` is the\n * NativeBuffer returned by `Skia.NativeBuffer.MakeFromImage` (see\n * {@link SkiaGPUExternalTextureDescriptor} for the platform-specific types and\n * lifetime rules).\n */\nexport interface GPUSharedTextureMemoryDescriptor extends GPUObjectDescriptorBase {\n handle: NativeBuffer;\n}\n\n/**\n * Shared texture memory imported from a platform native buffer via\n * {@link GPUDevice.importSharedTextureMemory}. Create a texture that aliases\n * the memory, then bracket the GPU work that touches it with\n * {@link GPUSharedTextureMemory.beginAccess} / {@link GPUSharedTextureMemory.endAccess}.\n */\nexport interface GPUSharedTextureMemory extends GPUObjectBase {\n /** Create a texture that aliases the shared memory. */\n createTexture(descriptor?: GPUTextureDescriptor): GPUTexture;\n /**\n * Acquire the memory for GPU access. `initialized` marks whether the existing\n * contents should be preserved (pass `true` for an already-rendered frame).\n * Returns `false` if access could not be acquired.\n */\n beginAccess(texture: GPUTexture, initialized: boolean): boolean;\n /**\n * Release the memory after the GPU work that accessed it has been submitted.\n * Returns `false` on failure.\n */\n endAccess(texture: GPUTexture): boolean;\n}\n\n/**\n * Dawn-specific toggles, passed via {@link GPUDeviceDescriptor.dawnToggles} to\n * `adapter.requestDevice`. This is a non-spec, Dawn-only extension; see Dawn's\n * toggle list for valid names.\n */\nexport interface GPUDawnTogglesDescriptor {\n enabledToggles?: string[];\n disabledToggles?: string[];\n}\n\ndeclare global {\n interface GPUDeviceDescriptor {\n /** Dawn-specific toggles (Skia/Graphite extension, non-spec). */\n dawnToggles?: GPUDawnTogglesDescriptor;\n }\n\n interface GPUExternalTexture {\n /**\n * Skia extension: end the imported buffer's shared-memory access window and\n * release the underlying resources. Call right after the `queue.submit()`\n * that sampled this texture (never before). Idempotent, and also runs at\n * garbage collection as a fallback.\n */\n destroy(): void;\n }\n\n interface GPUDevice {\n /**\n * Skia extension: import a NativeBuffer (from\n * `Skia.NativeBuffer.MakeFromImage`) as a {@link GPUExternalTexture}, sampled\n * with `texture_external` in WGSL. The returned texture owns the\n * shared-memory access window; call `destroy()` on it after the sampling\n * `queue.submit()`.\n */\n importExternalTexture(\n descriptor: SkiaGPUExternalTextureDescriptor\n ): GPUExternalTexture;\n /**\n * Skia extension: import a NativeBuffer (from\n * `Skia.NativeBuffer.MakeFromImage`) as {@link GPUSharedTextureMemory}, the\n * lower-level path that lets you create an aliasing texture and manage the\n * begin/end access window yourself.\n */\n importSharedTextureMemory(\n descriptor: GPUSharedTextureMemoryDescriptor\n ): GPUSharedTextureMemory;\n }\n}\n"],"mappings":"","ignoreList":[]}
@@ -30,6 +30,7 @@ export * from "./Size";
30
30
  export * from "./Paragraph";
31
31
  export * from "./Matrix4";
32
32
  export * from "./NativeBuffer";
33
+ export * from "./WebGPU";
33
34
  export * from "./Recorder";
34
35
  export * from "./Video";
35
36
  export * from "./Skottie";
@@ -30,6 +30,7 @@ export * from "./Size";
30
30
  export * from "./Paragraph";
31
31
  export * from "./Matrix4";
32
32
  export * from "./NativeBuffer";
33
+ export * from "./WebGPU";
33
34
  export * from "./Recorder";
34
35
  export * from "./Video";
35
36
  export * from "./Skottie";
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Picture\";\nexport * from \"./Data\";\nexport * from \"./SVG\";\nexport * from \"./Surface\";\nexport * from \"./Vertices\";\nexport * from \"./RuntimeEffect\";\nexport * from \"./Shader\";\nexport * from \"./Image\";\nexport * from \"./AnimatedImage\";\nexport * from \"./ColorFilter\";\nexport * from \"./ImageFilter\";\nexport * from \"./Font\";\nexport * from \"./Typeface\";\nexport * from \"./Paint\";\nexport * from \"./Path\";\nexport * from \"./Color\";\nexport * from \"./Canvas\";\nexport * from \"./ContourMeasure\";\nexport * from \"./MaskFilter\";\nexport * from \"./Matrix\";\nexport * from \"./PathEffect\";\nexport * from \"./Point\";\nexport * from \"./Rect\";\nexport * from \"./RRect\";\nexport * from \"./RSXform\";\nexport * from \"./JsiInstance\";\nexport * from \"./Skia\";\nexport * from \"./TextBlob\";\nexport * from \"./Size\";\nexport * from \"./Paragraph\";\nexport * from \"./Matrix4\";\nexport * from \"./NativeBuffer\";\nexport * from \"./Recorder\";\nexport * from \"./Video\";\nexport * from \"./Skottie\";\n"],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,cAAc,WAAW;AACzB,cAAc,YAAY;AAC1B,cAAc,iBAAiB;AAC/B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,iBAAiB;AAC/B,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,kBAAkB;AAChC,cAAc,cAAc;AAC5B,cAAc,UAAU;AACxB,cAAc,cAAc;AAC5B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,eAAe;AAC7B,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,WAAW;AACzB,cAAc,gBAAgB;AAC9B,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,WAAW","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Picture\";\nexport * from \"./Data\";\nexport * from \"./SVG\";\nexport * from \"./Surface\";\nexport * from \"./Vertices\";\nexport * from \"./RuntimeEffect\";\nexport * from \"./Shader\";\nexport * from \"./Image\";\nexport * from \"./AnimatedImage\";\nexport * from \"./ColorFilter\";\nexport * from \"./ImageFilter\";\nexport * from \"./Font\";\nexport * from \"./Typeface\";\nexport * from \"./Paint\";\nexport * from \"./Path\";\nexport * from \"./Color\";\nexport * from \"./Canvas\";\nexport * from \"./ContourMeasure\";\nexport * from \"./MaskFilter\";\nexport * from \"./Matrix\";\nexport * from \"./PathEffect\";\nexport * from \"./Point\";\nexport * from \"./Rect\";\nexport * from \"./RRect\";\nexport * from \"./RSXform\";\nexport * from \"./JsiInstance\";\nexport * from \"./Skia\";\nexport * from \"./TextBlob\";\nexport * from \"./Size\";\nexport * from \"./Paragraph\";\nexport * from \"./Matrix4\";\nexport * from \"./NativeBuffer\";\nexport * from \"./WebGPU\";\nexport * from \"./Recorder\";\nexport * from \"./Video\";\nexport * from \"./Skottie\";\n"],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,cAAc,WAAW;AACzB,cAAc,YAAY;AAC1B,cAAc,iBAAiB;AAC/B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,iBAAiB;AAC/B,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,kBAAkB;AAChC,cAAc,cAAc;AAC5B,cAAc,UAAU;AACxB,cAAc,cAAc;AAC5B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,eAAe;AAC7B,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,WAAW;AACzB,cAAc,gBAAgB;AAC9B,cAAc,UAAU;AACxB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,WAAW","ignoreList":[]}
@@ -4,5 +4,6 @@ import { Host } from "./Host";
4
4
  export declare class JsiSkNativeBufferFactory extends Host implements NativeBufferFactory {
5
5
  constructor(CanvasKit: CanvasKit);
6
6
  MakeFromImage(image: SkImage): NativeBuffer;
7
+ MakeTestBuffer(width: number, height: number): NativeBuffer;
7
8
  Release(_nativeBuffer: NativeBuffer): void;
8
9
  }
@@ -15,6 +15,25 @@ export class JsiSkNativeBufferFactory extends Host {
15
15
  ctx.putImageData(imageData, 0, 0);
16
16
  return canvas;
17
17
  }
18
+ MakeTestBuffer(width, height) {
19
+ const pixels = new Uint8ClampedArray(width * height * 4);
20
+ for (let y = 0; y < height; y++) {
21
+ for (let x = 0; x < width; x++) {
22
+ const i = (y * width + x) * 4;
23
+ pixels[i + 0] = Math.floor(x * 255 / Math.max(width - 1, 1));
24
+ pixels[i + 1] = Math.floor(y * 255 / Math.max(height - 1, 1));
25
+ pixels[i + 2] = x + y & 0x20 ? 220 : 30;
26
+ pixels[i + 3] = 0xff;
27
+ }
28
+ }
29
+ const canvas = new OffscreenCanvas(width, height);
30
+ const ctx = canvas.getContext("2d");
31
+ if (!ctx) {
32
+ throw new Error("Failed to get 2d context from canvas");
33
+ }
34
+ ctx.putImageData(new ImageData(pixels, width, height), 0, 0);
35
+ return canvas;
36
+ }
18
37
  Release(_nativeBuffer) {
19
38
  // it's a noop on Web
20
39
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Host","JsiSkNativeBufferFactory","constructor","CanvasKit","MakeFromImage","image","info","getImageInfo","uint8ClampedArray","Uint8ClampedArray","readPixels","imageData","ImageData","width","height","canvas","OffscreenCanvas","ctx","getContext","Error","putImageData","Release","_nativeBuffer"],"sources":["JsiSkNativeBufferFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type { NativeBuffer, NativeBufferFactory, SkImage } from \"../types\";\n\nimport { Host } from \"./Host\";\n\nexport class JsiSkNativeBufferFactory\n extends Host\n implements NativeBufferFactory\n{\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n MakeFromImage(image: SkImage): NativeBuffer {\n const info = image.getImageInfo();\n const uint8ClampedArray = new Uint8ClampedArray(image.readPixels()!);\n const imageData = new ImageData(uint8ClampedArray, info.width, info.height);\n const canvas = new OffscreenCanvas(info.width, info.height);\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to get 2d context from canvas\");\n }\n ctx.putImageData(imageData, 0, 0);\n return canvas;\n }\n\n Release(_nativeBuffer: NativeBuffer) {\n // it's a noop on Web\n }\n}\n"],"mappings":"AAIA,SAASA,IAAI,QAAQ,QAAQ;AAE7B,OAAO,MAAMC,wBAAwB,SAC3BD,IAAI,CAEd;EACEE,WAAWA,CAACC,SAAoB,EAAE;IAChC,KAAK,CAACA,SAAS,CAAC;EAClB;EAEAC,aAAaA,CAACC,KAAc,EAAgB;IAC1C,MAAMC,IAAI,GAAGD,KAAK,CAACE,YAAY,CAAC,CAAC;IACjC,MAAMC,iBAAiB,GAAG,IAAIC,iBAAiB,CAACJ,KAAK,CAACK,UAAU,CAAC,CAAE,CAAC;IACpE,MAAMC,SAAS,GAAG,IAAIC,SAAS,CAACJ,iBAAiB,EAAEF,IAAI,CAACO,KAAK,EAAEP,IAAI,CAACQ,MAAM,CAAC;IAC3E,MAAMC,MAAM,GAAG,IAAIC,eAAe,CAACV,IAAI,CAACO,KAAK,EAAEP,IAAI,CAACQ,MAAM,CAAC;IAC3D,MAAMG,GAAG,GAAGF,MAAM,CAACG,UAAU,CAAC,IAAI,CAAC;IACnC,IAAI,CAACD,GAAG,EAAE;MACR,MAAM,IAAIE,KAAK,CAAC,sCAAsC,CAAC;IACzD;IACAF,GAAG,CAACG,YAAY,CAACT,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACjC,OAAOI,MAAM;EACf;EAEAM,OAAOA,CAACC,aAA2B,EAAE;IACnC;EAAA;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["Host","JsiSkNativeBufferFactory","constructor","CanvasKit","MakeFromImage","image","info","getImageInfo","uint8ClampedArray","Uint8ClampedArray","readPixels","imageData","ImageData","width","height","canvas","OffscreenCanvas","ctx","getContext","Error","putImageData","MakeTestBuffer","pixels","y","x","i","Math","floor","max","Release","_nativeBuffer"],"sources":["JsiSkNativeBufferFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type { NativeBuffer, NativeBufferFactory, SkImage } from \"../types\";\n\nimport { Host } from \"./Host\";\n\nexport class JsiSkNativeBufferFactory\n extends Host\n implements NativeBufferFactory\n{\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n MakeFromImage(image: SkImage): NativeBuffer {\n const info = image.getImageInfo();\n const uint8ClampedArray = new Uint8ClampedArray(image.readPixels()!);\n const imageData = new ImageData(uint8ClampedArray, info.width, info.height);\n const canvas = new OffscreenCanvas(info.width, info.height);\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to get 2d context from canvas\");\n }\n ctx.putImageData(imageData, 0, 0);\n return canvas;\n }\n\n MakeTestBuffer(width: number, height: number): NativeBuffer {\n const pixels = new Uint8ClampedArray(width * height * 4);\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const i = (y * width + x) * 4;\n pixels[i + 0] = Math.floor((x * 255) / Math.max(width - 1, 1));\n pixels[i + 1] = Math.floor((y * 255) / Math.max(height - 1, 1));\n pixels[i + 2] = (x + y) & 0x20 ? 220 : 30;\n pixels[i + 3] = 0xff;\n }\n }\n const canvas = new OffscreenCanvas(width, height);\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to get 2d context from canvas\");\n }\n ctx.putImageData(new ImageData(pixels, width, height), 0, 0);\n return canvas;\n }\n\n Release(_nativeBuffer: NativeBuffer) {\n // it's a noop on Web\n }\n}\n"],"mappings":"AAIA,SAASA,IAAI,QAAQ,QAAQ;AAE7B,OAAO,MAAMC,wBAAwB,SAC3BD,IAAI,CAEd;EACEE,WAAWA,CAACC,SAAoB,EAAE;IAChC,KAAK,CAACA,SAAS,CAAC;EAClB;EAEAC,aAAaA,CAACC,KAAc,EAAgB;IAC1C,MAAMC,IAAI,GAAGD,KAAK,CAACE,YAAY,CAAC,CAAC;IACjC,MAAMC,iBAAiB,GAAG,IAAIC,iBAAiB,CAACJ,KAAK,CAACK,UAAU,CAAC,CAAE,CAAC;IACpE,MAAMC,SAAS,GAAG,IAAIC,SAAS,CAACJ,iBAAiB,EAAEF,IAAI,CAACO,KAAK,EAAEP,IAAI,CAACQ,MAAM,CAAC;IAC3E,MAAMC,MAAM,GAAG,IAAIC,eAAe,CAACV,IAAI,CAACO,KAAK,EAAEP,IAAI,CAACQ,MAAM,CAAC;IAC3D,MAAMG,GAAG,GAAGF,MAAM,CAACG,UAAU,CAAC,IAAI,CAAC;IACnC,IAAI,CAACD,GAAG,EAAE;MACR,MAAM,IAAIE,KAAK,CAAC,sCAAsC,CAAC;IACzD;IACAF,GAAG,CAACG,YAAY,CAACT,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACjC,OAAOI,MAAM;EACf;EAEAM,cAAcA,CAACR,KAAa,EAAEC,MAAc,EAAgB;IAC1D,MAAMQ,MAAM,GAAG,IAAIb,iBAAiB,CAACI,KAAK,GAAGC,MAAM,GAAG,CAAC,CAAC;IACxD,KAAK,IAAIS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,MAAM,EAAES,CAAC,EAAE,EAAE;MAC/B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGX,KAAK,EAAEW,CAAC,EAAE,EAAE;QAC9B,MAAMC,CAAC,GAAG,CAACF,CAAC,GAAGV,KAAK,GAAGW,CAAC,IAAI,CAAC;QAC7BF,MAAM,CAACG,CAAC,GAAG,CAAC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAAEH,CAAC,GAAG,GAAG,GAAIE,IAAI,CAACE,GAAG,CAACf,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9DS,MAAM,CAACG,CAAC,GAAG,CAAC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAAEJ,CAAC,GAAG,GAAG,GAAIG,IAAI,CAACE,GAAG,CAACd,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/DQ,MAAM,CAACG,CAAC,GAAG,CAAC,CAAC,GAAID,CAAC,GAAGD,CAAC,GAAI,IAAI,GAAG,GAAG,GAAG,EAAE;QACzCD,MAAM,CAACG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;MACtB;IACF;IACA,MAAMV,MAAM,GAAG,IAAIC,eAAe,CAACH,KAAK,EAAEC,MAAM,CAAC;IACjD,MAAMG,GAAG,GAAGF,MAAM,CAACG,UAAU,CAAC,IAAI,CAAC;IACnC,IAAI,CAACD,GAAG,EAAE;MACR,MAAM,IAAIE,KAAK,CAAC,sCAAsC,CAAC;IACzD;IACAF,GAAG,CAACG,YAAY,CAAC,IAAIR,SAAS,CAACU,MAAM,EAAET,KAAK,EAAEC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5D,OAAOC,MAAM;EACf;EAEAc,OAAOA,CAACC,aAA2B,EAAE;IACnC;EAAA;AAEJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["PathVerb","getEnum","HostObject","optEnum","JsiSkPoint","JsiSkRect","JsiSkRRect","JsiSkMatrix","CommandCount","Move","Line","Quad","Conic","Cubic","Close","shownDeprecationWarnings","Set","warnDeprecatedPathMethod","methodName","suggestion","has","add","console","warn","toMatrix3x3","m","matrix","Array","from","fromValue","length","Error","JsiSkPath","constructor","CanvasKit","ref","asPath","snapshot","pathFromValue","value","addPath","src","extend","srcBuilder","srcPath","args","delete","addArc","oval","startAngleInDegrees","sweepAngleInDegrees","addOval","isCCW","startIndex","addPoly","points","close","addPolygon","map","p","flat","addRect","rect","addRRect","rrect","addCircle","x","y","r","moveTo","rMoveTo","lineTo","rLineTo","quadTo","x1","y1","x2","y2","rQuadTo","conicTo","w","rConicTo","cubicTo","cpx1","cpy1","cpx2","cpy2","rCubicTo","reset","newBuilder","PathBuilder","rewind","arcToOval","forceMoveTo","arcToRotated","rx","ry","xAxisRotateInDegrees","useSmallArc","rArcTo","dx","dy","arcToTangent","radius","setFillType","fill","setIsVolatile","_volatile","offset","transform","makeAsWinding","path","result","old","simplify","makeSimplified","op","self","other","makeCombined","dash","on","off","phase","makeDashed","stroke","opts","makeStroked","undefined","width","miter_limit","precision","join","cap","trim","start","stop","isComplement","startT","Math","min","max","stopT","makeTrimmed","countPoints","computeTightBounds","contains","copy","equals","p1","p2","getBounds","getFillType","getPoint","index","isEmpty","isVolatile","getLastPt","count","pt","toSVGString","isInterpolatable","path2","Path","CanInterpolate","interpolate","end","weight","output","MakeFromPathInterpolation","outRef","toCmds","cmds","reduce","acc","cmd","i","push","current"],"sources":["JsiSkPath.ts"],"sourcesContent":["import type { CanvasKit, PathBuilder as CKPathBuilder } 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 InputRRect,\n StrokeOpts,\n InputMatrix,\n} from \"../types\";\n\nimport { getEnum, HostObject, optEnum } from \"./Host\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\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\n// Track which deprecation warnings have been shown to avoid spam\nconst shownDeprecationWarnings = new Set<string>();\n\nconst warnDeprecatedPathMethod = (\n methodName: string,\n suggestion: string\n): void => {\n if (shownDeprecationWarnings.has(methodName)) {\n return;\n }\n shownDeprecationWarnings.add(methodName);\n console.warn(\n `[react-native-skia] SkPath.${methodName}() is deprecated and will be removed in a future release. ${suggestion} See migration guide: https://shopify.github.io/react-native-skia/docs/shapes/path-migration`\n );\n};\n\nexport const toMatrix3x3 = (m: InputMatrix): number[] => {\n let matrix =\n m instanceof JsiSkMatrix\n ? Array.from(JsiSkMatrix.fromValue<Float32Array>(m))\n : (m as Exclude<InputMatrix, SkMatrix>);\n if (matrix.length === 16) {\n matrix = [\n matrix[0],\n matrix[1],\n matrix[3],\n matrix[4],\n matrix[5],\n matrix[7],\n matrix[12],\n matrix[13],\n matrix[15],\n ];\n } else if (matrix.length !== 9) {\n throw new Error(`Invalid matrix length: ${matrix.length}`);\n }\n return matrix as number[];\n};\n\n/**\n * SkPath wraps a CK PathBuilder internally, providing both mutable building\n * methods and immutable query methods. Use snapshot() internally to get\n * an immutable CK Path for read-only operations.\n */\nexport class JsiSkPath\n extends HostObject<CKPathBuilder, \"Path\">\n implements SkPath\n{\n constructor(CanvasKit: CanvasKit, ref: CKPathBuilder) {\n super(CanvasKit, ref, \"Path\");\n }\n\n /** Returns an immutable CK Path snapshot for read-only operations. */\n private asPath() {\n return this.ref.snapshot();\n }\n\n /** Extract an immutable CK Path from a JsiSkPath value (for CK interop). */\n static pathFromValue(value: SkPath) {\n return JsiSkPath.fromValue<CKPathBuilder>(value).snapshot();\n }\n\n // ---- Mutable building methods (deprecated) ----\n\n addPath(src: SkPath, matrix?: SkMatrix, extend = false) {\n warnDeprecatedPathMethod(\n \"addPath\",\n \"Use Skia.PathBuilder.Make().addPath() instead.\"\n );\n const srcBuilder = JsiSkPath.fromValue<CKPathBuilder>(src);\n const srcPath = srcBuilder.snapshot();\n const args = [\n srcPath,\n ...(matrix ? JsiSkMatrix.fromValue<Float32Array>(matrix) : []),\n extend,\n ];\n this.ref.addPath(...args);\n srcPath.delete();\n return this;\n }\n\n addArc(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number\n ) {\n warnDeprecatedPathMethod(\n \"addArc\",\n \"Use Skia.PathBuilder.Make().addArc() instead.\"\n );\n this.ref.addArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees\n );\n return this;\n }\n\n addOval(oval: SkRect, isCCW?: boolean, startIndex?: number) {\n warnDeprecatedPathMethod(\n \"addOval\",\n \"Use Skia.Path.Oval() or Skia.PathBuilder.Make().addOval() instead.\"\n );\n this.ref.addOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n isCCW,\n startIndex\n );\n return this;\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n warnDeprecatedPathMethod(\n \"addPoly\",\n \"Use Skia.Path.Polygon() or Skia.PathBuilder.Make().addPoly() instead.\"\n );\n this.ref.addPolygon(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return this;\n }\n\n addRect(rect: SkRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRect\",\n \"Use Skia.Path.Rect() or Skia.PathBuilder.Make().addRect() instead.\"\n );\n this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n return this;\n }\n\n addRRect(rrect: InputRRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRRect\",\n \"Use Skia.Path.RRect() or Skia.PathBuilder.Make().addRRect() instead.\"\n );\n this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return this;\n }\n\n addCircle(x: number, y: number, r: number) {\n warnDeprecatedPathMethod(\n \"addCircle\",\n \"Use Skia.Path.Circle() or Skia.PathBuilder.Make().addCircle() instead.\"\n );\n this.ref.addCircle(x, y, r);\n return this;\n }\n\n moveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"moveTo\",\n \"Use Skia.PathBuilder.Make().moveTo() instead.\"\n );\n this.ref.moveTo(x, y);\n return this;\n }\n\n rMoveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rMoveTo\",\n \"Use Skia.PathBuilder.Make().rMoveTo() instead.\"\n );\n this.ref.rMoveTo(x, y);\n return this;\n }\n\n lineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"lineTo\",\n \"Use Skia.PathBuilder.Make().lineTo() instead.\"\n );\n this.ref.lineTo(x, y);\n return this;\n }\n\n rLineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rLineTo\",\n \"Use Skia.PathBuilder.Make().rLineTo() instead.\"\n );\n this.ref.rLineTo(x, y);\n return this;\n }\n\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"quadTo\",\n \"Use Skia.PathBuilder.Make().quadTo() instead.\"\n );\n this.ref.quadTo(x1, y1, x2, y2);\n return this;\n }\n\n rQuadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"rQuadTo\",\n \"Use Skia.PathBuilder.Make().rQuadTo() instead.\"\n );\n this.ref.rQuadTo(x1, y1, x2, y2);\n return this;\n }\n\n conicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"conicTo\",\n \"Use Skia.PathBuilder.Make().conicTo() instead.\"\n );\n this.ref.conicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n rConicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"rConicTo\",\n \"Use Skia.PathBuilder.Make().rConicTo() instead.\"\n );\n this.ref.rConicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n cubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n warnDeprecatedPathMethod(\n \"cubicTo\",\n \"Use Skia.PathBuilder.Make().cubicTo() instead.\"\n );\n this.ref.cubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\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 warnDeprecatedPathMethod(\n \"rCubicTo\",\n \"Use Skia.PathBuilder.Make().rCubicTo() instead.\"\n );\n this.ref.rCubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n close() {\n warnDeprecatedPathMethod(\n \"close\",\n \"Use Skia.PathBuilder.Make().close() instead.\"\n );\n this.ref.close();\n return this;\n }\n\n reset() {\n warnDeprecatedPathMethod(\n \"reset\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n // CK PathBuilder has no reset — recreate\n const newBuilder = new this.CanvasKit.PathBuilder();\n if (\n this.ref !== null &&\n typeof this.ref === \"object\" &&\n \"delete\" in this.ref &&\n typeof this.ref.delete === \"function\"\n ) {\n this.ref.delete();\n }\n this.ref = newBuilder;\n return this;\n }\n\n rewind() {\n warnDeprecatedPathMethod(\n \"rewind\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n return this.reset();\n }\n\n arcToOval(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number,\n forceMoveTo: boolean\n ) {\n warnDeprecatedPathMethod(\n \"arcToOval\",\n \"Use Skia.PathBuilder.Make().arcToOval() instead.\"\n );\n this.ref.arcToOval(\n JsiSkRect.fromValue(this.CanvasKit, 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 warnDeprecatedPathMethod(\n \"arcToRotated\",\n \"Use Skia.PathBuilder.Make().arcToRotated() instead.\"\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 rArcTo(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n dx: number,\n dy: number\n ) {\n warnDeprecatedPathMethod(\n \"rArcTo\",\n \"Use Skia.PathBuilder.Make().rArcTo() instead.\"\n );\n this.ref.rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy);\n return this;\n }\n\n arcToTangent(x1: number, y1: number, x2: number, y2: number, radius: number) {\n warnDeprecatedPathMethod(\n \"arcToTangent\",\n \"Use Skia.PathBuilder.Make().arcToTangent() instead.\"\n );\n this.ref.arcToTangent(x1, y1, x2, y2, radius);\n return this;\n }\n\n setFillType(fill: FillType) {\n warnDeprecatedPathMethod(\n \"setFillType\",\n \"Use Skia.PathBuilder.Make().setFillType() instead.\"\n );\n this.ref.setFillType(getEnum(this.CanvasKit, \"FillType\", fill));\n return this;\n }\n\n setIsVolatile(_volatile: boolean) {\n warnDeprecatedPathMethod(\n \"setIsVolatile\",\n \"Use Skia.PathBuilder.Make().setIsVolatile() instead.\"\n );\n // Not supported in CK PathBuilder — no-op\n return this;\n }\n\n // ---- Mutable path operations (deprecated) ----\n\n offset(dx: number, dy: number) {\n warnDeprecatedPathMethod(\n \"offset\",\n \"Use Skia.PathBuilder.Make().offset() instead.\"\n );\n this.ref.offset(dx, dy);\n return this;\n }\n\n transform(m: InputMatrix) {\n warnDeprecatedPathMethod(\n \"transform\",\n \"Use Skia.PathBuilder.Make().transform() instead.\"\n );\n const matrix = toMatrix3x3(m);\n this.ref.transform(matrix);\n return this;\n }\n\n makeAsWinding() {\n warnDeprecatedPathMethod(\n \"makeAsWinding\",\n \"Use Skia.Path.AsWinding(path) instead.\"\n );\n const path = this.asPath();\n const result = path.makeAsWinding();\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n simplify() {\n warnDeprecatedPathMethod(\"simplify\", \"Use Skia.Path.Simplify(path) instead.\");\n const path = this.asPath();\n const result = path.makeSimplified();\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n op(path: SkPath, op: PathOp) {\n warnDeprecatedPathMethod(\"op\", \"Use Skia.Path.MakeFromOp() instead.\");\n const self = this.asPath();\n const other = JsiSkPath.fromValue<CKPathBuilder>(path).snapshot();\n const result = self.makeCombined(\n other,\n getEnum(this.CanvasKit, \"PathOp\", op)\n );\n self.delete();\n other.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n dash(on: number, off: number, phase: number) {\n warnDeprecatedPathMethod(\n \"dash\",\n \"Use Skia.Path.Dash(path, on, off, phase) instead.\"\n );\n const path = this.asPath();\n const result = path.makeDashed(on, off, phase);\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n stroke(opts?: StrokeOpts) {\n warnDeprecatedPathMethod(\"stroke\", \"Use Skia.Path.Stroke(path, opts) instead.\");\n const path = this.asPath();\n const result = path.makeStroked(\n opts === undefined\n ? undefined\n : {\n width: opts.width,\n // eslint-disable-next-line camelcase\n miter_limit: opts.miter_limit,\n precision: opts.precision,\n join: optEnum(this.CanvasKit, \"StrokeJoin\", opts.join),\n cap: optEnum(this.CanvasKit, \"StrokeCap\", opts.cap),\n }\n );\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n trim(start: number, stop: number, isComplement: boolean) {\n warnDeprecatedPathMethod(\n \"trim\",\n \"Use Skia.Path.Trim(path, start, end, isComplement) instead.\"\n );\n const startT = Math.min(Math.max(start, 0), 1);\n const stopT = Math.min(Math.max(stop, 0), 1);\n if (startT === 0 && stopT === 1 && !isComplement) {\n return this;\n }\n const path = this.asPath();\n const result = path.makeTrimmed(startT, stopT, isComplement);\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n // ---- Query methods (use snapshot for read-only) ----\n\n countPoints() {\n return this.ref.countPoints();\n }\n\n computeTightBounds(): SkRect {\n const path = this.asPath();\n const result = new JsiSkRect(this.CanvasKit, path.computeTightBounds());\n path.delete();\n return result;\n }\n\n contains(x: number, y: number) {\n const path = this.asPath();\n const result = path.contains(x, y);\n path.delete();\n return result;\n }\n\n copy() {\n const path = this.asPath();\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n equals(other: SkPath) {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(other).snapshot();\n const result = p1.equals(p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n getBounds() {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n getFillType(): FillType {\n const path = this.asPath();\n const result = path.getFillType().value;\n path.delete();\n return result;\n }\n\n getPoint(index: number): SkPoint {\n const path = this.asPath();\n const result = new JsiSkPoint(this.CanvasKit, path.getPoint(index));\n path.delete();\n return result;\n }\n\n isEmpty() {\n return this.ref.isEmpty();\n }\n\n isVolatile() {\n return false;\n }\n\n getLastPt() {\n const count = this.ref.countPoints();\n if (count === 0) {\n return { x: 0, y: 0 };\n }\n const path = this.asPath();\n const pt = path.getPoint(count - 1);\n path.delete();\n return { x: pt[0], y: pt[1] };\n }\n\n toSVGString() {\n const path = this.asPath();\n const result = path.toSVGString();\n path.delete();\n return result;\n }\n\n isInterpolatable(path2: SkPath): boolean {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(path2).snapshot();\n const result = this.CanvasKit.Path.CanInterpolate(p1, p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n interpolate(end: SkPath, weight: number, output?: SkPath): SkPath | null {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(end).snapshot();\n const path = this.CanvasKit.Path.MakeFromPathInterpolation(p1, p2, weight);\n p1.delete();\n p2.delete();\n if (path === null) {\n return null;\n }\n if (output) {\n const outRef = output as JsiSkPath;\n const old = outRef.ref;\n outRef.ref = new this.CanvasKit.PathBuilder(path);\n path.delete();\n old.delete();\n return output;\n }\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n toCmds() {\n const path = this.asPath();\n const cmds = path.toCmds();\n path.delete();\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PathVerb","getEnum","HostObject","optEnum","JsiSkPoint","JsiSkRect","JsiSkRRect","JsiSkMatrix","CommandCount","Move","Line","Quad","Conic","Cubic","Close","shownDeprecationWarnings","Set","warnDeprecatedPathMethod","methodName","suggestion","has","add","console","warn","toMatrix3x3","m","matrix","Array","from","fromValue","length","Error","JsiSkPath","constructor","CanvasKit","ref","asPath","snapshot","pathFromValue","value","addPath","src","extend","srcBuilder","srcPath","args","delete","addArc","oval","startAngleInDegrees","sweepAngleInDegrees","addOval","isCCW","startIndex","addPoly","points","close","addPolygon","map","p","flat","addRect","rect","addRRect","rrect","addCircle","x","y","r","moveTo","rMoveTo","lineTo","rLineTo","quadTo","x1","y1","x2","y2","rQuadTo","conicTo","w","rConicTo","cubicTo","cpx1","cpy1","cpx2","cpy2","rCubicTo","reset","newBuilder","PathBuilder","rewind","arcToOval","forceMoveTo","arcToRotated","rx","ry","xAxisRotateInDegrees","useSmallArc","rArcTo","dx","dy","arcToTangent","radius","setFillType","fill","setIsVolatile","_volatile","offset","transform","makeAsWinding","path","result","old","simplify","makeSimplified","op","self","other","makeCombined","dash","on","off","phase","makeDashed","stroke","opts","makeStroked","undefined","width","miter_limit","precision","join","cap","trim","start","stop","isComplement","startT","Math","min","max","stopT","makeTrimmed","countPoints","computeTightBounds","contains","copy","equals","p1","p2","getBounds","getFillType","getPoint","index","isEmpty","isVolatile","getLastPt","count","pt","toSVGString","isInterpolatable","path2","Path","CanInterpolate","interpolate","end","weight","output","MakeFromPathInterpolation","outRef","toCmds","cmds","reduce","acc","cmd","i","push","current"],"sources":["JsiSkPath.ts"],"sourcesContent":["import type { CanvasKit, PathBuilder as CKPathBuilder } 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 InputRRect,\n StrokeOpts,\n InputMatrix,\n} from \"../types\";\n\nimport { getEnum, HostObject, optEnum } from \"./Host\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\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\n// Track which deprecation warnings have been shown to avoid spam\nconst shownDeprecationWarnings = new Set<string>();\n\nconst warnDeprecatedPathMethod = (\n methodName: string,\n suggestion: string\n): void => {\n if (shownDeprecationWarnings.has(methodName)) {\n return;\n }\n shownDeprecationWarnings.add(methodName);\n console.warn(\n `[react-native-skia] SkPath.${methodName}() is deprecated and will be removed in a future release. ${suggestion} See migration guide: https://shopify.github.io/react-native-skia/docs/shapes/path-migration`\n );\n};\n\nexport const toMatrix3x3 = (m: InputMatrix): number[] => {\n let matrix =\n m instanceof JsiSkMatrix\n ? Array.from(JsiSkMatrix.fromValue<Float32Array>(m))\n : (m as Exclude<InputMatrix, SkMatrix>);\n if (matrix.length === 16) {\n matrix = [\n matrix[0],\n matrix[1],\n matrix[3],\n matrix[4],\n matrix[5],\n matrix[7],\n matrix[12],\n matrix[13],\n matrix[15],\n ];\n } else if (matrix.length !== 9) {\n throw new Error(`Invalid matrix length: ${matrix.length}`);\n }\n return matrix as number[];\n};\n\n/**\n * SkPath wraps a CK PathBuilder internally, providing both mutable building\n * methods and immutable query methods. Use snapshot() internally to get\n * an immutable CK Path for read-only operations.\n */\nexport class JsiSkPath\n extends HostObject<CKPathBuilder, \"Path\">\n implements SkPath\n{\n constructor(CanvasKit: CanvasKit, ref: CKPathBuilder) {\n super(CanvasKit, ref, \"Path\");\n }\n\n /** Returns an immutable CK Path snapshot for read-only operations. */\n private asPath() {\n return this.ref.snapshot();\n }\n\n /** Extract an immutable CK Path from a JsiSkPath value (for CK interop). */\n static pathFromValue(value: SkPath) {\n return JsiSkPath.fromValue<CKPathBuilder>(value).snapshot();\n }\n\n // ---- Mutable building methods (deprecated) ----\n\n addPath(src: SkPath, matrix?: SkMatrix, extend = false) {\n warnDeprecatedPathMethod(\n \"addPath\",\n \"Use Skia.PathBuilder.Make().addPath() instead.\"\n );\n const srcBuilder = JsiSkPath.fromValue<CKPathBuilder>(src);\n const srcPath = srcBuilder.snapshot();\n const args = [\n srcPath,\n ...(matrix ? JsiSkMatrix.fromValue<Float32Array>(matrix) : []),\n extend,\n ];\n this.ref.addPath(...args);\n srcPath.delete();\n return this;\n }\n\n addArc(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number\n ) {\n warnDeprecatedPathMethod(\n \"addArc\",\n \"Use Skia.PathBuilder.Make().addArc() instead.\"\n );\n this.ref.addArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees\n );\n return this;\n }\n\n addOval(oval: SkRect, isCCW?: boolean, startIndex?: number) {\n warnDeprecatedPathMethod(\n \"addOval\",\n \"Use Skia.Path.Oval() or Skia.PathBuilder.Make().addOval() instead.\"\n );\n this.ref.addOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n isCCW,\n startIndex\n );\n return this;\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n warnDeprecatedPathMethod(\n \"addPoly\",\n \"Use Skia.Path.Polygon() or Skia.PathBuilder.Make().addPoly() instead.\"\n );\n this.ref.addPolygon(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return this;\n }\n\n addRect(rect: SkRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRect\",\n \"Use Skia.Path.Rect() or Skia.PathBuilder.Make().addRect() instead.\"\n );\n this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n return this;\n }\n\n addRRect(rrect: InputRRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRRect\",\n \"Use Skia.Path.RRect() or Skia.PathBuilder.Make().addRRect() instead.\"\n );\n this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return this;\n }\n\n addCircle(x: number, y: number, r: number) {\n warnDeprecatedPathMethod(\n \"addCircle\",\n \"Use Skia.Path.Circle() or Skia.PathBuilder.Make().addCircle() instead.\"\n );\n this.ref.addCircle(x, y, r);\n return this;\n }\n\n moveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"moveTo\",\n \"Use Skia.PathBuilder.Make().moveTo() instead.\"\n );\n this.ref.moveTo(x, y);\n return this;\n }\n\n rMoveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rMoveTo\",\n \"Use Skia.PathBuilder.Make().rMoveTo() instead.\"\n );\n this.ref.rMoveTo(x, y);\n return this;\n }\n\n lineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"lineTo\",\n \"Use Skia.PathBuilder.Make().lineTo() instead.\"\n );\n this.ref.lineTo(x, y);\n return this;\n }\n\n rLineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rLineTo\",\n \"Use Skia.PathBuilder.Make().rLineTo() instead.\"\n );\n this.ref.rLineTo(x, y);\n return this;\n }\n\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"quadTo\",\n \"Use Skia.PathBuilder.Make().quadTo() instead.\"\n );\n this.ref.quadTo(x1, y1, x2, y2);\n return this;\n }\n\n rQuadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"rQuadTo\",\n \"Use Skia.PathBuilder.Make().rQuadTo() instead.\"\n );\n this.ref.rQuadTo(x1, y1, x2, y2);\n return this;\n }\n\n conicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"conicTo\",\n \"Use Skia.PathBuilder.Make().conicTo() instead.\"\n );\n this.ref.conicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n rConicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"rConicTo\",\n \"Use Skia.PathBuilder.Make().rConicTo() instead.\"\n );\n this.ref.rConicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n cubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n warnDeprecatedPathMethod(\n \"cubicTo\",\n \"Use Skia.PathBuilder.Make().cubicTo() instead.\"\n );\n this.ref.cubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\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 warnDeprecatedPathMethod(\n \"rCubicTo\",\n \"Use Skia.PathBuilder.Make().rCubicTo() instead.\"\n );\n this.ref.rCubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n close() {\n warnDeprecatedPathMethod(\n \"close\",\n \"Use Skia.PathBuilder.Make().close() instead.\"\n );\n this.ref.close();\n return this;\n }\n\n reset() {\n warnDeprecatedPathMethod(\n \"reset\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n // CK PathBuilder has no reset — recreate\n const newBuilder = new this.CanvasKit.PathBuilder();\n if (\n this.ref !== null &&\n typeof this.ref === \"object\" &&\n \"delete\" in this.ref &&\n typeof this.ref.delete === \"function\"\n ) {\n this.ref.delete();\n }\n this.ref = newBuilder;\n return this;\n }\n\n rewind() {\n warnDeprecatedPathMethod(\n \"rewind\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n return this.reset();\n }\n\n arcToOval(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number,\n forceMoveTo: boolean\n ) {\n warnDeprecatedPathMethod(\n \"arcToOval\",\n \"Use Skia.PathBuilder.Make().arcToOval() instead.\"\n );\n this.ref.arcToOval(\n JsiSkRect.fromValue(this.CanvasKit, 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 warnDeprecatedPathMethod(\n \"arcToRotated\",\n \"Use Skia.PathBuilder.Make().arcToRotated() instead.\"\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 rArcTo(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n dx: number,\n dy: number\n ) {\n warnDeprecatedPathMethod(\n \"rArcTo\",\n \"Use Skia.PathBuilder.Make().rArcTo() instead.\"\n );\n this.ref.rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy);\n return this;\n }\n\n arcToTangent(x1: number, y1: number, x2: number, y2: number, radius: number) {\n warnDeprecatedPathMethod(\n \"arcToTangent\",\n \"Use Skia.PathBuilder.Make().arcToTangent() instead.\"\n );\n this.ref.arcToTangent(x1, y1, x2, y2, radius);\n return this;\n }\n\n setFillType(fill: FillType) {\n warnDeprecatedPathMethod(\n \"setFillType\",\n \"Use Skia.PathBuilder.Make().setFillType() instead.\"\n );\n this.ref.setFillType(getEnum(this.CanvasKit, \"FillType\", fill));\n return this;\n }\n\n setIsVolatile(_volatile: boolean) {\n warnDeprecatedPathMethod(\n \"setIsVolatile\",\n \"Use Skia.PathBuilder.Make().setIsVolatile() instead.\"\n );\n // Not supported in CK PathBuilder — no-op\n return this;\n }\n\n // ---- Mutable path operations (deprecated) ----\n\n offset(dx: number, dy: number) {\n warnDeprecatedPathMethod(\n \"offset\",\n \"Use Skia.PathBuilder.Make().offset() instead.\"\n );\n this.ref.offset(dx, dy);\n return this;\n }\n\n transform(m: InputMatrix) {\n warnDeprecatedPathMethod(\n \"transform\",\n \"Use Skia.PathBuilder.Make().transform() instead.\"\n );\n const matrix = toMatrix3x3(m);\n this.ref.transform(matrix);\n return this;\n }\n\n makeAsWinding() {\n warnDeprecatedPathMethod(\n \"makeAsWinding\",\n \"Use Skia.Path.AsWinding(path) instead.\"\n );\n const path = this.asPath();\n const result = path.makeAsWinding();\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n simplify() {\n warnDeprecatedPathMethod(\n \"simplify\",\n \"Use Skia.Path.Simplify(path) instead.\"\n );\n const path = this.asPath();\n const result = path.makeSimplified();\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n op(path: SkPath, op: PathOp) {\n warnDeprecatedPathMethod(\"op\", \"Use Skia.Path.MakeFromOp() instead.\");\n const self = this.asPath();\n const other = JsiSkPath.fromValue<CKPathBuilder>(path).snapshot();\n const result = self.makeCombined(\n other,\n getEnum(this.CanvasKit, \"PathOp\", op)\n );\n self.delete();\n other.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n dash(on: number, off: number, phase: number) {\n warnDeprecatedPathMethod(\n \"dash\",\n \"Use Skia.Path.Dash(path, on, off, phase) instead.\"\n );\n const path = this.asPath();\n const result = path.makeDashed(on, off, phase);\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n stroke(opts?: StrokeOpts) {\n warnDeprecatedPathMethod(\n \"stroke\",\n \"Use Skia.Path.Stroke(path, opts) instead.\"\n );\n const path = this.asPath();\n const result = path.makeStroked(\n opts === undefined\n ? undefined\n : {\n width: opts.width,\n // eslint-disable-next-line camelcase\n miter_limit: opts.miter_limit,\n precision: opts.precision,\n join: optEnum(this.CanvasKit, \"StrokeJoin\", opts.join),\n cap: optEnum(this.CanvasKit, \"StrokeCap\", opts.cap),\n }\n );\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n trim(start: number, stop: number, isComplement: boolean) {\n warnDeprecatedPathMethod(\n \"trim\",\n \"Use Skia.Path.Trim(path, start, end, isComplement) instead.\"\n );\n const startT = Math.min(Math.max(start, 0), 1);\n const stopT = Math.min(Math.max(stop, 0), 1);\n if (startT === 0 && stopT === 1 && !isComplement) {\n return this;\n }\n const path = this.asPath();\n const result = path.makeTrimmed(startT, stopT, isComplement);\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n // ---- Query methods (use snapshot for read-only) ----\n\n countPoints() {\n return this.ref.countPoints();\n }\n\n computeTightBounds(): SkRect {\n const path = this.asPath();\n const result = new JsiSkRect(this.CanvasKit, path.computeTightBounds());\n path.delete();\n return result;\n }\n\n contains(x: number, y: number) {\n const path = this.asPath();\n const result = path.contains(x, y);\n path.delete();\n return result;\n }\n\n copy() {\n const path = this.asPath();\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n equals(other: SkPath) {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(other).snapshot();\n const result = p1.equals(p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n getBounds() {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n getFillType(): FillType {\n const path = this.asPath();\n const result = path.getFillType().value;\n path.delete();\n return result;\n }\n\n getPoint(index: number): SkPoint {\n const path = this.asPath();\n const result = new JsiSkPoint(this.CanvasKit, path.getPoint(index));\n path.delete();\n return result;\n }\n\n isEmpty() {\n return this.ref.isEmpty();\n }\n\n isVolatile() {\n return false;\n }\n\n getLastPt() {\n const count = this.ref.countPoints();\n if (count === 0) {\n return { x: 0, y: 0 };\n }\n const path = this.asPath();\n const pt = path.getPoint(count - 1);\n path.delete();\n return { x: pt[0], y: pt[1] };\n }\n\n toSVGString() {\n const path = this.asPath();\n const result = path.toSVGString();\n path.delete();\n return result;\n }\n\n isInterpolatable(path2: SkPath): boolean {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(path2).snapshot();\n const result = this.CanvasKit.Path.CanInterpolate(p1, p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n interpolate(end: SkPath, weight: number, output?: SkPath): SkPath | null {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(end).snapshot();\n const path = this.CanvasKit.Path.MakeFromPathInterpolation(p1, p2, weight);\n p1.delete();\n p2.delete();\n if (path === null) {\n return null;\n }\n if (output) {\n const outRef = output as JsiSkPath;\n const old = outRef.ref;\n outRef.ref = new this.CanvasKit.PathBuilder(path);\n path.delete();\n old.delete();\n return output;\n }\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n toCmds() {\n const path = this.asPath();\n const cmds = path.toCmds();\n path.delete();\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"],"mappings":"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","ignoreList":[]}
@@ -3,11 +3,10 @@
3
3
  import CanvasKitInit from "canvaskit-wasm/bin/full/canvaskit";
4
4
  let ckSharedPromise;
5
5
  export const LoadSkiaWeb = async opts => {
6
- var _ckSharedPromise;
7
6
  if (global.CanvasKit !== undefined) {
8
7
  return;
9
8
  }
10
- ckSharedPromise = (_ckSharedPromise = ckSharedPromise) !== null && _ckSharedPromise !== void 0 ? _ckSharedPromise : CanvasKitInit(opts);
9
+ ckSharedPromise = ckSharedPromise !== null && ckSharedPromise !== void 0 ? ckSharedPromise : CanvasKitInit(opts);
11
10
  const CanvasKit = await ckSharedPromise;
12
11
  // The CanvasKit API is stored on the global object and used
13
12
  // to create the JsiSKApi in the Skia.web.ts file.