@shopify/react-native-skia 2.5.5 → 2.6.1

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 (286) hide show
  1. package/android/CMakeLists.txt +0 -1
  2. package/android/cpp/jni/JniWebGPUView.cpp +3 -3
  3. package/android/cpp/rnskia-android/OpenGLContext.h +4 -5
  4. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +1 -1
  5. package/apple/MetalContext.h +5 -6
  6. package/apple/MetalWindowContext.mm +3 -4
  7. package/apple/RNSkApplePlatformContext.h +1 -1
  8. package/apple/RNSkApplePlatformContext.mm +4 -3
  9. package/apple/SkiaCVPixelBufferUtils.h +1 -1
  10. package/apple/SkiaCVPixelBufferUtils.mm +31 -30
  11. package/apple/SkiaPlatformContext.mm +2 -2
  12. package/apple/SkiaUIView.mm +1 -1
  13. package/apple/SkiaWebGPUView.mm +8 -4
  14. package/apple/WebGPUMetalView.h +1 -1
  15. package/apple/WebGPUMetalView.mm +1 -1
  16. package/cpp/api/CustomBlendModes.h +1 -0
  17. package/cpp/api/JsiSkApi.h +4 -0
  18. package/cpp/api/JsiSkCanvas.h +2 -2
  19. package/cpp/api/JsiSkColor.h +8 -4
  20. package/cpp/api/JsiSkContourMeasure.h +4 -3
  21. package/cpp/api/JsiSkContourMeasureIter.h +1 -1
  22. package/cpp/api/JsiSkImage.h +17 -9
  23. package/cpp/api/JsiSkParagraphBuilder.h +14 -1
  24. package/cpp/api/JsiSkPath.h +475 -357
  25. package/cpp/api/JsiSkPathBuilder.h +415 -0
  26. package/cpp/api/JsiSkPathBuilderFactory.h +53 -0
  27. package/cpp/api/JsiSkPathEffectFactory.h +3 -2
  28. package/cpp/api/JsiSkPathFactory.h +287 -20
  29. package/cpp/api/JsiSkShader.h +1 -1
  30. package/cpp/api/JsiSkShaderFactory.h +50 -26
  31. package/cpp/api/JsiSkSurfaceFactory.h +2 -1
  32. package/cpp/api/recorder/DataTypes.h +1 -1
  33. package/cpp/api/recorder/Drawings.h +11 -9
  34. package/cpp/api/recorder/Shaders.h +77 -22
  35. package/cpp/jsi2/JSIConverter.h +1 -1
  36. package/cpp/rnskia/RNDawnContext.h +29 -9
  37. package/cpp/rnskia/RNDawnUtils.h +112 -113
  38. package/cpp/rnskia/RNDawnWindowContext.h +1 -1
  39. package/cpp/rnskia/RNSkManager.cpp +5 -4
  40. package/cpp/rnskia/RNSkPlatformContext.h +2 -2
  41. package/cpp/rnwgpu/api/GPU.cpp +21 -0
  42. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +1 -1
  43. package/cpp/rnwgpu/api/GPUCanvasContext.h +2 -2
  44. package/cpp/rnwgpu/api/GPUFeatures.h +0 -9
  45. package/cpp/rnwgpu/api/GPUTexture.h +14 -2
  46. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +3 -4
  47. package/cpp/rnwgpu/api/RNWebGPU.h +1 -1
  48. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -15
  49. package/cpp/skia/include/android/SkImageAndroid.h +7 -2
  50. package/cpp/skia/include/android/vk/AndroidVulkanMemoryAllocator.h +31 -0
  51. package/cpp/skia/include/codec/SkCodec.h +42 -15
  52. package/cpp/skia/include/config/SkUserConfig.h +8 -0
  53. package/cpp/skia/include/core/SkBitmap.h +0 -5
  54. package/cpp/skia/include/core/SkCanvas.h +2 -39
  55. package/cpp/skia/include/core/SkColor.h +12 -0
  56. package/cpp/skia/include/core/SkColorSpace.h +9 -0
  57. package/cpp/skia/include/core/SkContourMeasure.h +1 -5
  58. package/cpp/skia/include/core/SkData.h +8 -0
  59. package/cpp/skia/include/core/SkFont.h +1 -55
  60. package/cpp/skia/include/core/SkFontArguments.h +15 -0
  61. package/cpp/skia/include/core/SkGraphics.h +0 -5
  62. package/cpp/skia/include/core/SkImage.h +0 -4
  63. package/cpp/skia/include/core/SkImageGenerator.h +1 -4
  64. package/cpp/skia/include/core/SkMatrix.h +0 -37
  65. package/cpp/skia/include/core/SkMilestone.h +1 -1
  66. package/cpp/skia/include/core/SkPath.h +11 -911
  67. package/cpp/skia/include/core/SkPathBuilder.h +42 -32
  68. package/cpp/skia/include/core/SkPathEffect.h +0 -9
  69. package/cpp/skia/include/core/SkPathMeasure.h +1 -4
  70. package/cpp/skia/include/core/SkPathUtils.h +0 -10
  71. package/cpp/skia/include/core/SkRect.h +0 -12
  72. package/cpp/skia/include/core/SkRegion.h +1 -6
  73. package/cpp/skia/include/core/SkSerialProcs.h +4 -5
  74. package/cpp/skia/include/core/SkSurfaceProps.h +6 -0
  75. package/cpp/skia/include/core/SkTextBlob.h +0 -22
  76. package/cpp/skia/include/core/SkTypeface.h +14 -32
  77. package/cpp/skia/include/core/SkTypes.h +0 -8
  78. package/cpp/skia/include/docs/SkPDFDocument.h +19 -17
  79. package/cpp/skia/include/effects/SkDashPathEffect.h +0 -6
  80. package/cpp/skia/include/effects/SkGradient.h +206 -0
  81. package/cpp/skia/include/effects/SkHighContrastFilter.h +2 -2
  82. package/cpp/skia/include/gpu/GpuTypes.h +2 -0
  83. package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +5 -35
  84. package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +7 -106
  85. package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +0 -11
  86. package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +0 -9
  87. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendSemaphore.h +20 -0
  88. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendSurface.h +59 -0
  89. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DDirectContext.h +28 -0
  90. package/cpp/skia/include/gpu/ganesh/gl/GrGLFunctions.h +4 -1
  91. package/cpp/skia/include/gpu/graphite/ContextOptions.h +4 -20
  92. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +32 -46
  93. package/cpp/skia/include/gpu/graphite/Recorder.h +1 -1
  94. package/cpp/skia/include/gpu/graphite/Surface.h +31 -0
  95. package/cpp/skia/include/gpu/graphite/TextureInfo.h +3 -10
  96. package/cpp/skia/include/gpu/graphite/dawn/DawnGraphiteTypes.h +3 -3
  97. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +1 -1
  98. package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +6 -6
  99. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +5 -3
  100. package/cpp/skia/include/gpu/graphite/vk/precompile/VulkanPrecompileShader.h +1 -1
  101. package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +1 -1
  102. package/cpp/skia/include/gpu/vk/VulkanPreferredFeatures.h +8 -0
  103. package/cpp/skia/include/private/SkEncodedInfo.h +43 -105
  104. package/cpp/skia/include/private/SkHdrMetadata.h +165 -2
  105. package/cpp/skia/include/private/SkPathRef.h +0 -457
  106. package/cpp/skia/include/private/base/SkFeatures.h +4 -0
  107. package/cpp/skia/include/private/base/SkFloatingPoint.h +1 -2
  108. package/cpp/skia/include/private/base/SkLoadUserConfig.h +2 -1
  109. package/cpp/skia/include/private/base/SkLog.h +68 -0
  110. package/cpp/skia/include/private/base/SkLogPriority.h +35 -0
  111. package/cpp/skia/include/private/base/SkMacros.h +9 -0
  112. package/cpp/skia/include/private/base/SkTArray.h +1 -1
  113. package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +10 -24
  114. package/cpp/skia/include/utils/SkEventTracer.h +5 -7
  115. package/cpp/skia/modules/skottie/include/TextShaper.h +0 -7
  116. package/cpp/skia/modules/skparagraph/include/FontCollection.h +6 -20
  117. package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +0 -6
  118. package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +4 -19
  119. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +2 -3
  120. package/cpp/skia/modules/skunicode/include/SkUnicode_icu.h +18 -0
  121. package/cpp/skia/modules/skunicode/include/SkUnicode_libgrapheme.h +19 -0
  122. package/cpp/skia/src/base/SkMathPriv.h +27 -132
  123. package/lib/commonjs/animation/functions/interpolatePaths.d.ts +1 -1
  124. package/lib/commonjs/animation/functions/interpolatePaths.js +5 -4
  125. package/lib/commonjs/animation/functions/interpolatePaths.js.map +1 -1
  126. package/lib/commonjs/external/reanimated/interpolators.d.ts +11 -2
  127. package/lib/commonjs/external/reanimated/interpolators.js +21 -4
  128. package/lib/commonjs/external/reanimated/interpolators.js.map +1 -1
  129. package/lib/commonjs/skia/types/Path/PathBuilder.d.ts +201 -0
  130. package/lib/commonjs/skia/types/Path/PathBuilder.js +6 -0
  131. package/lib/commonjs/skia/types/Path/PathBuilder.js.map +1 -0
  132. package/lib/commonjs/skia/types/Path/PathBuilderFactory.d.ts +13 -0
  133. package/lib/commonjs/skia/types/Path/PathBuilderFactory.js +6 -0
  134. package/lib/commonjs/skia/types/Path/PathBuilderFactory.js.map +1 -0
  135. package/lib/commonjs/skia/types/Path/PathFactory.d.ts +87 -1
  136. package/lib/commonjs/skia/types/Path/PathFactory.js.map +1 -1
  137. package/lib/commonjs/skia/types/Path/index.d.ts +2 -0
  138. package/lib/commonjs/skia/types/Path/index.js +22 -0
  139. package/lib/commonjs/skia/types/Path/index.js.map +1 -1
  140. package/lib/commonjs/skia/types/Skia.d.ts +2 -1
  141. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  142. package/lib/commonjs/skia/web/Host.js +1 -3
  143. package/lib/commonjs/skia/web/Host.js.map +1 -1
  144. package/lib/commonjs/skia/web/JsiSkCanvas.js +6 -2
  145. package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
  146. package/lib/commonjs/skia/web/JsiSkContourMeasure.js +4 -1
  147. package/lib/commonjs/skia/web/JsiSkContourMeasure.js.map +1 -1
  148. package/lib/commonjs/skia/web/JsiSkPath.d.ts +42 -30
  149. package/lib/commonjs/skia/web/JsiSkPath.js +302 -111
  150. package/lib/commonjs/skia/web/JsiSkPath.js.map +1 -1
  151. package/lib/commonjs/skia/web/JsiSkPathBuilder.d.ts +45 -0
  152. package/lib/commonjs/skia/web/JsiSkPathBuilder.js +192 -0
  153. package/lib/commonjs/skia/web/JsiSkPathBuilder.js.map +1 -0
  154. package/lib/commonjs/skia/web/JsiSkPathBuilderFactory.d.ts +9 -0
  155. package/lib/commonjs/skia/web/JsiSkPathBuilderFactory.js +26 -0
  156. package/lib/commonjs/skia/web/JsiSkPathBuilderFactory.js.map +1 -0
  157. package/lib/commonjs/skia/web/JsiSkPathEffectFactory.js +6 -2
  158. package/lib/commonjs/skia/web/JsiSkPathEffectFactory.js.map +1 -1
  159. package/lib/commonjs/skia/web/JsiSkPathFactory.d.ts +13 -1
  160. package/lib/commonjs/skia/web/JsiSkPathFactory.js +140 -5
  161. package/lib/commonjs/skia/web/JsiSkPathFactory.js.map +1 -1
  162. package/lib/commonjs/skia/web/JsiSkia.js +8 -1
  163. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  164. package/lib/commonjs/sksg/Recorder/commands/Drawing.js +18 -6
  165. package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -1
  166. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.d.ts +2 -2
  167. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.js +2 -3
  168. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.js.map +1 -1
  169. package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +2 -2
  170. package/lib/commonjs/specs/WebGPUViewNativeComponent.js +2 -3
  171. package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +1 -1
  172. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +2 -0
  173. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +1 -1
  174. package/lib/module/animation/functions/interpolatePaths.d.ts +1 -1
  175. package/lib/module/animation/functions/interpolatePaths.js +5 -4
  176. package/lib/module/animation/functions/interpolatePaths.js.map +1 -1
  177. package/lib/module/external/reanimated/interpolators.d.ts +11 -2
  178. package/lib/module/external/reanimated/interpolators.js +21 -4
  179. package/lib/module/external/reanimated/interpolators.js.map +1 -1
  180. package/lib/module/skia/types/Path/PathBuilder.d.ts +201 -0
  181. package/lib/module/skia/types/Path/PathBuilder.js +2 -0
  182. package/lib/module/skia/types/Path/PathBuilder.js.map +1 -0
  183. package/lib/module/skia/types/Path/PathBuilderFactory.d.ts +13 -0
  184. package/lib/module/skia/types/Path/PathBuilderFactory.js +2 -0
  185. package/lib/module/skia/types/Path/PathBuilderFactory.js.map +1 -0
  186. package/lib/module/skia/types/Path/PathFactory.d.ts +87 -1
  187. package/lib/module/skia/types/Path/PathFactory.js.map +1 -1
  188. package/lib/module/skia/types/Path/index.d.ts +2 -0
  189. package/lib/module/skia/types/Path/index.js +2 -0
  190. package/lib/module/skia/types/Path/index.js.map +1 -1
  191. package/lib/module/skia/types/Skia.d.ts +2 -1
  192. package/lib/module/skia/types/Skia.js.map +1 -1
  193. package/lib/module/skia/web/Host.js +1 -3
  194. package/lib/module/skia/web/Host.js.map +1 -1
  195. package/lib/module/skia/web/JsiSkCanvas.js +6 -2
  196. package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
  197. package/lib/module/skia/web/JsiSkContourMeasure.js +4 -1
  198. package/lib/module/skia/web/JsiSkContourMeasure.js.map +1 -1
  199. package/lib/module/skia/web/JsiSkPath.d.ts +42 -30
  200. package/lib/module/skia/web/JsiSkPath.js +300 -110
  201. package/lib/module/skia/web/JsiSkPath.js.map +1 -1
  202. package/lib/module/skia/web/JsiSkPathBuilder.d.ts +45 -0
  203. package/lib/module/skia/web/JsiSkPathBuilder.js +186 -0
  204. package/lib/module/skia/web/JsiSkPathBuilder.js.map +1 -0
  205. package/lib/module/skia/web/JsiSkPathBuilderFactory.d.ts +9 -0
  206. package/lib/module/skia/web/JsiSkPathBuilderFactory.js +19 -0
  207. package/lib/module/skia/web/JsiSkPathBuilderFactory.js.map +1 -0
  208. package/lib/module/skia/web/JsiSkPathEffectFactory.js +6 -2
  209. package/lib/module/skia/web/JsiSkPathEffectFactory.js.map +1 -1
  210. package/lib/module/skia/web/JsiSkPathFactory.d.ts +13 -1
  211. package/lib/module/skia/web/JsiSkPathFactory.js +141 -6
  212. package/lib/module/skia/web/JsiSkPathFactory.js.map +1 -1
  213. package/lib/module/skia/web/JsiSkia.js +8 -1
  214. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  215. package/lib/module/sksg/Recorder/commands/Drawing.js +18 -6
  216. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
  217. package/lib/module/specs/SkiaPictureViewNativeComponent.d.ts +2 -2
  218. package/lib/module/specs/SkiaPictureViewNativeComponent.js +1 -1
  219. package/lib/module/specs/SkiaPictureViewNativeComponent.js.map +1 -1
  220. package/lib/module/specs/WebGPUViewNativeComponent.d.ts +2 -2
  221. package/lib/module/specs/WebGPUViewNativeComponent.js +1 -1
  222. package/lib/module/specs/WebGPUViewNativeComponent.js.map +1 -1
  223. package/lib/module/specs/WebGPUViewNativeComponent.web.js +2 -0
  224. package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +1 -1
  225. package/lib/typescript/lib/commonjs/animation/functions/interpolatePaths.d.ts +1 -1
  226. package/lib/typescript/lib/commonjs/external/reanimated/interpolators.d.ts +1 -1
  227. package/lib/typescript/lib/commonjs/skia/types/Path/PathBuilder.d.ts +1 -0
  228. package/lib/typescript/lib/commonjs/skia/types/Path/PathBuilderFactory.d.ts +1 -0
  229. package/lib/typescript/lib/commonjs/skia/web/JsiSkPath.d.ts +33 -25
  230. package/lib/typescript/lib/commonjs/skia/web/JsiSkPathBuilder.d.ts +46 -0
  231. package/lib/typescript/lib/commonjs/skia/web/JsiSkPathBuilderFactory.d.ts +7 -0
  232. package/lib/typescript/lib/commonjs/skia/web/JsiSkPathFactory.d.ts +12 -0
  233. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +2 -0
  234. package/lib/typescript/lib/commonjs/specs/SkiaPictureViewNativeComponent.d.ts +2 -1
  235. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +2 -1
  236. package/lib/typescript/lib/module/animation/functions/interpolatePaths.d.ts +1 -1
  237. package/lib/typescript/lib/module/external/reanimated/interpolators.d.ts +1 -1
  238. package/lib/typescript/lib/module/mock/index.d.ts +1 -1
  239. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
  240. package/lib/typescript/lib/module/skia/types/Path/PathBuilder.d.ts +1 -0
  241. package/lib/typescript/lib/module/skia/types/Path/PathBuilderFactory.d.ts +1 -0
  242. package/lib/typescript/lib/module/skia/types/Path/index.d.ts +2 -0
  243. package/lib/typescript/lib/module/skia/web/JsiSkPath.d.ts +38 -25
  244. package/lib/typescript/lib/module/skia/web/JsiSkPathBuilder.d.ts +45 -0
  245. package/lib/typescript/lib/module/skia/web/JsiSkPathBuilderFactory.d.ts +6 -0
  246. package/lib/typescript/lib/module/skia/web/JsiSkPathFactory.d.ts +12 -0
  247. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +2 -0
  248. package/lib/typescript/lib/module/specs/SkiaPictureViewNativeComponent.d.ts +1 -1
  249. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +1 -1
  250. package/lib/typescript/src/animation/functions/interpolatePaths.d.ts +1 -1
  251. package/lib/typescript/src/external/reanimated/interpolators.d.ts +11 -2
  252. package/lib/typescript/src/skia/types/Path/PathBuilder.d.ts +201 -0
  253. package/lib/typescript/src/skia/types/Path/PathBuilderFactory.d.ts +13 -0
  254. package/lib/typescript/src/skia/types/Path/PathFactory.d.ts +87 -1
  255. package/lib/typescript/src/skia/types/Path/index.d.ts +2 -0
  256. package/lib/typescript/src/skia/types/Skia.d.ts +2 -1
  257. package/lib/typescript/src/skia/web/JsiSkPath.d.ts +42 -30
  258. package/lib/typescript/src/skia/web/JsiSkPathBuilder.d.ts +45 -0
  259. package/lib/typescript/src/skia/web/JsiSkPathBuilderFactory.d.ts +9 -0
  260. package/lib/typescript/src/skia/web/JsiSkPathFactory.d.ts +13 -1
  261. package/lib/typescript/src/specs/SkiaPictureViewNativeComponent.d.ts +2 -2
  262. package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +2 -2
  263. package/package.json +7 -6
  264. package/scripts/install-libs.js +16 -6
  265. package/src/animation/functions/interpolatePaths.ts +5 -6
  266. package/src/external/reanimated/interpolators.ts +25 -5
  267. package/src/skia/types/Path/PathBuilder.ts +303 -0
  268. package/src/skia/types/Path/PathBuilderFactory.ts +15 -0
  269. package/src/skia/types/Path/PathFactory.ts +108 -1
  270. package/src/skia/types/Path/index.ts +2 -0
  271. package/src/skia/types/Skia.ts +2 -1
  272. package/src/skia/web/Host.ts +7 -1
  273. package/src/skia/web/JsiSkCanvas.ts +6 -6
  274. package/src/skia/web/JsiSkContourMeasure.ts +4 -4
  275. package/src/skia/web/JsiSkPath.ts +451 -168
  276. package/src/skia/web/JsiSkPathBuilder.ts +293 -0
  277. package/src/skia/web/JsiSkPathBuilderFactory.ts +32 -0
  278. package/src/skia/web/JsiSkPathEffectFactory.ts +6 -2
  279. package/src/skia/web/JsiSkPathFactory.ts +231 -8
  280. package/src/skia/web/JsiSkia.ts +11 -8
  281. package/src/sksg/Recorder/commands/Drawing.ts +20 -7
  282. package/src/specs/SkiaPictureViewNativeComponent.ts +1 -2
  283. package/src/specs/WebGPUViewNativeComponent.ts +2 -2
  284. package/src/specs/WebGPUViewNativeComponent.web.ts +2 -0
  285. package/cpp/skia/include/effects/SkGradientShader.h +0 -359
  286. package/cpp/skia/include/gpu/graphite/LogPriority.h +0 -36
