@shopify/react-native-skia 2.10.0 → 2.10.2

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 (332) hide show
  1. package/android/CMakeLists.txt +7 -41
  2. package/android/build.gradle +33 -0
  3. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -2
  4. package/cpp/api/JsiNativeBuffer.h +14 -20
  5. package/cpp/api/JsiSkAnimatedImage.h +13 -16
  6. package/cpp/api/JsiSkAnimatedImageFactory.h +9 -7
  7. package/cpp/api/JsiSkApi.h +94 -90
  8. package/cpp/api/JsiSkCanvas.h +108 -251
  9. package/cpp/api/JsiSkColorFilterFactory.h +45 -63
  10. package/cpp/api/JsiSkContourMeasure.h +19 -29
  11. package/cpp/api/JsiSkContourMeasureIter.h +6 -6
  12. package/cpp/api/JsiSkConverters.h +410 -0
  13. package/cpp/api/JsiSkDataFactory.h +9 -15
  14. package/cpp/api/JsiSkFont.h +99 -180
  15. package/cpp/api/JsiSkFontMgr.h +19 -21
  16. package/cpp/api/JsiSkFontMgrFactory.h +4 -5
  17. package/cpp/api/JsiSkImage.h +66 -66
  18. package/cpp/api/JsiSkImageFactory.h +66 -63
  19. package/cpp/api/JsiSkImageFilterFactory.h +354 -608
  20. package/cpp/api/JsiSkImageInfo.h +10 -13
  21. package/cpp/api/JsiSkMaskFilterFactory.h +8 -11
  22. package/cpp/api/JsiSkMatrix.h +36 -73
  23. package/cpp/api/JsiSkNativeObjects.h +64 -96
  24. package/cpp/api/JsiSkPaint.h +73 -131
  25. package/cpp/api/JsiSkParagraph.h +36 -53
  26. package/cpp/api/JsiSkParagraphBuilder.h +36 -64
  27. package/cpp/api/JsiSkParagraphBuilderFactory.h +11 -16
  28. package/cpp/api/JsiSkPath.h +216 -349
  29. package/cpp/api/JsiSkPathBuilder.h +133 -269
  30. package/cpp/api/JsiSkPathBuilderFactory.h +11 -11
  31. package/cpp/api/JsiSkPathEffectFactory.h +52 -72
  32. package/cpp/api/JsiSkPathFactory.h +129 -195
  33. package/cpp/api/JsiSkPicture.h +12 -18
  34. package/cpp/api/JsiSkPictureRecorder.h +14 -15
  35. package/cpp/api/JsiSkPoint.h +4 -4
  36. package/cpp/api/JsiSkRRect.h +7 -8
  37. package/cpp/api/JsiSkRSXform.h +10 -23
  38. package/cpp/api/JsiSkRect.h +23 -31
  39. package/cpp/api/JsiSkRuntimeEffect.h +67 -83
  40. package/cpp/api/JsiSkRuntimeEffectFactory.h +6 -10
  41. package/cpp/api/JsiSkRuntimeShaderBuilder.h +5 -14
  42. package/cpp/api/JsiSkSVG.h +4 -4
  43. package/cpp/api/JsiSkShaderFactory.h +153 -225
  44. package/cpp/api/JsiSkSkottie.h +104 -126
  45. package/cpp/api/JsiSkSurface.h +11 -14
  46. package/cpp/api/JsiSkSurfaceFactory.h +6 -7
  47. package/cpp/api/JsiSkTextBlobFactory.h +31 -54
  48. package/cpp/api/JsiSkTypeface.h +8 -12
  49. package/cpp/api/JsiSkTypefaceFactory.h +9 -7
  50. package/cpp/api/JsiSkTypefaceFontProvider.h +22 -23
  51. package/cpp/api/JsiSkTypefaceFontProviderFactory.h +5 -6
  52. package/cpp/api/JsiSkVertices.h +6 -8
  53. package/cpp/api/JsiSkiaContext.h +10 -11
  54. package/cpp/api/JsiVideo.h +31 -71
  55. package/cpp/jsi/EnumMapper.h +2 -2
  56. package/cpp/jsi/JSIConverter.h +2 -33
  57. package/cpp/jsi/NativeObject.h +24 -19
  58. package/cpp/jsi/Promise.cpp +2 -2
  59. package/cpp/jsi/Promise.h +2 -2
  60. package/cpp/rnskia/RNDawnContext.h +18 -2
  61. package/cpp/rnskia/RNDawnInterop.cpp +19 -0
  62. package/cpp/rnskia/RNDawnUtils.h +18 -1
  63. package/cpp/rnskia/RNSkManager.cpp +5 -162
  64. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +2 -0
  65. package/lib/commonjs/mock/index.js +0 -1
  66. package/lib/commonjs/mock/index.js.map +1 -1
  67. package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +15 -6
  68. package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
  69. package/lib/commonjs/skia/types/Skia.d.ts +5 -15
  70. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  71. package/lib/commonjs/skia/types/index.d.ts +0 -1
  72. package/lib/commonjs/skia/types/index.js +0 -11
  73. package/lib/commonjs/skia/types/index.js.map +1 -1
  74. package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  75. package/lib/commonjs/skia/web/JsiSkImageFactory.js +2 -2
  76. package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
  77. package/lib/commonjs/skia/web/JsiSkia.js +1 -4
  78. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  79. package/lib/commonjs/views/index.d.ts +0 -1
  80. package/lib/commonjs/views/index.js +0 -11
  81. package/lib/commonjs/views/index.js.map +1 -1
  82. package/lib/module/mock/index.js +0 -1
  83. package/lib/module/mock/index.js.map +1 -1
  84. package/lib/module/skia/types/Image/ImageFactory.d.ts +15 -6
  85. package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
  86. package/lib/module/skia/types/Skia.d.ts +5 -15
  87. package/lib/module/skia/types/Skia.js.map +1 -1
  88. package/lib/module/skia/types/index.d.ts +0 -1
  89. package/lib/module/skia/types/index.js +0 -1
  90. package/lib/module/skia/types/index.js.map +1 -1
  91. package/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  92. package/lib/module/skia/web/JsiSkImageFactory.js +2 -2
  93. package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
  94. package/lib/module/skia/web/JsiSkia.js +1 -4
  95. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  96. package/lib/module/views/index.d.ts +0 -1
  97. package/lib/module/views/index.js +0 -1
  98. package/lib/module/views/index.js.map +1 -1
  99. package/lib/typescript/lib/commonjs/mock/index.d.ts +0 -1
  100. package/lib/typescript/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  101. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -2
  102. package/lib/typescript/lib/module/mock/index.d.ts +0 -2
  103. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -2
  104. package/lib/typescript/lib/module/skia/types/index.d.ts +0 -1
  105. package/lib/typescript/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  106. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -2
  107. package/lib/typescript/lib/module/views/index.d.ts +0 -1
  108. package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +15 -6
  109. package/lib/typescript/src/skia/types/Skia.d.ts +5 -15
  110. package/lib/typescript/src/skia/types/index.d.ts +0 -1
  111. package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +2 -2
  112. package/lib/typescript/src/views/index.d.ts +0 -1
  113. package/package.json +3 -4
  114. package/react-native-skia.podspec +38 -4
  115. package/src/mock/index.ts +0 -1
  116. package/src/skia/types/Image/ImageFactory.ts +15 -6
  117. package/src/skia/types/Skia.ts +5 -15
  118. package/src/skia/types/index.ts +0 -1
  119. package/src/skia/web/JsiSkImageFactory.ts +3 -3
  120. package/src/skia/web/JsiSkia.ts +2 -5
  121. package/src/views/index.ts +0 -1
  122. package/android/cpp/jni/JniWebGPUView.cpp +0 -112
  123. package/android/cpp/rnskia-android/SkiaPlatformContext.h +0 -26
  124. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUSurfaceView.java +0 -43
  125. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUTextureView.java +0 -50
  126. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUView.java +0 -98
  127. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewAPI.java +0 -19
  128. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +0 -58
  129. package/apple/RNWebGPUAppleNativeBuffer.mm +0 -33
  130. package/apple/SkiaPlatformContext.h +0 -20
  131. package/apple/SkiaPlatformContext.mm +0 -21
  132. package/apple/SkiaWebGPUView.mm +0 -81
  133. package/apple/WebGPUMetalView.mm +0 -136
  134. package/cpp/rnwgpu/ArrayBuffer.h +0 -116
  135. package/cpp/rnwgpu/Canvas.h +0 -52
  136. package/cpp/rnwgpu/PlatformContext.h +0 -18
  137. package/cpp/rnwgpu/SurfaceRegistry.h +0 -605
  138. package/cpp/rnwgpu/api/AppleNativeBuffer.h +0 -22
  139. package/cpp/rnwgpu/api/Convertors.h +0 -783
  140. package/cpp/rnwgpu/api/External.h +0 -12
  141. package/cpp/rnwgpu/api/GPU.cpp +0 -162
  142. package/cpp/rnwgpu/api/GPU.h +0 -60
  143. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -239
  144. package/cpp/rnwgpu/api/GPUAdapter.h +0 -60
  145. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  146. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  147. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  148. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  149. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -107
  150. package/cpp/rnwgpu/api/GPUBuffer.h +0 -88
  151. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -75
  152. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -70
  153. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  154. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  155. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  156. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  157. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  158. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  159. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  160. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  161. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  162. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -613
  163. package/cpp/rnwgpu/api/GPUDevice.h +0 -258
  164. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  165. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  166. package/cpp/rnwgpu/api/GPUError.h +0 -35
  167. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  168. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +0 -139
  169. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -95
  170. package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
  171. package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
  172. package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
  173. package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
  174. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
  175. package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
  176. package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
  177. package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
  178. package/cpp/rnwgpu/api/GPUQueue.cpp +0 -179
  179. package/cpp/rnwgpu/api/GPUQueue.h +0 -84
  180. package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
  181. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
  182. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
  183. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
  184. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
  185. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
  186. package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
  187. package/cpp/rnwgpu/api/GPUSampler.h +0 -44
  188. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -56
  189. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  190. package/cpp/rnwgpu/api/GPUSharedFence.cpp +0 -80
  191. package/cpp/rnwgpu/api/GPUSharedFence.h +0 -53
  192. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -135
  193. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -75
  194. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  195. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  196. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  197. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  198. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  199. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -60
  200. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  201. package/cpp/rnwgpu/api/ImageBitmap.h +0 -62
  202. package/cpp/rnwgpu/api/NativeBufferUtils.h +0 -87
  203. package/cpp/rnwgpu/api/RNWebGPU.h +0 -82
  204. package/cpp/rnwgpu/api/WebGPUConstants.h +0 -36
  205. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -64
  206. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
  207. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -56
  208. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -97
  209. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -57
  210. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -52
  211. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -56
  212. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -56
  213. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -59
  214. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  215. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  216. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -66
  217. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -58
  218. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  219. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -45
  220. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -45
  221. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -56
  222. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -58
  223. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -67
  224. package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +0 -56
  225. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -103
  226. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -109
  227. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -38
  228. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -90
  229. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -73
  230. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -62
  231. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  232. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -65
  233. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -81
  234. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -54
  235. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  236. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -54
  237. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -57
  238. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -69
  239. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -61
  240. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -55
  241. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -43
  242. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -45
  243. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -80
  244. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -81
  245. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -101
  246. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -92
  247. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -58
  248. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -103
  249. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -51
  250. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -45
  251. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -110
  252. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -60
  253. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -62
  254. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  255. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +0 -58
  256. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +0 -51
  257. package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +0 -73
  258. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -64
  259. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -59
  260. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -59
  261. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -91
  262. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  263. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -91
  264. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -64
  265. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -53
  266. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -62
  267. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -73
  268. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
  269. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -213
  270. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -58
  271. package/cpp/rnwgpu/async/RuntimeContext.cpp +0 -199
  272. package/cpp/rnwgpu/async/RuntimeContext.h +0 -134
  273. package/lib/commonjs/skia/types/WebGPU.d.ts +0 -184
  274. package/lib/commonjs/skia/types/WebGPU.js +0 -105
  275. package/lib/commonjs/skia/types/WebGPU.js.map +0 -1
  276. package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -8
  277. package/lib/commonjs/specs/WebGPUViewNativeComponent.js +0 -10
  278. package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +0 -1
  279. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  280. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +0 -103
  281. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  282. package/lib/commonjs/specs/utils.d.ts +0 -1
  283. package/lib/commonjs/specs/utils.js +0 -11
  284. package/lib/commonjs/specs/utils.js.map +0 -1
  285. package/lib/commonjs/views/WebGPUCanvas.d.ts +0 -33
  286. package/lib/commonjs/views/WebGPUCanvas.js +0 -79
  287. package/lib/commonjs/views/WebGPUCanvas.js.map +0 -1
  288. package/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -23
  289. package/lib/commonjs/views/WebGPUCanvas.web.js +0 -20
  290. package/lib/commonjs/views/WebGPUCanvas.web.js.map +0 -1
  291. package/lib/module/skia/types/WebGPU.d.ts +0 -184
  292. package/lib/module/skia/types/WebGPU.js +0 -99
  293. package/lib/module/skia/types/WebGPU.js.map +0 -1
  294. package/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -8
  295. package/lib/module/specs/WebGPUViewNativeComponent.js +0 -4
  296. package/lib/module/specs/WebGPUViewNativeComponent.js.map +0 -1
  297. package/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  298. package/lib/module/specs/WebGPUViewNativeComponent.web.js +0 -96
  299. package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  300. package/lib/module/specs/utils.d.ts +0 -1
  301. package/lib/module/specs/utils.js +0 -5
  302. package/lib/module/specs/utils.js.map +0 -1
  303. package/lib/module/views/WebGPUCanvas.d.ts +0 -33
  304. package/lib/module/views/WebGPUCanvas.js +0 -70
  305. package/lib/module/views/WebGPUCanvas.js.map +0 -1
  306. package/lib/module/views/WebGPUCanvas.web.d.ts +0 -23
  307. package/lib/module/views/WebGPUCanvas.web.js +0 -12
  308. package/lib/module/views/WebGPUCanvas.web.js.map +0 -1
  309. package/lib/typescript/lib/commonjs/skia/types/WebGPU.d.ts +0 -2
  310. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -4
  311. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -3
  312. package/lib/typescript/lib/commonjs/specs/utils.d.ts +0 -2
  313. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.d.ts +0 -6
  314. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -6
  315. package/lib/typescript/lib/module/skia/types/WebGPU.d.ts +0 -31
  316. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -2
  317. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -2
  318. package/lib/typescript/lib/module/specs/utils.d.ts +0 -1
  319. package/lib/typescript/lib/module/views/WebGPUCanvas.d.ts +0 -7
  320. package/lib/typescript/lib/module/views/WebGPUCanvas.web.d.ts +0 -8
  321. package/lib/typescript/src/skia/types/WebGPU.d.ts +0 -184
  322. package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +0 -8
  323. package/lib/typescript/src/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  324. package/lib/typescript/src/specs/utils.d.ts +0 -1
  325. package/lib/typescript/src/views/WebGPUCanvas.d.ts +0 -33
  326. package/lib/typescript/src/views/WebGPUCanvas.web.d.ts +0 -23
  327. package/src/skia/types/WebGPU.ts +0 -226
  328. package/src/specs/WebGPUViewNativeComponent.ts +0 -11
  329. package/src/specs/WebGPUViewNativeComponent.web.ts +0 -110
  330. package/src/specs/utils.ts +0 -4
  331. package/src/views/WebGPUCanvas.tsx +0 -125
  332. package/src/views/WebGPUCanvas.web.tsx +0 -36
