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