@@ -0,0 +1,45 @@
1
+ import type { CanvasKit, PathBuilder as CKPathBuilder } from "canvaskit-wasm";
2
+ import type { FillType, InputMatrix, InputRRect, SkMatrix, SkPath, SkPathBuilder, SkPoint, SkRect } from "../types";
3
+ import { HostObject } from "./Host";
4
+ /**
5
+ * Web implementation of SkPathBuilder using CanvasKit's native PathBuilder.
6
+ */
7
+ export declare class JsiSkPathBuilder extends HostObject<CKPathBuilder, "PathBuilder"> implements SkPathBuilder {
8
+ constructor(CanvasKit: CanvasKit, ref: CKPathBuilder);
9
+ moveTo(x: number, y: number): this;
10
+ rMoveTo(x: number, y: number): this;
11
+ lineTo(x: number, y: number): this;
12
+ rLineTo(x: number, y: number): this;
13
+ quadTo(x1: number, y1: number, x2: number, y2: number): this;
14
+ rQuadTo(x1: number, y1: number, x2: number, y2: number): this;
15
+ conicTo(x1: number, y1: number, x2: number, y2: number, w: number): this;
16
+ rConicTo(x1: number, y1: number, x2: number, y2: number, w: number): this;
17
+ cubicTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): this;
18
+ rCubicTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): this;
19
+ close(): this;
20
+ arcToOval(oval: SkRect, startAngleInDegrees: number, sweepAngleInDegrees: number, forceMoveTo: boolean): this;
21
+ arcToRotated(rx: number, ry: number, xAxisRotateInDegrees: number, useSmallArc: boolean, isCCW: boolean, x: number, y: number): this;
22
+ rArcTo(rx: number, ry: number, xAxisRotateInDegrees: number, useSmallArc: boolean, isCCW: boolean, dx: number, dy: number): this;
23
+ arcToTangent(x1: number, y1: number, x2: number, y2: number, radius: number): this;
24
+ addRect(rect: SkRect, isCCW?: boolean): this;
25
+ addOval(oval: SkRect, isCCW?: boolean, startIndex?: number): this;
26
+ addArc(oval: SkRect, startAngleInDegrees: number, sweepAngleInDegrees: number): this;
27
+ addRRect(rrect: InputRRect, isCCW?: boolean): this;
28
+ addCircle(x: number, y: number, r: number, _isCCW?: boolean): this;
29
+ addPoly(points: SkPoint[], close: boolean): this;
30
+ addPath(src: SkPath, matrix?: SkMatrix, extend?: boolean): this;
31
+ setFillType(fill: FillType): this;
32
+ setIsVolatile(_isVolatile: boolean): this;
33
+ reset(): this;
34
+ offset(dx: number, dy: number): this;
35
+ transform(m: InputMatrix): this;
36
+ computeBounds(): SkRect;
37
+ isEmpty(): boolean;
38
+ getLastPt(): {
39
+ x: number;
40
+ y: number;
41
+ };
42
+ countPoints(): number;
43
+ build(): SkPath;
44
+ detach(): SkPath;
45
+ }
@@ -0,0 +1,186 @@
1
+ import { getEnum, HostObject } from "./Host";
2
+ import { JsiSkPath, toMatrix3x3 } from "./JsiSkPath";
3
+ import { JsiSkMatrix } from "./JsiSkMatrix";
4
+ import { JsiSkPoint } from "./JsiSkPoint";
5
+ import { JsiSkRect } from "./JsiSkRect";
6
+ import { JsiSkRRect } from "./JsiSkRRect";
7
+
8
+ /**
9
+ * Web implementation of SkPathBuilder using CanvasKit's native PathBuilder.
10
+ */
11
+ export class JsiSkPathBuilder extends HostObject {
12
+ constructor(CanvasKit, ref) {
13
+ super(CanvasKit, ref, "PathBuilder");
14
+ }
15
+
16
+ // Movement methods
17
+ moveTo(x, y) {
18
+ this.ref.moveTo(x, y);
19
+ return this;
20
+ }
21
+ rMoveTo(x, y) {
22
+ this.ref.rMoveTo(x, y);
23
+ return this;
24
+ }
25
+ lineTo(x, y) {
26
+ this.ref.lineTo(x, y);
27
+ return this;
28
+ }
29
+ rLineTo(x, y) {
30
+ this.ref.rLineTo(x, y);
31
+ return this;
32
+ }
33
+
34
+ // Curve methods
35
+ quadTo(x1, y1, x2, y2) {
36
+ this.ref.quadTo(x1, y1, x2, y2);
37
+ return this;
38
+ }
39
+ rQuadTo(x1, y1, x2, y2) {
40
+ this.ref.rQuadTo(x1, y1, x2, y2);
41
+ return this;
42
+ }
43
+ conicTo(x1, y1, x2, y2, w) {
44
+ this.ref.conicTo(x1, y1, x2, y2, w);
45
+ return this;
46
+ }
47
+ rConicTo(x1, y1, x2, y2, w) {
48
+ this.ref.rConicTo(x1, y1, x2, y2, w);
49
+ return this;
50
+ }
51
+ cubicTo(x1, y1, x2, y2, x3, y3) {
52
+ this.ref.cubicTo(x1, y1, x2, y2, x3, y3);
53
+ return this;
54
+ }
55
+ rCubicTo(x1, y1, x2, y2, x3, y3) {
56
+ this.ref.rCubicTo(x1, y1, x2, y2, x3, y3);
57
+ return this;
58
+ }
59
+ close() {
60
+ this.ref.close();
61
+ return this;
62
+ }
63
+
64
+ // Arc methods
65
+ arcToOval(oval, startAngleInDegrees, sweepAngleInDegrees, forceMoveTo) {
66
+ this.ref.arcToOval(JsiSkRect.fromValue(this.CanvasKit, oval), startAngleInDegrees, sweepAngleInDegrees, forceMoveTo);
67
+ return this;
68
+ }
69
+ arcToRotated(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, x, y) {
70
+ this.ref.arcToRotated(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, x, y);
71
+ return this;
72
+ }
73
+ rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy) {
74
+ this.ref.rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy);
75
+ return this;
76
+ }
77
+ arcToTangent(x1, y1, x2, y2, radius) {
78
+ this.ref.arcToTangent(x1, y1, x2, y2, radius);
79
+ return this;
80
+ }
81
+
82
+ // Shape methods
83
+ addRect(rect, isCCW) {
84
+ this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);
85
+ return this;
86
+ }
87
+ addOval(oval, isCCW, startIndex) {
88
+ this.ref.addOval(JsiSkRect.fromValue(this.CanvasKit, oval), isCCW, startIndex);
89
+ return this;
90
+ }
91
+ addArc(oval, startAngleInDegrees, sweepAngleInDegrees) {
92
+ this.ref.addArc(JsiSkRect.fromValue(this.CanvasKit, oval), startAngleInDegrees, sweepAngleInDegrees);
93
+ return this;
94
+ }
95
+ addRRect(rrect, isCCW) {
96
+ this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);
97
+ return this;
98
+ }
99
+ addCircle(x, y, r, _isCCW) {
100
+ this.ref.addCircle(x, y, r);
101
+ return this;
102
+ }
103
+ addPoly(points, close) {
104
+ this.ref.addPolygon(points.map(p => Array.from(JsiSkPoint.fromValue(p))).flat(), close);
105
+ return this;
106
+ }
107
+ addPath(src, matrix, extend = false) {
108
+ const srcPath = JsiSkPath.pathFromValue(src);
109
+ const args = [srcPath, ...(matrix ? JsiSkMatrix.fromValue(matrix) : []), extend];
110
+ this.ref.addPath(...args);
111
+ srcPath.delete();
112
+ return this;
113
+ }
114
+
115
+ // Configuration methods
116
+ setFillType(fill) {
117
+ this.ref.setFillType(getEnum(this.CanvasKit, "FillType", fill));
118
+ return this;
119
+ }
120
+ setIsVolatile(_isVolatile) {
121
+ // Not supported in CanvasKit PathBuilder - no-op
122
+ return this;
123
+ }
124
+ reset() {
125
+ // CanvasKit PathBuilder doesn't have reset - recreate
126
+ const newBuilder = new this.CanvasKit.PathBuilder();
127
+ // Swap the ref - delete old one
128
+ if (this.ref !== null && typeof this.ref === "object" && "delete" in this.ref && typeof this.ref.delete === "function") {
129
+ this.ref.delete();
130
+ }
131
+ this.ref = newBuilder;
132
+ return this;
133
+ }
134
+ offset(dx, dy) {
135
+ this.ref.offset(dx, dy);
136
+ return this;
137
+ }
138
+ transform(m) {
139
+ const matrix = toMatrix3x3(m);
140
+ this.ref.transform(matrix);
141
+ return this;
142
+ }
143
+
144
+ // Query methods
145
+ computeBounds() {
146
+ return new JsiSkRect(this.CanvasKit, this.ref.getBounds());
147
+ }
148
+ isEmpty() {
149
+ return this.ref.isEmpty();
150
+ }
151
+ getLastPt() {
152
+ const count = this.ref.countPoints();
153
+ if (count === 0) {
154
+ return {
155
+ x: 0,
156
+ y: 0
157
+ };
158
+ }
159
+ // PathBuilder doesn't have getPoint - snapshot to get it
160
+ const path = this.ref.snapshot();
161
+ const pt = path.getPoint(count - 1);
162
+ path.delete();
163
+ return {
164
+ x: pt[0],
165
+ y: pt[1]
166
+ };
167
+ }
168
+ countPoints() {
169
+ return this.ref.countPoints();
170
+ }
171
+
172
+ // Build methods
173
+ build() {
174
+ const path = this.ref.snapshot();
175
+ const builder = new this.CanvasKit.PathBuilder(path);
176
+ path.delete();
177
+ return new JsiSkPath(this.CanvasKit, builder);
178
+ }
179
+ detach() {
180
+ const path = this.ref.detach();
181
+ const builder = new this.CanvasKit.PathBuilder(path);
182
+ path.delete();
183
+ return new JsiSkPath(this.CanvasKit, builder);
184
+ }
185
+ }
186
+ //# sourceMappingURL=JsiSkPathBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getEnum","HostObject","JsiSkPath","toMatrix3x3","JsiSkMatrix","JsiSkPoint","JsiSkRect","JsiSkRRect","JsiSkPathBuilder","constructor","CanvasKit","ref","moveTo","x","y","rMoveTo","lineTo","rLineTo","quadTo","x1","y1","x2","y2","rQuadTo","conicTo","w","rConicTo","cubicTo","x3","y3","rCubicTo","close","arcToOval","oval","startAngleInDegrees","sweepAngleInDegrees","forceMoveTo","fromValue","arcToRotated","rx","ry","xAxisRotateInDegrees","useSmallArc","isCCW","rArcTo","dx","dy","arcToTangent","radius","addRect","rect","addOval","startIndex","addArc","addRRect","rrect","addCircle","r","_isCCW","addPoly","points","addPolygon","map","p","Array","from","flat","addPath","src","matrix","extend","srcPath","pathFromValue","args","delete","setFillType","fill","setIsVolatile","_isVolatile","reset","newBuilder","PathBuilder","offset","transform","m","computeBounds","getBounds","isEmpty","getLastPt","count","countPoints","path","snapshot","pt","getPoint","build","builder","detach"],"sources":["JsiSkPathBuilder.ts"],"sourcesContent":["import type { CanvasKit, PathBuilder as CKPathBuilder } from \"canvaskit-wasm\";\n\nimport type {\n FillType,\n InputMatrix,\n InputRRect,\n SkMatrix,\n SkPath,\n SkPathBuilder,\n SkPoint,\n SkRect,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkPath, toMatrix3x3 } from \"./JsiSkPath\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\n\n/**\n * Web implementation of SkPathBuilder using CanvasKit's native PathBuilder.\n */\nexport class JsiSkPathBuilder\n extends HostObject<CKPathBuilder, \"PathBuilder\">\n implements SkPathBuilder\n{\n constructor(CanvasKit: CanvasKit, ref: CKPathBuilder) {\n super(CanvasKit, ref, \"PathBuilder\");\n }\n\n // Movement methods\n moveTo(x: number, y: number) {\n this.ref.moveTo(x, y);\n return this;\n }\n\n rMoveTo(x: number, y: number) {\n this.ref.rMoveTo(x, y);\n return this;\n }\n\n lineTo(x: number, y: number) {\n this.ref.lineTo(x, y);\n return this;\n }\n\n rLineTo(x: number, y: number) {\n this.ref.rLineTo(x, y);\n return this;\n }\n\n // Curve methods\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.quadTo(x1, y1, x2, y2);\n return this;\n }\n\n rQuadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.rQuadTo(x1, y1, x2, y2);\n return this;\n }\n\n conicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n this.ref.conicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n rConicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n this.ref.rConicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n cubicTo(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number\n ) {\n this.ref.cubicTo(x1, y1, x2, y2, x3, y3);\n return this;\n }\n\n rCubicTo(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number\n ) {\n this.ref.rCubicTo(x1, y1, x2, y2, x3, y3);\n return this;\n }\n\n close() {\n this.ref.close();\n return this;\n }\n\n // Arc methods\n arcToOval(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number,\n forceMoveTo: boolean\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 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 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 this.ref.arcToTangent(x1, y1, x2, y2, radius);\n return this;\n }\n\n // Shape methods\n addRect(rect: SkRect, isCCW?: boolean) {\n this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n return this;\n }\n\n addOval(oval: SkRect, isCCW?: boolean, startIndex?: number) {\n this.ref.addOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n isCCW,\n startIndex\n );\n return this;\n }\n\n addArc(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number\n ) {\n this.ref.addArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees\n );\n return this;\n }\n\n addRRect(rrect: InputRRect, isCCW?: boolean) {\n this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return this;\n }\n\n addCircle(x: number, y: number, r: number, _isCCW?: boolean) {\n this.ref.addCircle(x, y, r);\n return this;\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n this.ref.addPolygon(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return this;\n }\n\n addPath(src: SkPath, matrix?: SkMatrix, extend = false) {\n const srcPath = JsiSkPath.pathFromValue(src);\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 // Configuration methods\n setFillType(fill: FillType) {\n this.ref.setFillType(getEnum(this.CanvasKit, \"FillType\", fill));\n return this;\n }\n\n setIsVolatile(_isVolatile: boolean) {\n // Not supported in CanvasKit PathBuilder - no-op\n return this;\n }\n\n reset() {\n // CanvasKit PathBuilder doesn't have reset - recreate\n const newBuilder = new this.CanvasKit.PathBuilder();\n // Swap the ref - delete old one\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 offset(dx: number, dy: number) {\n this.ref.offset(dx, dy);\n return this;\n }\n\n transform(m: InputMatrix) {\n const matrix = toMatrix3x3(m);\n this.ref.transform(matrix);\n return this;\n }\n\n // Query methods\n computeBounds(): SkRect {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n isEmpty(): boolean {\n return this.ref.isEmpty();\n }\n\n getLastPt(): { x: number; y: number } {\n const count = this.ref.countPoints();\n if (count === 0) {\n return { x: 0, y: 0 };\n }\n // PathBuilder doesn't have getPoint - snapshot to get it\n const path = this.ref.snapshot();\n const pt = path.getPoint(count - 1);\n path.delete();\n return { x: pt[0], y: pt[1] };\n }\n\n countPoints(): number {\n return this.ref.countPoints();\n }\n\n // Build methods\n build(): SkPath {\n const path = this.ref.snapshot();\n const builder = new this.CanvasKit.PathBuilder(path);\n path.delete();\n return new JsiSkPath(this.CanvasKit, builder);\n }\n\n detach(): SkPath {\n const path = this.ref.detach();\n const builder = new this.CanvasKit.PathBuilder(path);\n path.delete();\n return new JsiSkPath(this.CanvasKit, builder);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import type { CanvasKit } from "canvaskit-wasm";
2
+ import type { PathBuilderFactory, SkPath } from "../types";
3
+ import { Host } from "./Host";
4
+ import { JsiSkPathBuilder } from "./JsiSkPathBuilder";
5
+ export declare class JsiSkPathBuilderFactory extends Host implements PathBuilderFactory {
6
+ constructor(CanvasKit: CanvasKit);
7
+ Make(): JsiSkPathBuilder;
8
+ MakeFromPath(path: SkPath): JsiSkPathBuilder;
9
+ }
@@ -0,0 +1,19 @@
1
+ import { Host } from "./Host";
2
+ import { JsiSkPath } from "./JsiSkPath";
3
+ import { JsiSkPathBuilder } from "./JsiSkPathBuilder";
4
+ export class JsiSkPathBuilderFactory extends Host {
5
+ constructor(CanvasKit) {
6
+ super(CanvasKit);
7
+ }
8
+ Make() {
9
+ return new JsiSkPathBuilder(this.CanvasKit, new this.CanvasKit.PathBuilder());
10
+ }
11
+ MakeFromPath(path) {
12
+ const srcBuilder = JsiSkPath.fromValue(path);
13
+ const srcPath = srcBuilder.snapshot();
14
+ const builder = new this.CanvasKit.PathBuilder(srcPath);
15
+ srcPath.delete();
16
+ return new JsiSkPathBuilder(this.CanvasKit, builder);
17
+ }
18
+ }
19
+ //# sourceMappingURL=JsiSkPathBuilderFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Host","JsiSkPath","JsiSkPathBuilder","JsiSkPathBuilderFactory","constructor","CanvasKit","Make","PathBuilder","MakeFromPath","path","srcBuilder","fromValue","srcPath","snapshot","builder","delete"],"sources":["JsiSkPathBuilderFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type { PathBuilderFactory, SkPath } from \"../types\";\n\nimport { Host } from \"./Host\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkPathBuilder } from \"./JsiSkPathBuilder\";\n\nexport class JsiSkPathBuilderFactory\n extends Host\n implements PathBuilderFactory\n{\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n Make() {\n return new JsiSkPathBuilder(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder()\n );\n }\n\n MakeFromPath(path: SkPath) {\n const srcBuilder =\n JsiSkPath.fromValue<CanvasKit[\"PathBuilder\"][\"prototype\"]>(path);\n const srcPath = srcBuilder.snapshot();\n const builder = new this.CanvasKit.PathBuilder(srcPath);\n srcPath.delete();\n return new JsiSkPathBuilder(this.CanvasKit, builder);\n }\n}\n"],"mappings":"AAIA,SAASA,IAAI,QAAQ,QAAQ;AAC7B,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,OAAO,MAAMC,uBAAuB,SAC1BH,IAAI,CAEd;EACEI,WAAWA,CAACC,SAAoB,EAAE;IAChC,KAAK,CAACA,SAAS,CAAC;EAClB;EAEAC,IAAIA,CAAA,EAAG;IACL,OAAO,IAAIJ,gBAAgB,CACzB,IAAI,CAACG,SAAS,EACd,IAAI,IAAI,CAACA,SAAS,CAACE,WAAW,CAAC,CACjC,CAAC;EACH;EAEAC,YAAYA,CAACC,IAAY,EAAE;IACzB,MAAMC,UAAU,GACdT,SAAS,CAACU,SAAS,CAAwCF,IAAI,CAAC;IAClE,MAAMG,OAAO,GAAGF,UAAU,CAACG,QAAQ,CAAC,CAAC;IACrC,MAAMC,OAAO,GAAG,IAAI,IAAI,CAACT,SAAS,CAACE,WAAW,CAACK,OAAO,CAAC;IACvDA,OAAO,CAACG,MAAM,CAAC,CAAC;IAChB,OAAO,IAAIb,gBAAgB,CAAC,IAAI,CAACG,SAAS,EAAES,OAAO,CAAC;EACtD;AACF","ignoreList":[]}
@@ -35,14 +35,18 @@ export class JsiSkPathEffectFactory extends Host {
35
35
  return new JsiSkPathEffect(this.CanvasKit, pe);
36
36
  }