@@ -6,6 +6,7 @@
6
6
 
7
7
  #include <jsi/jsi.h>
8
8
 
9
+ #include "JsiSkConverters.h"
9
10
  #include "JsiSkMatrix.h"
10
11
  #include "JsiSkNativeObjects.h"
11
12
  #include "JsiSkPath.h"
@@ -33,377 +34,234 @@ public:
33
34
  static constexpr const char *CLASS_NAME = "PathBuilder";
34
35
 
35
36
  // Movement methods
36
- JSI_HOST_FUNCTION(moveTo) {
37
- SkScalar x = arguments[0].asNumber();
38
- SkScalar y = arguments[1].asNumber();
39
- getObject()->moveTo(x, y);
40
- return thisValue.getObject(runtime);
41
- }
37
+ void moveTo(double x, double y) { getObject()->moveTo(x, y); }
42
38
 
43
- JSI_HOST_FUNCTION(rMoveTo) {
44
- SkScalar x = arguments[0].asNumber();
45
- SkScalar y = arguments[1].asNumber();
46
- getObject()->rMoveTo({x, y});
47
- return thisValue.getObject(runtime);
39
+ void rMoveTo(double x, double y) {
40
+ getObject()->rMoveTo({static_cast<SkScalar>(x), static_cast<SkScalar>(y)});
48
41
  }
49
42
 
50
- JSI_HOST_FUNCTION(lineTo) {
51
- SkScalar x = arguments[0].asNumber();
52
- SkScalar y = arguments[1].asNumber();
53
- getObject()->lineTo(x, y);
54
- return thisValue.getObject(runtime);
55
- }
43
+ void lineTo(double x, double y) { getObject()->lineTo(x, y); }
56
44
 
57
- JSI_HOST_FUNCTION(rLineTo) {
58
- SkScalar x = arguments[0].asNumber();
59
- SkScalar y = arguments[1].asNumber();
60
- getObject()->rLineTo(x, y);
61
- return thisValue.getObject(runtime);
62
- }
45
+ void rLineTo(double x, double y) { getObject()->rLineTo(x, y); }
63
46
 
64
47
  // Curve methods
65
- JSI_HOST_FUNCTION(quadTo) {
66
- auto x1 = arguments[0].asNumber();
67
- auto y1 = arguments[1].asNumber();
68
- auto x2 = arguments[2].asNumber();
69
- auto y2 = arguments[3].asNumber();
48
+ void quadTo(double x1, double y1, double x2, double y2) {
70
49
  getObject()->quadTo(x1, y1, x2, y2);
71
- return thisValue.getObject(runtime);
72
50
  }
73
51
 
74
- JSI_HOST_FUNCTION(rQuadTo) {
75
- auto x1 = arguments[0].asNumber();
76
- auto y1 = arguments[1].asNumber();
77
- auto x2 = arguments[2].asNumber();
78
- auto y2 = arguments[3].asNumber();
52
+ void rQuadTo(double x1, double y1, double x2, double y2) {
79
53
  getObject()->rQuadTo(x1, y1, x2, y2);
80
- return thisValue.getObject(runtime);
81
54
  }
82
55
 
83
- JSI_HOST_FUNCTION(conicTo) {
84
- auto x1 = arguments[0].asNumber();
85
- auto y1 = arguments[1].asNumber();
86
- auto x2 = arguments[2].asNumber();
87
- auto y2 = arguments[3].asNumber();
88
- auto w = arguments[4].asNumber();
56
+ void conicTo(double x1, double y1, double x2, double y2, double w) {
89
57
  getObject()->conicTo(x1, y1, x2, y2, w);
90
- return thisValue.getObject(runtime);
91
58
  }
92
59
 
93
- JSI_HOST_FUNCTION(rConicTo) {
94
- auto x1 = arguments[0].asNumber();
95
- auto y1 = arguments[1].asNumber();
96
- auto x2 = arguments[2].asNumber();
97
- auto y2 = arguments[3].asNumber();
98
- auto w = arguments[4].asNumber();
60
+ void rConicTo(double x1, double y1, double x2, double y2, double w) {
99
61
  getObject()->rConicTo(x1, y1, x2, y2, w);
100
- return thisValue.getObject(runtime);
101
62
  }
102
63
 
103
- JSI_HOST_FUNCTION(cubicTo) {
104
- auto x1 = arguments[0].asNumber();
105
- auto y1 = arguments[1].asNumber();
106
- auto x2 = arguments[2].asNumber();
107
- auto y2 = arguments[3].asNumber();
108
- auto x3 = arguments[4].asNumber();
109
- auto y3 = arguments[5].asNumber();
64
+ void cubicTo(double x1, double y1, double x2, double y2, double x3,
65
+ double y3) {
110
66
  getObject()->cubicTo(x1, y1, x2, y2, x3, y3);
111
- return thisValue.getObject(runtime);
112
67
  }
113
68
 
114
- JSI_HOST_FUNCTION(rCubicTo) {
115
- auto x1 = arguments[0].asNumber();
116
- auto y1 = arguments[1].asNumber();
117
- auto x2 = arguments[2].asNumber();
118
- auto y2 = arguments[3].asNumber();
119
- auto x3 = arguments[4].asNumber();
120
- auto y3 = arguments[5].asNumber();
69
+ void rCubicTo(double x1, double y1, double x2, double y2, double x3,
70
+ double y3) {
121
71
  getObject()->rCubicTo(x1, y1, x2, y2, x3, y3);
122
- return thisValue.getObject(runtime);
123
72
  }
124
73
 
125
- JSI_HOST_FUNCTION(close) {
126
- getObject()->close();
127
- return thisValue.getObject(runtime);
128
- }
74
+ void close() { getObject()->close(); }
129
75
 
130
76
  // Arc methods
131
- JSI_HOST_FUNCTION(arcToOval) {
132
- auto rect = JsiSkRect::fromValue(runtime, arguments[0]);
133
- auto start = arguments[1].asNumber();
134
- auto sweep = arguments[2].asNumber();
135
- auto forceMoveTo = arguments[3].getBool();
77
+ void arcToOval(std::shared_ptr<SkRect> rect, double start, double sweep,
78
+ bool forceMoveTo) {
136
79
  getObject()->arcTo(*rect, start, sweep, forceMoveTo);
137
- return thisValue.getObject(runtime);
138
80
  }
139
81
 
140
- JSI_HOST_FUNCTION(arcToRotated) {
141
- auto rx = arguments[0].asNumber();
142
- auto ry = arguments[1].asNumber();
143
- auto xAxisRotate = arguments[2].asNumber();
144
- auto useSmallArc = arguments[3].getBool();
82
+ void arcToRotated(double rx, double ry, double xAxisRotate, bool useSmallArc,
83
+ bool isCCW, double x, double y) {
145
84
  auto arcSize = useSmallArc ? SkPathBuilder::ArcSize::kSmall_ArcSize
146
85
  : SkPathBuilder::ArcSize::kLarge_ArcSize;
147
- auto sweep =
148
- arguments[4].getBool() ? SkPathDirection::kCCW : SkPathDirection::kCW;
149
- auto x = arguments[5].asNumber();
150
- auto y = arguments[6].asNumber();
86
+ auto sweep = isCCW ? SkPathDirection::kCCW : SkPathDirection::kCW;
151
87
  getObject()->arcTo(SkPoint::Make(rx, ry), xAxisRotate, arcSize, sweep,
152
88
  SkPoint::Make(x, y));
153
- return thisValue.getObject(runtime);
154
89
  }
155
90
 
156
- JSI_HOST_FUNCTION(rArcTo) {
157
- auto rx = arguments[0].asNumber();
158
- auto ry = arguments[1].asNumber();
159
- auto xAxisRotate = arguments[2].asNumber();
160
- auto useSmallArc = arguments[3].getBool();
91
+ void rArcTo(double rx, double ry, double xAxisRotate, bool useSmallArc,
92
+ bool isCCW, double dx, double dy) {
161
93
  auto arcSize = useSmallArc ? SkPathBuilder::ArcSize::kSmall_ArcSize
162
94
  : SkPathBuilder::ArcSize::kLarge_ArcSize;
163
- auto sweep =
164
- arguments[4].getBool() ? SkPathDirection::kCCW : SkPathDirection::kCW;
165
- auto dx = arguments[5].asNumber();
166
- auto dy = arguments[6].asNumber();
95
+ auto sweep = isCCW ? SkPathDirection::kCCW : SkPathDirection::kCW;
167
96
  SkPoint r(rx, ry);
168
97
  SkVector d(dx, dy);
169
98
  getObject()->rArcTo(r, xAxisRotate, arcSize, sweep, d);
170
- return thisValue.getObject(runtime);
171
99
  }
172
100
 
173
- JSI_HOST_FUNCTION(arcToTangent) {
174
- auto x1 = arguments[0].asNumber();
175
- auto y1 = arguments[1].asNumber();
176
- auto x2 = arguments[2].asNumber();
177
- auto y2 = arguments[3].asNumber();
178
- auto r = arguments[4].asNumber();
101
+ void arcToTangent(double x1, double y1, double x2, double y2, double r) {
179
102
  getObject()->arcTo(SkPoint::Make(x1, y1), SkPoint::Make(x2, y2), r);
180
- return thisValue.getObject(runtime);
181
103
  }
182
104
 
183
105
  // Shape methods
184
- JSI_HOST_FUNCTION(addRect) {
185
- auto rect = JsiSkRect::fromValue(runtime, arguments[0]);
186
- auto direction = SkPathDirection::kCW;
187
- if (count >= 2 && arguments[1].getBool()) {
188
- direction = SkPathDirection::kCCW;
189
- }
190
- getObject()->addRect(*rect, direction);
191
- return thisValue.getObject(runtime);
106
+ void addRect(std::shared_ptr<SkRect> rect, JsiOptional<bool> isCCW) {
107
+ getObject()->addRect(*rect, toDirection(isCCW));
192
108
  }
193
109
 
194
- JSI_HOST_FUNCTION(addOval) {
195
- auto rect = JsiSkRect::fromValue(runtime, arguments[0]);
196
- auto direction = SkPathDirection::kCW;
197
- if (count >= 2 && arguments[1].getBool()) {
198
- direction = SkPathDirection::kCCW;
199
- }
200
- unsigned startIndex = count < 3 ? 0 : arguments[2].asNumber();
201
- getObject()->addOval(*rect, direction, startIndex);
202
- return thisValue.getObject(runtime);
110
+ void addOval(std::shared_ptr<SkRect> rect, JsiOptional<bool> isCCW,
111
+ JsiOptional<double> startIndex) {
112
+ getObject()->addOval(*rect, toDirection(isCCW),
113
+ startIndex.has_value()
114
+ ? static_cast<unsigned>(*startIndex)
115
+ : 0);
203
116
  }
204
117
 
205
- JSI_HOST_FUNCTION(addArc) {
206
- auto rect = JsiSkRect::fromValue(runtime, arguments[0]);
207
- auto start = arguments[1].asNumber();
208
- auto sweep = arguments[2].asNumber();
118
+ void addArc(std::shared_ptr<SkRect> rect, double start, double sweep) {
209
119
  getObject()->addArc(*rect, start, sweep);
210
- return thisValue.getObject(runtime);
211
120
  }
212
121
 
213
- JSI_HOST_FUNCTION(addRRect) {
214
- auto rrect = JsiSkRRect::fromValue(runtime, arguments[0]);
215
- auto direction = SkPathDirection::kCW;
216
- if (count >= 2 && arguments[1].getBool()) {
217
- direction = SkPathDirection::kCCW;
218
- }
219
- getObject()->addRRect(*rrect, direction);
220
- return thisValue.getObject(runtime);
122
+ void addRRect(std::shared_ptr<SkRRect> rrect, JsiOptional<bool> isCCW) {
123
+ getObject()->addRRect(*rrect, toDirection(isCCW));
221
124
  }
222
125
 
223
- JSI_HOST_FUNCTION(addCircle) {
224
- auto x = arguments[0].asNumber();
225
- auto y = arguments[1].asNumber();
226
- auto r = arguments[2].asNumber();
227
- auto direction = SkPathDirection::kCW;
228
- if (count >= 4 && arguments[3].getBool()) {
229
- direction = SkPathDirection::kCCW;
230
- }
231
- getObject()->addCircle(x, y, r, direction);
232
- return thisValue.getObject(runtime);
126
+ void addCircle(double x, double y, double r, JsiOptional<bool> isCCW) {
127
+ getObject()->addCircle(x, y, r, toDirection(isCCW));
233
128
  }
234
129
 
235
- JSI_HOST_FUNCTION(addPoly) {
236
- std::vector<SkPoint> points;
237
- auto jsiPoints = arguments[0].asObject(runtime).asArray(runtime);
238
- auto close = arguments[1].getBool();
239
- auto pointsSize = jsiPoints.size(runtime);
240
- points.reserve(pointsSize);
241
- for (int i = 0; i < pointsSize; i++) {
242
- std::shared_ptr<SkPoint> point = JsiSkPoint::fromValue(
243
- runtime, jsiPoints.getValueAtIndex(runtime, i).asObject(runtime));
244
- points.push_back(*point.get());
245
- }
130
+ void addPoly(std::vector<SkPoint> points, bool close) {
246
131
  getObject()->addPolygon(SkSpan(points.data(), points.size()), close);
247
- return thisValue.getObject(runtime);
248
132
  }
249
133
 
250
- JSI_HOST_FUNCTION(addPath) {
251
- auto src = JsiSkPath::fromValue(runtime, arguments[0]);
134
+ void addPath(std::shared_ptr<SkPathBuilder> src,
135
+ JsiOptional<std::shared_ptr<SkMatrix>> matrix,
136
+ JsiOptional<bool> extend) {
252
137
  auto srcPath = src->snapshot();
253
- auto matrix =
254
- count > 1 && !arguments[1].isUndefined() && !arguments[1].isNull()
255
- ? JsiSkMatrix::fromValue(runtime, arguments[1])
256
- : nullptr;
257
- auto mode = count > 2 && arguments[2].isBool() && arguments[2].getBool()
258
- ? SkPath::kExtend_AddPathMode
259
- : SkPath::kAppend_AddPathMode;
260
- if (matrix == nullptr) {
261
- getObject()->addPath(srcPath, mode);
138
+ auto mode = extend.has_value() && *extend ? SkPath::kExtend_AddPathMode
139
+ : SkPath::kAppend_AddPathMode;
140
+ if (matrix.has_value()) {
141
+ getObject()->addPath(srcPath, **matrix, mode);
262
142
  } else {
263
- getObject()->addPath(srcPath, *matrix, mode);
143
+ getObject()->addPath(srcPath, mode);
264
144
  }
265
- return thisValue.getObject(runtime);
266
145
  }
267
146
 
268
147
  // Configuration methods
269
- JSI_HOST_FUNCTION(setFillType) {
270
- auto ft = (SkPathFillType)arguments[0].asNumber();
271
- getObject()->setFillType(ft);
272
- return thisValue.getObject(runtime);
148
+ void setFillType(double ft) {
149
+ getObject()->setFillType(static_cast<SkPathFillType>(ft));
273
150
  }
274
151
 
275
- JSI_HOST_FUNCTION(setIsVolatile) {
276
- auto v = arguments[0].getBool();
277
- getObject()->setIsVolatile(v);
278
- return thisValue.getObject(runtime);
279
- }
152
+ void setIsVolatile(bool v) { getObject()->setIsVolatile(v); }
280
153
 
281
- JSI_HOST_FUNCTION(reset) {
282
- getObject()->reset();
283
- return thisValue.getObject(runtime);
284
- }
154
+ void reset() { getObject()->reset(); }
285
155
 
286
- JSI_HOST_FUNCTION(offset) {
287
- SkScalar dx = arguments[0].asNumber();
288
- SkScalar dy = arguments[1].asNumber();
289
- getObject()->offset(dx, dy);
290
- return thisValue.getObject(runtime);
291
- }
156
+ void offset(double dx, double dy) { getObject()->offset(dx, dy); }
292
157
 
293
- JSI_HOST_FUNCTION(transform) {
294
- auto m3 = *JsiSkMatrix::fromValue(runtime, arguments[0]);
158
+ void transform(std::shared_ptr<SkMatrix> m3) {
295
159
  // Create a path from current state, transform, then rebuild
296
- auto path = getObject()->snapshot().makeTransform(m3);
160
+ auto path = getObject()->snapshot().makeTransform(*m3);
297
161
  *getObject() = SkPathBuilder(path);
298
- return thisValue.getObject(runtime);
299
162
  }
300
163
 
301
164
  // Query methods
302
- JSI_HOST_FUNCTION(computeBounds) {
165
+ std::shared_ptr<JsiSkRect> computeBounds() {
303
166
  auto path = getObject()->snapshot();
304
- auto result = path.getBounds();
305
- return makeJsiObject(runtime,
306
- std::make_shared<JsiSkRect>(getContext(), result));
167
+ return std::make_shared<JsiSkRect>(getContext(), path.getBounds());
307
168
  }
308
169
 
309
- JSI_HOST_FUNCTION(isEmpty) {
310
- return jsi::Value(getObject()->snapshot().isEmpty());
311
- }
170
+ bool isEmpty() { return getObject()->snapshot().isEmpty(); }
312
171
 
313
- JSI_HOST_FUNCTION(getLastPt) {
314
- SkPoint last;
172
+ SkPoint getLastPt() {
173
+ SkPoint last = SkPoint::Make(0, 0);
315
174
  getObject()->snapshot().getLastPt(&last);
316
- auto point = jsi::Object(runtime);
317
- point.setProperty(runtime, "x", static_cast<double>(last.fX));
318
- point.setProperty(runtime, "y", static_cast<double>(last.fY));
319
- return point;
175
+ return last;
320
176
  }
321
177
 
322
- JSI_HOST_FUNCTION(countPoints) {
323
- auto points = getObject()->snapshot().countPoints();
324
- return jsi::Value(points);
325
- }
178
+ int countPoints() { return getObject()->snapshot().countPoints(); }
326
179
 
327
180
  // Build methods
328
- JSI_HOST_FUNCTION(build) {
181
+ std::shared_ptr<JsiSkPath> build() {
329
182
  // snapshot() returns a copy without resetting the builder
330
183
  auto path = getObject()->snapshot();
331
- return makeJsiObject(
332
- runtime, std::make_shared<JsiSkPath>(getContext(), std::move(path)));
184
+ return std::make_shared<JsiSkPath>(getContext(), std::move(path));
333
185
  }
334
186
 
335
- JSI_HOST_FUNCTION(detach) {
187
+ std::shared_ptr<JsiSkPath> detach() {
336
188
  // detach() returns the path and resets the builder
337
189
  auto path = getObject()->detach();
338
- return makeJsiObject(
339
- runtime, std::make_shared<JsiSkPath>(getContext(), std::move(path)));
190
+ return std::make_shared<JsiSkPath>(getContext(), std::move(path));
340
191
  }
341
192
 
342
193
  static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
343
194
  installCommon(runtime, prototype);
344
195
  // Movement
345
- installHostMethod(runtime, prototype, "moveTo", &JsiSkPathBuilder::moveTo);
346
- installHostMethod(runtime, prototype, "rMoveTo",
347
- &JsiSkPathBuilder::rMoveTo);
348
- installHostMethod(runtime, prototype, "lineTo", &JsiSkPathBuilder::lineTo);
349
- installHostMethod(runtime, prototype, "rLineTo",
350
- &JsiSkPathBuilder::rLineTo);
196
+ installChainableMethod(runtime, prototype, "moveTo",
197
+ &JsiSkPathBuilder::moveTo);
198
+ installChainableMethod(runtime, prototype, "rMoveTo",
199
+ &JsiSkPathBuilder::rMoveTo);
200
+ installChainableMethod(runtime, prototype, "lineTo",
201
+ &JsiSkPathBuilder::lineTo);
202
+ installChainableMethod(runtime, prototype, "rLineTo",
203
+ &JsiSkPathBuilder::rLineTo);
351
204
  // Curves
352
- installHostMethod(runtime, prototype, "quadTo", &JsiSkPathBuilder::quadTo);
353
- installHostMethod(runtime, prototype, "rQuadTo",
354
- &JsiSkPathBuilder::rQuadTo);
355
- installHostMethod(runtime, prototype, "conicTo",
356
- &JsiSkPathBuilder::conicTo);
357
- installHostMethod(runtime, prototype, "rConicTo",
358
- &JsiSkPathBuilder::rConicTo);
359
- installHostMethod(runtime, prototype, "cubicTo",
360
- &JsiSkPathBuilder::cubicTo);
361
- installHostMethod(runtime, prototype, "rCubicTo",
362
- &JsiSkPathBuilder::rCubicTo);
363
- installHostMethod(runtime, prototype, "close", &JsiSkPathBuilder::close);
205
+ installChainableMethod(runtime, prototype, "quadTo",
206
+ &JsiSkPathBuilder::quadTo);
207
+ installChainableMethod(runtime, prototype, "rQuadTo",
208
+ &JsiSkPathBuilder::rQuadTo);
209
+ installChainableMethod(runtime, prototype, "conicTo",
210
+ &JsiSkPathBuilder::conicTo);
211
+ installChainableMethod(runtime, prototype, "rConicTo",
212
+ &JsiSkPathBuilder::rConicTo);
213
+ installChainableMethod(runtime, prototype, "cubicTo",
214
+ &JsiSkPathBuilder::cubicTo);
215
+ installChainableMethod(runtime, prototype, "rCubicTo",
216
+ &JsiSkPathBuilder::rCubicTo);
217
+ installChainableMethod(runtime, prototype, "close",
218
+ &JsiSkPathBuilder::close);
364
219
  // Arcs
365
- installHostMethod(runtime, prototype, "arcToOval",
366
- &JsiSkPathBuilder::arcToOval);
367
- installHostMethod(runtime, prototype, "arcToRotated",
368
- &JsiSkPathBuilder::arcToRotated);
369
- installHostMethod(runtime, prototype, "rArcTo", &JsiSkPathBuilder::rArcTo);
370
- installHostMethod(runtime, prototype, "arcToTangent",
371
- &JsiSkPathBuilder::arcToTangent);
220
+ installChainableMethod(runtime, prototype, "arcToOval",
221
+ &JsiSkPathBuilder::arcToOval);
222
+ installChainableMethod(runtime, prototype, "arcToRotated",
223
+ &JsiSkPathBuilder::arcToRotated);
224
+ installChainableMethod(runtime, prototype, "rArcTo",
225
+ &JsiSkPathBuilder::rArcTo);
226
+ installChainableMethod(runtime, prototype, "arcToTangent",
227
+ &JsiSkPathBuilder::arcToTangent);
372
228
  // Shapes
373
- installHostMethod(runtime, prototype, "addRect",
374
- &JsiSkPathBuilder::addRect);
375
- installHostMethod(runtime, prototype, "addOval",
376
- &JsiSkPathBuilder::addOval);
377
- installHostMethod(runtime, prototype, "addArc", &JsiSkPathBuilder::addArc);
378
- installHostMethod(runtime, prototype, "addRRect",
379
- &JsiSkPathBuilder::addRRect);
380
- installHostMethod(runtime, prototype, "addCircle",
381
- &JsiSkPathBuilder::addCircle);
382
- installHostMethod(runtime, prototype, "addPoly",
383
- &JsiSkPathBuilder::addPoly);
384
- installHostMethod(runtime, prototype, "addPath",
385
- &JsiSkPathBuilder::addPath);
229
+ installChainableMethod(runtime, prototype, "addRect",
230
+ &JsiSkPathBuilder::addRect);
231
+ installChainableMethod(runtime, prototype, "addOval",
232
+ &JsiSkPathBuilder::addOval);
233
+ installChainableMethod(runtime, prototype, "addArc",
234
+ &JsiSkPathBuilder::addArc);
235
+ installChainableMethod(runtime, prototype, "addRRect",
236
+ &JsiSkPathBuilder::addRRect);
237
+ installChainableMethod(runtime, prototype, "addCircle",
238
+ &JsiSkPathBuilder::addCircle);
239
+ installChainableMethod(runtime, prototype, "addPoly",
240
+ &JsiSkPathBuilder::addPoly);
241
+ installChainableMethod(runtime, prototype, "addPath",
242
+ &JsiSkPathBuilder::addPath);
386
243
  // Config
387
- installHostMethod(runtime, prototype, "setFillType",
388
- &JsiSkPathBuilder::setFillType);
389
- installHostMethod(runtime, prototype, "setIsVolatile",
390
- &JsiSkPathBuilder::setIsVolatile);
391
- installHostMethod(runtime, prototype, "reset", &JsiSkPathBuilder::reset);
392
- installHostMethod(runtime, prototype, "offset", &JsiSkPathBuilder::offset);
393
- installHostMethod(runtime, prototype, "transform",
394
- &JsiSkPathBuilder::transform);
244
+ installChainableMethod(runtime, prototype, "setFillType",
245
+ &JsiSkPathBuilder::setFillType);
246
+ installChainableMethod(runtime, prototype, "setIsVolatile",
247
+ &JsiSkPathBuilder::setIsVolatile);
248
+ installChainableMethod(runtime, prototype, "reset",
249
+ &JsiSkPathBuilder::reset);
250
+ installChainableMethod(runtime, prototype, "offset",
251
+ &JsiSkPathBuilder::offset);
252
+ installChainableMethod(runtime, prototype, "transform",
253
+ &JsiSkPathBuilder::transform);
395
254
  // Query
396
- installHostMethod(runtime, prototype, "computeBounds",
397
- &JsiSkPathBuilder::computeBounds);
398
- installHostMethod(runtime, prototype, "isEmpty",
399
- &JsiSkPathBuilder::isEmpty);
400
- installHostMethod(runtime, prototype, "getLastPt",
401
- &JsiSkPathBuilder::getLastPt);
402
- installHostMethod(runtime, prototype, "countPoints",
403
- &JsiSkPathBuilder::countPoints);
255
+ installMethod(runtime, prototype, "computeBounds",
256
+ &JsiSkPathBuilder::computeBounds);
257
+ installMethod(runtime, prototype, "isEmpty", &JsiSkPathBuilder::isEmpty);
258
+ installMethod(runtime, prototype, "getLastPt",
259
+ &JsiSkPathBuilder::getLastPt);
260
+ installMethod(runtime, prototype, "countPoints",
261
+ &JsiSkPathBuilder::countPoints);
404
262
  // Build
405
- installHostMethod(runtime, prototype, "build", &JsiSkPathBuilder::build);
406
- installHostMethod(runtime, prototype, "detach", &JsiSkPathBuilder::detach);
263
+ installMethod(runtime, prototype, "build", &JsiSkPathBuilder::build);
264
+ installMethod(runtime, prototype, "detach", &JsiSkPathBuilder::detach);
407
265
  }
408
266
 
409
267
  JsiSkPathBuilder(std::shared_ptr<RNSkPlatformContext> context,
@@ -426,6 +284,12 @@ public:
426
284
  return makeJsiObject(runtime,
427
285
  std::make_shared<JsiSkPathBuilder>(context, builder));
428
286
  }
287
+
288
+ private:
289
+ static SkPathDirection toDirection(const JsiOptional<bool> &isCCW) {
290
+ return isCCW.has_value() && *isCCW ? SkPathDirection::kCCW
291
+ : SkPathDirection::kCW;
292
+ }
429
293
  };
430
294
 
431
295
  } // namespace RNSkia
@@ -5,7 +5,9 @@
5
5
 
6
6
  #include <jsi/jsi.h>
7
7
 
8
+ #include "JsiSkConverters.h"
8
9
  #include "JsiSkNativeObjects.h"
10
+ #include "JsiSkPath.h"
9
11
  #include "JsiSkPathBuilder.h"
10
12
 
11
13
  #pragma clang diagnostic push
@@ -25,24 +27,22 @@ class JsiSkPathBuilderFactory
25
27
  public:
26
28
  static constexpr const char *CLASS_NAME = "PathBuilderFactory";
27
29
 
28
- JSI_HOST_FUNCTION(Make) {
29
- return makeJsiObject(runtime, std::make_shared<JsiSkPathBuilder>(
30
- getContext(), SkPathBuilder()));
30
+ std::shared_ptr<JsiSkPathBuilder> Make() {
31
+ return std::make_shared<JsiSkPathBuilder>(getContext(), SkPathBuilder());
31
32
  }
32
33
 
33
- JSI_HOST_FUNCTION(MakeFromPath) {
34
- auto path = JsiSkPath::fromValue(runtime, arguments[0]);
35
- return makeJsiObject(runtime, std::make_shared<JsiSkPathBuilder>(
36
- getContext(), SkPathBuilder(*path)));
34
+ std::shared_ptr<JsiSkPathBuilder>
35
+ MakeFromPath(std::shared_ptr<SkPathBuilder> path) {
36
+ return std::make_shared<JsiSkPathBuilder>(getContext(),
37
+ SkPathBuilder(*path));
37
38
  }
38
39
 
39
40
  size_t getMemoryPressure() override { return 1024; }
40
41
 
41
42
  static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
42
- installHostMethod(runtime, prototype, "Make",
43
- &JsiSkPathBuilderFactory::Make);
44
- installHostMethod(runtime, prototype, "MakeFromPath",
45
- &JsiSkPathBuilderFactory::MakeFromPath);
43
+ installMethod(runtime, prototype, "Make", &JsiSkPathBuilderFactory::Make);
44
+ installMethod(runtime, prototype, "MakeFromPath",
45
+ &JsiSkPathBuilderFactory::MakeFromPath);
46
46
  }
47
47
 
48
48
  explicit JsiSkPathBuilderFactory(std::shared_ptr<RNSkPlatformContext> context)