37
37
  MakePath1D(path, advance, phase, style) {
38
- const pe = this.CanvasKit.PathEffect.MakePath1D(JsiSkPath.fromValue(path), advance, phase, getEnum(this.CanvasKit, "Path1DEffect", style));
38
+ const p = JsiSkPath.pathFromValue(path);
39
+ const pe = this.CanvasKit.PathEffect.MakePath1D(p, advance, phase, getEnum(this.CanvasKit, "Path1DEffect", style));
40
+ p.delete();
39
41
  if (pe === null) {
40
42
  return null;
41
43
  }
42
44
  return new JsiSkPathEffect(this.CanvasKit, pe);
43
45
  }
44
46
  MakePath2D(matrix, path) {
45
- const pe = this.CanvasKit.PathEffect.MakePath2D(JsiSkMatrix.fromValue(matrix), JsiSkPath.fromValue(path));
47
+ const p = JsiSkPath.pathFromValue(path);
48
+ const pe = this.CanvasKit.PathEffect.MakePath2D(JsiSkMatrix.fromValue(matrix), p);
49
+ p.delete();
46
50
  if (pe === null) {
47
51
  return null;
48
52
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getEnum","Host","throwNotImplementedOnRNWeb","JsiSkMatrix","JsiSkPath","JsiSkPathEffect","JsiSkPathEffectFactory","constructor","CanvasKit","MakeCorner","radius","pe","PathEffect","MakeDash","intervals","phase","MakeDiscrete","segLength","dev","seedAssist","MakeCompose","_outer","_inner","MakeSum","MakeLine2D","width","matrix","fromValue","MakePath1D","path","advance","style","MakePath2D"],"sources":["JsiSkPathEffectFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type {\n Path1DEffectStyle,\n PathEffectFactory,\n SkMatrix,\n SkPath,\n SkPathEffect,\n} from \"../types\";\n\nimport { getEnum, Host, throwNotImplementedOnRNWeb } from \"./Host\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkPathEffect } from \"./JsiSkPathEffect\";\n\nexport class JsiSkPathEffectFactory extends Host implements PathEffectFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n MakeCorner(radius: number) {\n const pe = this.CanvasKit.PathEffect.MakeCorner(radius);\n if (pe === null) {\n return null;\n }\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n\n MakeDash(intervals: number[], phase?: number) {\n const pe = this.CanvasKit.PathEffect.MakeDash(intervals, phase);\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n\n MakeDiscrete(segLength: number, dev: number, seedAssist: number) {\n const pe = this.CanvasKit.PathEffect.MakeDiscrete(\n segLength,\n dev,\n seedAssist\n );\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n\n MakeCompose(_outer: SkPathEffect, _inner: SkPathEffect) {\n return throwNotImplementedOnRNWeb<SkPathEffect>();\n }\n\n MakeSum(_outer: SkPathEffect, _inner: SkPathEffect) {\n return throwNotImplementedOnRNWeb<SkPathEffect>();\n }\n\n MakeLine2D(width: number, matrix: SkMatrix) {\n const pe = this.CanvasKit.PathEffect.MakeLine2D(\n width,\n JsiSkMatrix.fromValue(matrix)\n );\n if (pe === null) {\n return null;\n }\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n\n MakePath1D(\n path: SkPath,\n advance: number,\n phase: number,\n style: Path1DEffectStyle\n ) {\n const pe = this.CanvasKit.PathEffect.MakePath1D(\n JsiSkPath.fromValue(path),\n advance,\n phase,\n getEnum(this.CanvasKit, \"Path1DEffect\", style)\n );\n if (pe === null) {\n return null;\n }\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n\n MakePath2D(matrix: SkMatrix, path: SkPath) {\n const pe = this.CanvasKit.PathEffect.MakePath2D(\n JsiSkMatrix.fromValue(matrix),\n JsiSkPath.fromValue(path)\n );\n if (pe === null) {\n return null;\n }\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n}\n"],"mappings":"AAUA,SAASA,OAAO,EAAEC,IAAI,EAAEC,0BAA0B,QAAQ,QAAQ;AAClE,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,OAAO,MAAMC,sBAAsB,SAASL,IAAI,CAA8B;EAC5EM,WAAWA,CAACC,SAAoB,EAAE;IAChC,KAAK,CAACA,SAAS,CAAC;EAClB;EAEAC,UAAUA,CAACC,MAAc,EAAE;IACzB,MAAMC,EAAE,GAAG,IAAI,CAACH,SAAS,CAACI,UAAU,CAACH,UAAU,CAACC,MAAM,CAAC;IACvD,IAAIC,EAAE,KAAK,IAAI,EAAE;MACf,OAAO,IAAI;IACb;IACA,OAAO,IAAIN,eAAe,CAAC,IAAI,CAACG,SAAS,EAAEG,EAAE,CAAC;EAChD;EAEAE,QAAQA,CAACC,SAAmB,EAAEC,KAAc,EAAE;IAC5C,MAAMJ,EAAE,GAAG,IAAI,CAACH,SAAS,CAACI,UAAU,CAACC,QAAQ,CAACC,SAAS,EAAEC,KAAK,CAAC;IAC/D,OAAO,IAAIV,eAAe,CAAC,IAAI,CAACG,SAAS,EAAEG,EAAE,CAAC;EAChD;EAEAK,YAAYA,CAACC,SAAiB,EAAEC,GAAW,EAAEC,UAAkB,EAAE;IAC/D,MAAMR,EAAE,GAAG,IAAI,CAACH,SAAS,CAACI,UAAU,CAACI,YAAY,CAC/CC,SAAS,EACTC,GAAG,EACHC,UACF,CAAC;IACD,OAAO,IAAId,eAAe,CAAC,IAAI,CAACG,SAAS,EAAEG,EAAE,CAAC;EAChD;EAEAS,WAAWA,CAACC,MAAoB,EAAEC,MAAoB,EAAE;IACtD,OAAOpB,0BAA0B,CAAe,CAAC;EACnD;EAEAqB,OAAOA,CAACF,MAAoB,EAAEC,MAAoB,EAAE;IAClD,OAAOpB,0BAA0B,CAAe,CAAC;EACnD;EAEAsB,UAAUA,CAACC,KAAa,EAAEC,MAAgB,EAAE;IAC1C,MAAMf,EAAE,GAAG,IAAI,CAACH,SAAS,CAACI,UAAU,CAACY,UAAU,CAC7CC,KAAK,EACLtB,WAAW,CAACwB,SAAS,CAACD,MAAM,CAC9B,CAAC;IACD,IAAIf,EAAE,KAAK,IAAI,EAAE;MACf,OAAO,IAAI;IACb;IACA,OAAO,IAAIN,eAAe,CAAC,IAAI,CAACG,SAAS,EAAEG,EAAE,CAAC;EAChD;EAEAiB,UAAUA,CACRC,IAAY,EACZC,OAAe,EACff,KAAa,EACbgB,KAAwB,EACxB;IACA,MAAMpB,EAAE,GAAG,IAAI,CAACH,SAAS,CAACI,UAAU,CAACgB,UAAU,CAC7CxB,SAAS,CAACuB,SAAS,CAACE,IAAI,CAAC,EACzBC,OAAO,EACPf,KAAK,EACLf,OAAO,CAAC,IAAI,CAACQ,SAAS,EAAE,cAAc,EAAEuB,KAAK,CAC/C,CAAC;IACD,IAAIpB,EAAE,KAAK,IAAI,EAAE;MACf,OAAO,IAAI;IACb;IACA,OAAO,IAAIN,eAAe,CAAC,IAAI,CAACG,SAAS,EAAEG,EAAE,CAAC;EAChD;EAEAqB,UAAUA,CAACN,MAAgB,EAAEG,IAAY,EAAE;IACzC,MAAMlB,EAAE,GAAG,IAAI,CAACH,SAAS,CAACI,UAAU,CAACoB,UAAU,CAC7C7B,WAAW,CAACwB,SAAS,CAACD,MAAM,CAAC,EAC7BtB,SAAS,CAACuB,SAAS,CAACE,IAAI,CAC1B,CAAC;IACD,IAAIlB,EAAE,KAAK,IAAI,EAAE;MACf,OAAO,IAAI;IACb;IACA,OAAO,IAAIN,eAAe,CAAC,IAAI,CAACG,SAAS,EAAEG,EAAE,CAAC;EAChD;AACF","ignoreList":[]}
1
+ {"version":3,"names":["getEnum","Host","throwNotImplementedOnRNWeb","JsiSkMatrix","JsiSkPath","JsiSkPathEffect","JsiSkPathEffectFactory","constructor","CanvasKit","MakeCorner","radius","pe","PathEffect","MakeDash","intervals","phase","MakeDiscrete","segLength","dev","seedAssist","MakeCompose","_outer","_inner","MakeSum","MakeLine2D","width","matrix","fromValue","MakePath1D","path","advance","style","p","pathFromValue","delete","MakePath2D"],"sources":["JsiSkPathEffectFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type {\n Path1DEffectStyle,\n PathEffectFactory,\n SkMatrix,\n SkPath,\n SkPathEffect,\n} from \"../types\";\n\nimport { getEnum, Host, throwNotImplementedOnRNWeb } from \"./Host\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkPathEffect } from \"./JsiSkPathEffect\";\n\nexport class JsiSkPathEffectFactory extends Host implements PathEffectFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n MakeCorner(radius: number) {\n const pe = this.CanvasKit.PathEffect.MakeCorner(radius);\n if (pe === null) {\n return null;\n }\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n\n MakeDash(intervals: number[], phase?: number) {\n const pe = this.CanvasKit.PathEffect.MakeDash(intervals, phase);\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n\n MakeDiscrete(segLength: number, dev: number, seedAssist: number) {\n const pe = this.CanvasKit.PathEffect.MakeDiscrete(\n segLength,\n dev,\n seedAssist\n );\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n\n MakeCompose(_outer: SkPathEffect, _inner: SkPathEffect) {\n return throwNotImplementedOnRNWeb<SkPathEffect>();\n }\n\n MakeSum(_outer: SkPathEffect, _inner: SkPathEffect) {\n return throwNotImplementedOnRNWeb<SkPathEffect>();\n }\n\n MakeLine2D(width: number, matrix: SkMatrix) {\n const pe = this.CanvasKit.PathEffect.MakeLine2D(\n width,\n JsiSkMatrix.fromValue(matrix)\n );\n if (pe === null) {\n return null;\n }\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n\n MakePath1D(\n path: SkPath,\n advance: number,\n phase: number,\n style: Path1DEffectStyle\n ) {\n const p = JsiSkPath.pathFromValue(path);\n const pe = this.CanvasKit.PathEffect.MakePath1D(\n p,\n advance,\n phase,\n getEnum(this.CanvasKit, \"Path1DEffect\", style)\n );\n p.delete();\n if (pe === null) {\n return null;\n }\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n\n MakePath2D(matrix: SkMatrix, path: SkPath) {\n const p = JsiSkPath.pathFromValue(path);\n const pe = this.CanvasKit.PathEffect.MakePath2D(\n JsiSkMatrix.fromValue(matrix),\n p\n );\n p.delete();\n if (pe === null) {\n return null;\n }\n return new JsiSkPathEffect(this.CanvasKit, pe);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { CanvasKit } from "canvaskit-wasm";
2
- import type { PathCommand, PathOp, SkFont, SkPath } from "../types";
2
+ import type { InputRRect, PathCommand, PathOp, SkFont, SkPath, SkPoint, SkRect, StrokeOpts } from "../types";
3
3
  import type { PathFactory } from "../types/Path/PathFactory";
4
4
  import { Host } from "./Host";
5
5
  import { JsiSkPath } from "./JsiSkPath";
@@ -10,4 +10,16 @@ export declare class JsiSkPathFactory extends Host implements PathFactory {
10
10
  MakeFromOp(one: SkPath, two: SkPath, op: PathOp): JsiSkPath | null;
11
11
  MakeFromCmds(cmds: PathCommand[]): JsiSkPath | null;
12
12
  MakeFromText(_text: string, _x: number, _y: number, _font: SkFont): SkPath;
13
+ Rect(rect: SkRect, isCCW?: boolean): JsiSkPath;
14
+ Oval(rect: SkRect, isCCW?: boolean, startIndex?: number): JsiSkPath;
15
+ Circle(x: number, y: number, r: number): JsiSkPath;
16
+ RRect(rrect: InputRRect, isCCW?: boolean): JsiSkPath;
17
+ Line(p1: SkPoint, p2: SkPoint): JsiSkPath;
18
+ Polygon(points: SkPoint[], close: boolean): JsiSkPath;
19
+ Stroke(srcPath: SkPath, opts?: StrokeOpts): JsiSkPath | null;
20
+ Trim(srcPath: SkPath, start: number, end: number, isComplement: boolean): JsiSkPath | null;
21
+ Simplify(srcPath: SkPath): JsiSkPath | null;
22
+ Dash(srcPath: SkPath, on: number, off: number, phase: number): JsiSkPath | null;
23
+ AsWinding(srcPath: SkPath): JsiSkPath | null;
24
+ Interpolate(start: SkPath, end: SkPath, weight: number): JsiSkPath | null;
13
25
  }
@@ -1,35 +1,170 @@
1
- import { Host, getEnum, throwNotImplementedOnRNWeb } from "./Host";
1
+ import { Host, getEnum, optEnum, throwNotImplementedOnRNWeb } from "./Host";
2
2
  import { JsiSkPath } from "./JsiSkPath";
3
+ import { JsiSkPoint } from "./JsiSkPoint";
4
+ import { JsiSkRect } from "./JsiSkRect";
5
+ import { JsiSkRRect } from "./JsiSkRRect";
6
+ const pinT = t => Math.min(Math.max(t, 0), 1);
3
7
  export class JsiSkPathFactory extends Host {
4
8
  constructor(CanvasKit) {
5
9
  super(CanvasKit);
6
10
  }
7
11
  Make() {
8
- return new JsiSkPath(this.CanvasKit, new this.CanvasKit.Path());
12
+ return new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder());
9
13
  }
10
14
  MakeFromSVGString(str) {
11
15
  const path = this.CanvasKit.Path.MakeFromSVGString(str);
12
16
  if (path === null) {
13
17
  return null;
14
18
  }
15
- return new JsiSkPath(this.CanvasKit, path);
19
+ const result = new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder(path));
20
+ path.delete();
21
+ return result;
16
22
  }
17
23
  MakeFromOp(one, two, op) {
18
- const path = this.CanvasKit.Path.MakeFromOp(JsiSkPath.fromValue(one), JsiSkPath.fromValue(two), getEnum(this.CanvasKit, "PathOp", op));
24
+ const p1 = JsiSkPath.fromValue(one).snapshot();
25
+ const p2 = JsiSkPath.fromValue(two).snapshot();
26
+ const path = this.CanvasKit.Path.MakeFromOp(p1, p2, getEnum(this.CanvasKit, "PathOp", op));
27
+ p1.delete();
28
+ p2.delete();
19
29
  if (path === null) {
20
30
  return null;
21
31
  }
22
- return new JsiSkPath(this.CanvasKit, path);
32
+ const result = new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder(path));
33
+ path.delete();
34
+ return result;
23
35
  }
24
36
  MakeFromCmds(cmds) {
25
37
  const path = this.CanvasKit.Path.MakeFromCmds(cmds.flat());
26
38
  if (path === null) {
27
39
  return null;
28
40
  }
29
- return new JsiSkPath(this.CanvasKit, path);
41
+ const result = new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder(path));
42
+ path.delete();
43
+ return result;
30
44
  }
31
45
  MakeFromText(_text, _x, _y, _font) {
32
46
  return throwNotImplementedOnRNWeb();
33
47
  }
48
+
49
+ // Static shape factories
50
+
51
+ Rect(rect, isCCW) {
52
+ const builder = new this.CanvasKit.PathBuilder();
53
+ builder.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);
54
+ return new JsiSkPath(this.CanvasKit, builder);
55
+ }
56
+ Oval(rect, isCCW, startIndex) {
57
+ const builder = new this.CanvasKit.PathBuilder();
58
+ builder.addOval(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW, startIndex);
59
+ return new JsiSkPath(this.CanvasKit, builder);
60
+ }
61
+ Circle(x, y, r) {
62
+ const builder = new this.CanvasKit.PathBuilder();
63
+ builder.addCircle(x, y, r);
64
+ return new JsiSkPath(this.CanvasKit, builder);
65
+ }
66
+ RRect(rrect, isCCW) {
67
+ const builder = new this.CanvasKit.PathBuilder();
68
+ builder.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);
69
+ return new JsiSkPath(this.CanvasKit, builder);
70
+ }
71
+ Line(p1, p2) {
72
+ const builder = new this.CanvasKit.PathBuilder();
73
+ const pt1 = JsiSkPoint.fromValue(p1);
74
+ const pt2 = JsiSkPoint.fromValue(p2);
75
+ builder.moveTo(pt1[0], pt1[1]);
76
+ builder.lineTo(pt2[0], pt2[1]);
77
+ return new JsiSkPath(this.CanvasKit, builder);
78
+ }
79
+ Polygon(points, close) {
80
+ const builder = new this.CanvasKit.PathBuilder();
81
+ builder.addPolygon(points.map(p => Array.from(JsiSkPoint.fromValue(p))).flat(), close);
82
+ return new JsiSkPath(this.CanvasKit, builder);
83
+ }
84
+
85
+ // Static path operations
86
+
87
+ Stroke(srcPath, opts) {
88
+ const path = JsiSkPath.fromValue(srcPath).snapshot();
89
+ const result = path.makeStroked(opts === undefined ? undefined : {
90
+ width: opts.width,
91
+ // eslint-disable-next-line camelcase
92
+ miter_limit: opts.miter_limit,
93
+ precision: opts.precision,
94
+ join: optEnum(this.CanvasKit, "StrokeJoin", opts.join),
95
+ cap: optEnum(this.CanvasKit, "StrokeCap", opts.cap)
96
+ });
97
+ path.delete();
98
+ if (result === null) {
99
+ return null;
100
+ }
101
+ const r = new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder(result));
102
+ result.delete();
103
+ return r;
104
+ }
105
+ Trim(srcPath, start, end, isComplement) {
106
+ const startT = pinT(start);
107
+ const stopT = pinT(end);
108
+ const path = JsiSkPath.fromValue(srcPath).snapshot();
109
+ if (startT <= 0 && stopT >= 1 && !isComplement) {
110
+ const r = new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder(path));
111
+ path.delete();
112
+ return r;
113
+ }
114
+ const result = path.makeTrimmed(startT, stopT, isComplement);
115
+ path.delete();
116
+ if (result === null) {
117
+ return null;
118
+ }
119
+ const r = new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder(result));
120
+ result.delete();
121
+ return r;
122
+ }
123
+ Simplify(srcPath) {
124
+ const path = JsiSkPath.fromValue(srcPath).snapshot();
125
+ const result = path.makeSimplified();
126
+ path.delete();
127
+ if (result === null) {
128
+ return null;
129
+ }
130
+ const r = new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder(result));
131
+ result.delete();
132
+ return r;
133
+ }
134
+ Dash(srcPath, on, off, phase) {
135
+ const path = JsiSkPath.fromValue(srcPath).snapshot();
136
+ const result = path.makeDashed(on, off, phase);
137
+ path.delete();
138
+ if (result === null) {
139
+ return null;
140
+ }
141
+ const r = new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder(result));
142
+ result.delete();
143
+ return r;
144
+ }
145
+ AsWinding(srcPath) {
146
+ const path = JsiSkPath.fromValue(srcPath).snapshot();
147
+ const result = path.makeAsWinding();
148
+ path.delete();
149
+ if (result === null) {
150
+ return null;
151
+ }
152
+ const r = new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder(result));
153
+ result.delete();
154
+ return r;
155
+ }
156
+ Interpolate(start, end, weight) {
157
+ const p1 = JsiSkPath.fromValue(start).snapshot();
158
+ const p2 = JsiSkPath.fromValue(end).snapshot();
159
+ const path = this.CanvasKit.Path.MakeFromPathInterpolation(p1, p2, weight);
160
+ p1.delete();
161
+ p2.delete();
162
+ if (path === null) {
163
+ return null;
164
+ }
165
+ const r = new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder(path));
166
+ path.delete();
167
+ return r;
168
+ }
34
169
  }
35
170
  //# sourceMappingURL=JsiSkPathFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Host","getEnum","throwNotImplementedOnRNWeb","JsiSkPath","JsiSkPathFactory","constructor","CanvasKit","Make","Path","MakeFromSVGString","str","path","MakeFromOp","one","two","op","fromValue","MakeFromCmds","cmds","flat","MakeFromText","_text","_x","_y","_font"],"sources":["JsiSkPathFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type { PathCommand, PathOp, SkFont, SkPath } from \"../types\";\nimport type { PathFactory } from \"../types/Path/PathFactory\";\n\nimport { Host, getEnum, throwNotImplementedOnRNWeb } from \"./Host\";\nimport { JsiSkPath } from \"./JsiSkPath\";\n\nexport class JsiSkPathFactory extends Host implements PathFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n Make() {\n return new JsiSkPath(this.CanvasKit, new this.CanvasKit.Path());\n }\n\n MakeFromSVGString(str: string) {\n const path = this.CanvasKit.Path.MakeFromSVGString(str);\n if (path === null) {\n return null;\n }\n return new JsiSkPath(this.CanvasKit, path);\n }\n\n MakeFromOp(one: SkPath, two: SkPath, op: PathOp) {\n const path = this.CanvasKit.Path.MakeFromOp(\n JsiSkPath.fromValue(one),\n JsiSkPath.fromValue(two),\n getEnum(this.CanvasKit, \"PathOp\", op)\n );\n if (path === null) {\n return null;\n }\n return new JsiSkPath(this.CanvasKit, path);\n }\n\n MakeFromCmds(cmds: PathCommand[]) {\n const path = this.CanvasKit.Path.MakeFromCmds(cmds.flat());\n if (path === null) {\n return null;\n }\n return new JsiSkPath(this.CanvasKit, path);\n }\n\n MakeFromText(_text: string, _x: number, _y: number, _font: SkFont) {\n return throwNotImplementedOnRNWeb<SkPath>();\n }\n}\n"],"mappings":"AAKA,SAASA,IAAI,EAAEC,OAAO,EAAEC,0BAA0B,QAAQ,QAAQ;AAClE,SAASC,SAAS,QAAQ,aAAa;AAEvC,OAAO,MAAMC,gBAAgB,SAASJ,IAAI,CAAwB;EAChEK,WAAWA,CAACC,SAAoB,EAAE;IAChC,KAAK,CAACA,SAAS,CAAC;EAClB;EAEAC,IAAIA,CAAA,EAAG;IACL,OAAO,IAAIJ,SAAS,CAAC,IAAI,CAACG,SAAS,EAAE,IAAI,IAAI,CAACA,SAAS,CAACE,IAAI,CAAC,CAAC,CAAC;EACjE;EAEAC,iBAAiBA,CAACC,GAAW,EAAE;IAC7B,MAAMC,IAAI,GAAG,IAAI,CAACL,SAAS,CAACE,IAAI,CAACC,iBAAiB,CAACC,GAAG,CAAC;IACvD,IAAIC,IAAI,KAAK,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IACA,OAAO,IAAIR,SAAS,CAAC,IAAI,CAACG,SAAS,EAAEK,IAAI,CAAC;EAC5C;EAEAC,UAAUA,CAACC,GAAW,EAAEC,GAAW,EAAEC,EAAU,EAAE;IAC/C,MAAMJ,IAAI,GAAG,IAAI,CAACL,SAAS,CAACE,IAAI,CAACI,UAAU,CACzCT,SAAS,CAACa,SAAS,CAACH,GAAG,CAAC,EACxBV,SAAS,CAACa,SAAS,CAACF,GAAG,CAAC,EACxBb,OAAO,CAAC,IAAI,CAACK,SAAS,EAAE,QAAQ,EAAES,EAAE,CACtC,CAAC;IACD,IAAIJ,IAAI,KAAK,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IACA,OAAO,IAAIR,SAAS,CAAC,IAAI,CAACG,SAAS,EAAEK,IAAI,CAAC;EAC5C;EAEAM,YAAYA,CAACC,IAAmB,EAAE;IAChC,MAAMP,IAAI,GAAG,IAAI,CAACL,SAAS,CAACE,IAAI,CAACS,YAAY,CAACC,IAAI,CAACC,IAAI,CAAC,CAAC,CAAC;IAC1D,IAAIR,IAAI,KAAK,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IACA,OAAO,IAAIR,SAAS,CAAC,IAAI,CAACG,SAAS,EAAEK,IAAI,CAAC;EAC5C;EAEAS,YAAYA,CAACC,KAAa,EAAEC,EAAU,EAAEC,EAAU,EAAEC,KAAa,EAAE;IACjE,OAAOtB,0BAA0B,CAAS,CAAC;EAC7C;AACF","ignoreList":[]}
1
+ {"version":3,"names":["Host","getEnum","optEnum","throwNotImplementedOnRNWeb","JsiSkPath","JsiSkPoint","JsiSkRect","JsiSkRRect","pinT","t","Math","min","max","JsiSkPathFactory","constructor","CanvasKit","Make","PathBuilder","MakeFromSVGString","str","path","Path","result","delete","MakeFromOp","one","two","op","p1","fromValue","snapshot","p2","MakeFromCmds","cmds","flat","MakeFromText","_text","_x","_y","_font","Rect","rect","isCCW","builder","addRect","Oval","startIndex","addOval","Circle","x","y","r","addCircle","RRect","rrect","addRRect","Line","pt1","pt2","moveTo","lineTo","Polygon","points","close","addPolygon","map","p","Array","from","Stroke","srcPath","opts","makeStroked","undefined","width","miter_limit","precision","join","cap","Trim","start","end","isComplement","startT","stopT","makeTrimmed","Simplify","makeSimplified","Dash","on","off","phase","makeDashed","AsWinding","makeAsWinding","Interpolate","weight","MakeFromPathInterpolation"],"sources":["JsiSkPathFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type {\n InputRRect,\n PathCommand,\n PathOp,\n SkFont,\n SkPath,\n SkPoint,\n SkRect,\n StrokeOpts,\n} from \"../types\";\nimport type { PathFactory } from \"../types/Path/PathFactory\";\n\nimport { Host, getEnum, optEnum, throwNotImplementedOnRNWeb } from \"./Host\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\n\nconst pinT = (t: number) => Math.min(Math.max(t, 0), 1);\n\nexport class JsiSkPathFactory extends Host implements PathFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n Make() {\n return new JsiSkPath(this.CanvasKit, new this.CanvasKit.PathBuilder());\n }\n\n MakeFromSVGString(str: string) {\n const path = this.CanvasKit.Path.MakeFromSVGString(str);\n if (path === null) {\n return null;\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 MakeFromOp(one: SkPath, two: SkPath, op: PathOp) {\n const p1 =\n JsiSkPath.fromValue<CanvasKit[\"PathBuilder\"][\"prototype\"]>(\n one\n ).snapshot();\n const p2 =\n JsiSkPath.fromValue<CanvasKit[\"PathBuilder\"][\"prototype\"]>(\n two\n ).snapshot();\n const path = this.CanvasKit.Path.MakeFromOp(\n p1,\n p2,\n getEnum(this.CanvasKit, \"PathOp\", op)\n );\n p1.delete();\n p2.delete();\n if (path === null) {\n return null;\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 MakeFromCmds(cmds: PathCommand[]) {\n const path = this.CanvasKit.Path.MakeFromCmds(cmds.flat());\n if (path === null) {\n return null;\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 MakeFromText(_text: string, _x: number, _y: number, _font: SkFont) {\n return throwNotImplementedOnRNWeb<SkPath>();\n }\n\n // Static shape factories\n\n Rect(rect: SkRect, isCCW?: boolean) {\n const builder = new this.CanvasKit.PathBuilder();\n builder.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n return new JsiSkPath(this.CanvasKit, builder);\n }\n\n Oval(rect: SkRect, isCCW?: boolean, startIndex?: number) {\n const builder = new this.CanvasKit.PathBuilder();\n builder.addOval(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n isCCW,\n startIndex\n );\n return new JsiSkPath(this.CanvasKit, builder);\n }\n\n Circle(x: number, y: number, r: number) {\n const builder = new this.CanvasKit.PathBuilder();\n builder.addCircle(x, y, r);\n return new JsiSkPath(this.CanvasKit, builder);\n }\n\n RRect(rrect: InputRRect, isCCW?: boolean) {\n const builder = new this.CanvasKit.PathBuilder();\n builder.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return new JsiSkPath(this.CanvasKit, builder);\n }\n\n Line(p1: SkPoint, p2: SkPoint) {\n const builder = new this.CanvasKit.PathBuilder();\n const pt1 = JsiSkPoint.fromValue(p1);\n const pt2 = JsiSkPoint.fromValue(p2);\n builder.moveTo(pt1[0], pt1[1]);\n builder.lineTo(pt2[0], pt2[1]);\n return new JsiSkPath(this.CanvasKit, builder);\n }\n\n Polygon(points: SkPoint[], close: boolean) {\n const builder = new this.CanvasKit.PathBuilder();\n builder.addPolygon(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return new JsiSkPath(this.CanvasKit, builder);\n }\n\n // Static path operations\n\n Stroke(srcPath: SkPath, opts?: StrokeOpts) {\n const path =\n JsiSkPath.fromValue<CanvasKit[\"PathBuilder\"][\"prototype\"]>(\n srcPath\n ).snapshot();\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 r = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(result)\n );\n result.delete();\n return r;\n }\n\n Trim(srcPath: SkPath, start: number, end: number, isComplement: boolean) {\n const startT = pinT(start);\n const stopT = pinT(end);\n const path =\n JsiSkPath.fromValue<CanvasKit[\"PathBuilder\"][\"prototype\"]>(\n srcPath\n ).snapshot();\n if (startT <= 0 && stopT >= 1 && !isComplement) {\n const r = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return r;\n }\n const result = path.makeTrimmed(startT, stopT, isComplement);\n path.delete();\n if (result === null) {\n return null;\n }\n const r = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(result)\n );\n result.delete();\n return r;\n }\n\n Simplify(srcPath: SkPath) {\n const path =\n JsiSkPath.fromValue<CanvasKit[\"PathBuilder\"][\"prototype\"]>(\n srcPath\n ).snapshot();\n const result = path.makeSimplified();\n path.delete();\n if (result === null) {\n return null;\n }\n const r = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(result)\n );\n result.delete();\n return r;\n }\n\n Dash(srcPath: SkPath, on: number, off: number, phase: number) {\n const path =\n JsiSkPath.fromValue<CanvasKit[\"PathBuilder\"][\"prototype\"]>(\n srcPath\n ).snapshot();\n const result = path.makeDashed(on, off, phase);\n path.delete();\n if (result === null) {\n return null;\n }\n const r = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(result)\n );\n result.delete();\n return r;\n }\n\n AsWinding(srcPath: SkPath) {\n const path =\n JsiSkPath.fromValue<CanvasKit[\"PathBuilder\"][\"prototype\"]>(\n srcPath\n ).snapshot();\n const result = path.makeAsWinding();\n path.delete();\n if (result === null) {\n return null;\n }\n const r = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(result)\n );\n result.delete();\n return r;\n }\n\n Interpolate(start: SkPath, end: SkPath, weight: number) {\n const p1 =\n JsiSkPath.fromValue<CanvasKit[\"PathBuilder\"][\"prototype\"]>(\n start\n ).snapshot();\n const p2 =\n JsiSkPath.fromValue<CanvasKit[\"PathBuilder\"][\"prototype\"]>(\n end\n ).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 const r = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return r;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,7 @@ import { JsiSkContourMeasureIter } from "./JsiSkContourMeasureIter";
9
9
  import { JsiSkPictureRecorder } from "./JsiSkPictureRecorder";
10
10
  import { JsiSkPictureFactory } from "./JsiSkPictureFactory";
11
11
  import { JsiSkPathFactory } from "./JsiSkPathFactory";
12
+ import { JsiSkPathBuilderFactory } from "./JsiSkPathBuilderFactory";
12
13
  import { JsiSkMatrix } from "./JsiSkMatrix";
13
14
  import { JsiSkColorFilterFactory } from "./JsiSkColorFilterFactory";
14
15
  import { JsiSkTypefaceFactory } from "./JsiSkTypefaceFactory";
@@ -46,7 +47,12 @@ export const JsiSkApi = CanvasKit => ({
46
47
  return new JsiSkRSXform(CanvasKit, Float32Array.of(c, s, tx - c * px + s * py, ty - s * px - c * py));
47
48
  },
48
49
  Color,
49
- ContourMeasureIter: (path, forceClosed, resScale) => new JsiSkContourMeasureIter(CanvasKit, new CanvasKit.ContourMeasureIter(JsiSkPath.fromValue(path), forceClosed, resScale)),
50
+ ContourMeasureIter: (path, forceClosed, resScale) => (() => {
51
+ const p = JsiSkPath.pathFromValue(path);
52
+ const iter = new JsiSkContourMeasureIter(CanvasKit, new CanvasKit.ContourMeasureIter(p, forceClosed, resScale));
53
+ p.delete();
54
+ return iter;
55
+ })(),
50
56
  Paint: () => {
51
57
  const paint = new JsiSkPaint(CanvasKit, new CanvasKit.Paint());
52
58
  paint.setAntiAlias(true);
@@ -55,6 +61,7 @@ export const JsiSkApi = CanvasKit => ({
55
61
  PictureRecorder: () => new JsiSkPictureRecorder(CanvasKit, new CanvasKit.PictureRecorder()),
56
62
  Picture: new JsiSkPictureFactory(CanvasKit),
57
63
  Path: new JsiSkPathFactory(CanvasKit),
64
+ PathBuilder: new JsiSkPathBuilderFactory(CanvasKit),
58
65
  Matrix: matrix => new JsiSkMatrix(CanvasKit, matrix ? Float32Array.of(...matrix) : Float32Array.of(...CanvasKit.Matrix.identity())),
59
66
  ColorFilter: new JsiSkColorFilterFactory(CanvasKit),
60
67
  Font: (typeface, size) => new JsiSkFont(CanvasKit, new CanvasKit.Font(typeface === undefined ? null : JsiSkTypeface.fromValue(typeface), size)),