@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
@@ -1,11 +1,13 @@
1
1
  #pragma once
2
2
 
3
3
  #include <memory>
4
+ #include <optional>
4
5
 
6
+ #include "JsiSkConverters.h"
5
7
  #include "JsiSkData.h"
6
8
  #include "JsiSkDispatcher.h"
7
- #include "JsiSkHostObjects.h"
8
9
  #include "JsiSkMatrix.h"
10
+ #include "JsiSkNativeObjects.h"
9
11
  #include "JsiSkRect.h"
10
12
  #include "JsiSkShader.h"
11
13
 
@@ -20,14 +22,18 @@ namespace RNSkia {
20
22
 
21
23
  namespace jsi = facebook::jsi;
22
24
 
23
- class JsiSkPicture : public JsiSkWrappingSkPtrHostObject<SkPicture> {
25
+ class JsiSkPicture
26
+ : public JsiSkWrappingSkPtrNativeObject<JsiSkPicture, SkPicture> {
24
27
  private:
25
28
  std::shared_ptr<Dispatcher> _dispatcher;
26
29
 
27
30
  public:
31
+ static constexpr const char *CLASS_NAME = "Picture";
32
+
28
33
  JsiSkPicture(std::shared_ptr<RNSkPlatformContext> context,
29
34
  const sk_sp<SkPicture> picture)
30
- : JsiSkWrappingSkPtrHostObject<SkPicture>(context, picture) {
35
+ : JsiSkWrappingSkPtrNativeObject<JsiSkPicture, SkPicture>(context,
36
+ picture) {
31
37
  // Get the dispatcher for the current thread
32
38
  _dispatcher = Dispatcher::getDispatcher();
33
39
  // Process any pending operations
@@ -52,23 +58,15 @@ public:
52
58
  }
53
59
  }
54
60
 
55
- JSI_HOST_FUNCTION(makeShader) {
56
- auto tmx = (SkTileMode)arguments[0].asNumber();
57
- auto tmy = (SkTileMode)arguments[1].asNumber();
58
- auto fm = (SkFilterMode)arguments[2].asNumber();
59
- auto m = count > 3 && !arguments[3].isUndefined()
60
- ? JsiSkMatrix::fromValue(runtime, arguments[3]).get()
61
- : nullptr;
62
-
63
- auto tr = count > 4 && !arguments[4].isUndefined()
64
- ? JsiSkRect::fromValue(runtime, arguments[4]).get()
65
- : nullptr;
66
-
67
- // Create shader
68
- auto shader = getObject()->makeShader(tmx, tmy, fm, m, tr);
69
- auto shaderObj = std::make_shared<JsiSkShader>(getContext(), shader);
70
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shaderObj,
71
- getContext());
61
+ std::shared_ptr<JsiSkShader>
62
+ makeShader(double tmx, double tmy, double fm,
63
+ std::optional<std::shared_ptr<SkMatrix>> m,
64
+ std::optional<std::shared_ptr<SkRect>> tr) {
65
+ auto shader = getObject()->makeShader(
66
+ static_cast<SkTileMode>(tmx), static_cast<SkTileMode>(tmy),
67
+ static_cast<SkFilterMode>(fm), m.has_value() ? m->get() : nullptr,
68
+ tr.has_value() ? tr->get() : nullptr);
69
+ return std::make_shared<JsiSkShader>(getContext(), shader);
72
70
  }
73
71
 
74
72
  JSI_HOST_FUNCTION(serialize) {
@@ -90,13 +88,22 @@ public:
90
88
  return array;
91
89
  }
92
90
 
93
- EXPORT_JSI_API_TYPENAME(JsiSkPicture, Picture)
91
+ /**
92
+ Returns the underlying object from a host object of this type
93
+ */
94
+ static sk_sp<SkPicture> fromValue(jsi::Runtime &runtime,
95
+ const jsi::Value &obj) {
96
+ return getJsiObject<JsiSkPicture>(runtime, obj)->getObject();
97
+ }
94
98
 
95
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkPicture, makeShader),
96
- JSI_EXPORT_FUNC(JsiSkPicture, serialize),
97
- JSI_EXPORT_FUNC(JsiSkPicture, dispose))
99
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
100
+ installCommon(runtime, prototype);
101
+ installMethod(runtime, prototype, "makeShader", &JsiSkPicture::makeShader);
102
+ installHostMethod(runtime, prototype, "serialize",
103
+ &JsiSkPicture::serialize);
104
+ }
98
105
 
99
- size_t getMemoryPressure() const override {
106
+ size_t getMemoryPressure() override {
100
107
  if (isDisposed()) {
101
108
  return 0;
102
109
  }
@@ -108,7 +115,5 @@ public:
108
115
  auto bytesUsed = picture->approximateBytesUsed();
109
116
  return bytesUsed;
110
117
  }
111
-
112
- std::string getObjectType() const override { return "JsiSkPicture"; }
113
118
  };
114
119
  } // namespace RNSkia
@@ -4,7 +4,7 @@
4
4
 
5
5
  #include "JsiSkColorFilter.h"
6
6
  #include "JsiSkData.h"
7
- #include "JsiSkHostObjects.h"
7
+ #include "JsiSkNativeObjects.h"
8
8
  #include "JsiSkPicture.h"
9
9
 
10
10
  #pragma clang diagnostic push
@@ -19,15 +19,15 @@ namespace RNSkia {
19
19
 
20
20
  namespace jsi = facebook::jsi;
21
21
 
22
- class JsiSkPictureFactory : public JsiSkHostObject {
22
+ class JsiSkPictureFactory : public JsiSkNativeObject<JsiSkPictureFactory> {
23
23
  public:
24
+ static constexpr const char *CLASS_NAME = "PictureFactory";
25
+
24
26
  JSI_HOST_FUNCTION(MakePicture) {
25
27
  // Handle null case - create JsiSkPicture with nullptr
26
28
  if (arguments[0].isNull() || arguments[0].isUndefined()) {
27
- auto hostObjectInstance =
28
- std::make_shared<JsiSkPicture>(getContext(), nullptr);
29
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
30
- runtime, hostObjectInstance, getContext());
29
+ return makeJsiObject(
30
+ runtime, std::make_shared<JsiSkPicture>(getContext(), nullptr));
31
31
  }
32
32
 
33
33
  if (!arguments[0].isObject()) {
@@ -36,18 +36,14 @@ public:
36
36
  auto obj = arguments[0].asObject(runtime);
37
37
 
38
38
  // Check if it's a JsiSkData object first
39
- if (obj.isHostObject(runtime)) {
40
- if (auto jsiData = obj.asHostObject<JsiSkData>(runtime)) {
41
- auto data = jsiData->getObject();
42
- auto picture = SkPicture::MakeFromData(data.get());
43
- if (picture != nullptr) {
44
- auto hostObjectInstance =
45
- std::make_shared<JsiSkPicture>(getContext(), std::move(picture));
46
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
47
- runtime, hostObjectInstance, getContext());
48
- }
49
- return jsi::Value::undefined();
39
+ if (auto jsiData = tryGetJsiObject<JsiSkData>(runtime, obj)) {
40
+ auto data = jsiData->getObject();
41
+ auto picture = SkPicture::MakeFromData(data.get());
42
+ if (picture != nullptr) {
43
+ return makeJsiObject(runtime, std::make_shared<JsiSkPicture>(
44
+ getContext(), std::move(picture)));
50
45
  }
46
+ return jsi::Value::undefined();
51
47
  }
52
48
 
53
49
  // Get ArrayBuffer - try buffer property first (Uint8Array, etc.), then
@@ -64,23 +60,22 @@ public:
64
60
  SkData::MakeWithCopy(buffer.data(runtime), buffer.size(runtime));
65
61
  auto picture = SkPicture::MakeFromData(data.get());
66
62
  if (picture != nullptr) {
67
- auto hostObjectInstance =
68
- std::make_shared<JsiSkPicture>(getContext(), std::move(picture));
69
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
70
- runtime, hostObjectInstance, getContext());
63
+ return makeJsiObject(runtime, std::make_shared<JsiSkPicture>(
64
+ getContext(), std::move(picture)));
71
65
  } else {
72
66
  return jsi::Value::undefined();
73
67
  }
74
68
  }
75
69
 
76
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkPictureFactory, MakePicture))
70
+ size_t getMemoryPressure() override { return 1024; }
77
71
 
78
- size_t getMemoryPressure() const override { return 1024; }
79
-
80
- std::string getObjectType() const override { return "JsiSkPictureFactory"; }
72
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
73
+ installHostMethod(runtime, prototype, "MakePicture",
74
+ &JsiSkPictureFactory::MakePicture);
75
+ }
81
76
 
82
77
  explicit JsiSkPictureFactory(std::shared_ptr<RNSkPlatformContext> context)
83
- : JsiSkHostObject(std::move(context)) {}
78
+ : JsiSkNativeObject<JsiSkPictureFactory>(std::move(context)) {}
84
79
  };
85
80
 
86
81
  } // namespace RNSkia
@@ -3,7 +3,8 @@
3
3
  #include <memory>
4
4
 
5
5
  #include "JsiSkCanvas.h"
6
- #include "JsiSkHostObjects.h"
6
+ #include "JsiSkConverters.h"
7
+ #include "JsiSkNativeObjects.h"
7
8
  #include "JsiSkPicture.h"
8
9
  #include "JsiSkRect.h"
9
10
 
@@ -20,53 +21,50 @@ namespace RNSkia {
20
21
  namespace jsi = facebook::jsi;
21
22
 
22
23
  class JsiSkPictureRecorder
23
- : public JsiSkWrappingSharedPtrHostObject<SkPictureRecorder> {
24
+ : public JsiSkWrappingSharedPtrNativeObject<JsiSkPictureRecorder,
25
+ SkPictureRecorder> {
24
26
  public:
27
+ static constexpr const char *CLASS_NAME = "PictureRecorder";
28
+
25
29
  explicit JsiSkPictureRecorder(std::shared_ptr<RNSkPlatformContext> context)
26
- : JsiSkWrappingSharedPtrHostObject<SkPictureRecorder>(
30
+ : JsiSkWrappingSharedPtrNativeObject<JsiSkPictureRecorder,
31
+ SkPictureRecorder>(
27
32
  context, std::make_shared<SkPictureRecorder>()) {}
28
33
 
29
- JSI_HOST_FUNCTION(beginRecording) {
34
+ std::shared_ptr<JsiSkCanvas>
35
+ beginRecording(JsiOptional<std::shared_ptr<SkRect>> rect) {
30
36
  SkCanvas *canvas;
31
- if (count > 0 && !arguments[0].isUndefined()) {
32
- auto rect = JsiSkRect::fromValue(runtime, arguments[0]);
37
+ if (rect.has_value()) {
33
38
  SkRTreeFactory factory;
34
- canvas = getObject()->beginRecording(*rect, &factory);
39
+ canvas = getObject()->beginRecording(**rect, &factory);
35
40
  } else {
36
41
  SkISize size = SkISize::Make(2'000'000, 2'000'000);
37
- SkRect rect = SkRect::Make(size);
38
- canvas = getObject()->beginRecording(rect, nullptr);
42
+ SkRect bounds = SkRect::Make(size);
43
+ canvas = getObject()->beginRecording(bounds, nullptr);
39
44
  }
40
- auto canvasObj = std::make_shared<JsiSkCanvas>(getContext(), canvas);
41
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, canvasObj,
42
- getContext());
45
+ return std::make_shared<JsiSkCanvas>(getContext(), canvas);
43
46
  }
44
47
 
45
- JSI_HOST_FUNCTION(finishRecordingAsPicture) {
48
+ std::shared_ptr<JsiSkPicture> finishRecordingAsPicture() {
46
49
  auto picture = getObject()->finishRecordingAsPicture();
47
- auto hostObjectInstance =
48
- std::make_shared<JsiSkPicture>(getContext(), std::move(picture));
49
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
50
- runtime, hostObjectInstance, getContext());
50
+ return std::make_shared<JsiSkPicture>(getContext(), std::move(picture));
51
51
  }
52
52
 
53
- EXPORT_JSI_API_TYPENAME(JsiSkPictureRecorder, PictureRecorder)
54
-
55
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkPictureRecorder, beginRecording),
56
- JSI_EXPORT_FUNC(JsiSkPictureRecorder,
57
- finishRecordingAsPicture),
58
- JSI_EXPORT_FUNC(JsiSkPictureRecorder, dispose))
59
-
60
- size_t getMemoryPressure() const override { return 1024 * 1024; }
53
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
54
+ installCommon(runtime, prototype);
55
+ installMethod(runtime, prototype, "beginRecording",
56
+ &JsiSkPictureRecorder::beginRecording);
57
+ installMethod(runtime, prototype, "finishRecordingAsPicture",
58
+ &JsiSkPictureRecorder::finishRecordingAsPicture);
59
+ }
61
60
 
62
- std::string getObjectType() const override { return "JsiSkPictureRecorder"; }
61
+ size_t getMemoryPressure() override { return 1024 * 1024; }
63
62
 
64
63
  static const jsi::HostFunctionType
65
64
  createCtor(std::shared_ptr<RNSkPlatformContext> context) {
66
65
  return JSI_HOST_FUNCTION_LAMBDA {
67
- auto recorder = std::make_shared<JsiSkPictureRecorder>(context);
68
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, recorder,
69
- context);
66
+ return makeJsiObject(runtime,
67
+ std::make_shared<JsiSkPictureRecorder>(context));
70
68
  };
71
69
  }
72
70
  };
@@ -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,22 +18,23 @@ namespace RNSkia {
18
18
 
19
19
  namespace jsi = facebook::jsi;
20
20
 
21
- class JsiSkPoint : public JsiSkWrappingSharedPtrHostObject<SkPoint> {
21
+ class JsiSkPoint
22
+ : public JsiSkWrappingSharedPtrNativeObject<JsiSkPoint, SkPoint> {
22
23
  public:
23
- JSI_PROPERTY_GET(x) { return static_cast<double>(getObject()->x()); }
24
+ static constexpr const char *CLASS_NAME = "Point";
24
25
 
25
- JSI_PROPERTY_GET(y) { return static_cast<double>(getObject()->y()); }
26
+ double getX() { return static_cast<double>(getObject()->x()); }
26
27
 
27
- JSI_API_TYPENAME("Point");
28
+ double getY() { return static_cast<double>(getObject()->y()); }
28
29
 
29
- JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkPoint, x),
30
- JSI_EXPORT_PROP_GET(JsiSkPoint, y),
31
- JSI_EXPORT_PROP_GET(JsiSkPoint, __typename__))
32
-
33
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkPoint, dispose))
30
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
31
+ installCommon(runtime, prototype);
32
+ installGetter(runtime, prototype, "x", &JsiSkPoint::getX);
33
+ installGetter(runtime, prototype, "y", &JsiSkPoint::getY);
34
+ }
34
35
 
35
36
  JsiSkPoint(std::shared_ptr<RNSkPlatformContext> context, const SkPoint &point)
36
- : JsiSkWrappingSharedPtrHostObject<SkPoint>(
37
+ : JsiSkWrappingSharedPtrNativeObject<JsiSkPoint, SkPoint>(
37
38
  std::move(context), std::make_shared<SkPoint>(point)) {}
38
39
 
39
40
  /**
@@ -42,8 +43,9 @@ public:
42
43
  static std::shared_ptr<SkPoint> fromValue(jsi::Runtime &runtime,
43
44
  const jsi::Value &obj) {
44
45
  const auto &object = obj.asObject(runtime);
45
- if (object.isHostObject(runtime)) {
46
- return object.asHostObject<JsiSkPoint>(runtime)->getObject();
46
+ auto point = tryGetJsiObject<JsiSkPoint>(runtime, object);
47
+ if (point) {
48
+ return point->getObject();
47
49
  } else {
48
50
  auto x = object.getProperty(runtime, "x").asNumber();
49
51
  auto y = object.getProperty(runtime, "y").asNumber();
@@ -57,17 +59,14 @@ public:
57
59
  static jsi::Value toValue(jsi::Runtime &runtime,
58
60
  std::shared_ptr<RNSkPlatformContext> context,
59
61
  const SkPoint &point) {
60
- auto pointObj = std::make_shared<JsiSkPoint>(std::move(context), point);
61
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, pointObj,
62
- context);
62
+ return makeJsiObject(
63
+ runtime, std::make_shared<JsiSkPoint>(std::move(context), point));
63
64
  }
64
65
 
65
- size_t getMemoryPressure() const override {
66
+ size_t getMemoryPressure() override {
66
67
  return std::max(sizeof(SkPoint), kMinMemoryPressure);
67
68
  }
68
69
 
69
- std::string getObjectType() const override { return "JsiSkPoint"; }
70
-
71
70
  /**
72
71
  * Creates the function for construction a new instance of the SkPoint
73
72
  * wrapper
@@ -82,10 +81,8 @@ public:
82
81
  SkPoint::Make(arguments[0].asNumber(), arguments[1].asNumber());
83
82
 
84
83
  // Return the newly constructed object
85
- auto pointObj =
86
- std::make_shared<JsiSkPoint>(std::move(context), std::move(point));
87
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, pointObj,
88
- context);
84
+ return makeJsiObject(runtime, std::make_shared<JsiSkPoint>(
85
+ std::move(context), std::move(point)));
89
86
  };
90
87
  }
91
88
  };
@@ -6,7 +6,7 @@
6
6
 
7
7
  #include <jsi/jsi.h>
8
8
 
9
- #include "JsiSkHostObjects.h"
9
+ #include "JsiSkNativeObjects.h"
10
10
 
11
11
  #pragma clang diagnostic push
12
12
  #pragma clang diagnostic ignored "-Wdocumentation"
@@ -21,32 +21,30 @@ namespace RNSkia {
21
21
 
22
22
  namespace jsi = facebook::jsi;
23
23
 
24
- class JsiSkRRect : public JsiSkWrappingSharedPtrHostObject<SkRRect> {
24
+ class JsiSkRRect
25
+ : public JsiSkWrappingSharedPtrNativeObject<JsiSkRRect, SkRRect> {
25
26
  public:
26
- JSI_PROPERTY_GET(rx) {
27
+ static constexpr const char *CLASS_NAME = "RRect";
28
+
29
+ double getRx() {
27
30
  return static_cast<double>(getObject()->getSimpleRadii().x());
28
31
  }
29
- JSI_PROPERTY_GET(ry) {
32
+ double getRy() {
30
33
  return static_cast<double>(getObject()->getSimpleRadii().y());
31
34
  }
32
- JSI_PROPERTY_GET(rect) {
33
- auto rectObj =
34
- std::make_shared<JsiSkRect>(getContext(), getObject()->getBounds());
35
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, rectObj,
36
- getContext());
35
+ std::shared_ptr<JsiSkRect> getRect() {
36
+ return std::make_shared<JsiSkRect>(getContext(), getObject()->getBounds());
37
37
  }
38
38
 
39
- JSI_API_TYPENAME("RRect");
40
-
41
- JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkRRect, rx),
42
- JSI_EXPORT_PROP_GET(JsiSkRRect, ry),
43
- JSI_EXPORT_PROP_GET(JsiSkRRect, rect),
44
- JSI_EXPORT_PROP_GET(JsiSkRRect, __typename__))
45
-
46
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRRect, dispose))
39
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
40
+ installCommon(runtime, prototype);
41
+ installGetter(runtime, prototype, "rx", &JsiSkRRect::getRx);
42
+ installGetter(runtime, prototype, "ry", &JsiSkRRect::getRy);
43
+ installGetter(runtime, prototype, "rect", &JsiSkRRect::getRect);
44
+ }
47
45
 
48
46
  JsiSkRRect(std::shared_ptr<RNSkPlatformContext> context, const SkRRect &rect)
49
- : JsiSkWrappingSharedPtrHostObject<SkRRect>(
47
+ : JsiSkWrappingSharedPtrNativeObject<JsiSkRRect, SkRRect>(
50
48
  std::move(context), std::make_shared<SkRRect>(rect)) {}
51
49
 
52
50
  /**
@@ -56,10 +54,9 @@ public:
56
54
  const jsi::Value &obj) {
57
55
 
58
56
  const auto &object = obj.asObject(runtime);
59
- if (object.isHostObject(runtime)) {
60
- return obj.asObject(runtime)
61
- .asHostObject<JsiSkRRect>(runtime)
62
- ->getObject();
57
+ auto rrect = tryGetJsiObject<JsiSkRRect>(runtime, object);
58
+ if (rrect) {
59
+ return rrect->getObject();
63
60
  } else {
64
61
  auto rect =
65
62
  JsiSkRect::fromValue(runtime, object.getProperty(runtime, "rect"));
@@ -101,17 +98,14 @@ public:
101
98
  static jsi::Value toValue(jsi::Runtime &runtime,
102
99
  std::shared_ptr<RNSkPlatformContext> context,
103
100
  const SkRRect &rect) {
104
- auto rrectObj = std::make_shared<JsiSkRRect>(std::move(context), rect);
105
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, rrectObj,
106
- context);
101
+ return makeJsiObject(
102
+ runtime, std::make_shared<JsiSkRRect>(std::move(context), rect));
107
103
  }
108
104
 
109
- size_t getMemoryPressure() const override {
105
+ size_t getMemoryPressure() override {
110
106
  return std::max(sizeof(SkRRect), kMinMemoryPressure);
111
107
  }
112
108
 
113
- std::string getObjectType() const override { return "JsiSkRRect"; }
114
-
115
109
  /**
116
110
  * Creates the function for construction a new instance of the SkRect
117
111
  * wrapper
@@ -128,10 +122,8 @@ public:
128
122
  auto ry = arguments[2].asNumber();
129
123
  auto rrect = SkRRect::MakeRectXY(*rect, rx, ry);
130
124
  // Return the newly constructed object
131
- auto rrectObj =
132
- std::make_shared<JsiSkRRect>(std::move(context), std::move(rrect));
133
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, rrectObj,
134
- context);
125
+ return makeJsiObject(runtime, std::make_shared<JsiSkRRect>(
126
+ std::move(context), std::move(rrect)));
135
127
  };
136
128
  }
137
129
  };
@@ -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,48 +18,36 @@ namespace RNSkia {
18
18
 
19
19
  namespace jsi = facebook::jsi;
20
20
 
21
- class JsiSkRSXform : public JsiSkWrappingSharedPtrHostObject<SkRSXform> {
21
+ class JsiSkRSXform
22
+ : public JsiSkWrappingSharedPtrNativeObject<JsiSkRSXform, SkRSXform> {
22
23
  public:
24
+ static constexpr const char *CLASS_NAME = "RSXform";
25
+
23
26
  JsiSkRSXform(std::shared_ptr<RNSkPlatformContext> context,
24
27
  const SkRSXform &rsxform)
25
- : JsiSkWrappingSharedPtrHostObject<SkRSXform>(
28
+ : JsiSkWrappingSharedPtrNativeObject<JsiSkRSXform, SkRSXform>(
26
29
  std::move(context), std::make_shared<SkRSXform>(rsxform)) {}
27
30
 
28
- JSI_API_TYPENAME("RSXform");
29
-
30
- JSI_PROPERTY_GET(scos) {
31
- return jsi::Value(SkScalarToDouble(getObject()->fSCos));
32
- }
33
- JSI_PROPERTY_GET(ssin) {
34
- return jsi::Value(SkScalarToDouble(getObject()->fSSin));
35
- }
36
- JSI_PROPERTY_GET(tx) {
37
- return jsi::Value(SkScalarToDouble(getObject()->fTx));
38
- }
39
- JSI_PROPERTY_GET(ty) {
40
- return jsi::Value(SkScalarToDouble(getObject()->fTy));
41
- }
31
+ double getScos() { return SkScalarToDouble(getObject()->fSCos); }
32
+ double getSsin() { return SkScalarToDouble(getObject()->fSSin); }
33
+ double getTx() { return SkScalarToDouble(getObject()->fTx); }
34
+ double getTy() { return SkScalarToDouble(getObject()->fTy); }
42
35
 
43
36
  #pragma clang diagnostic push
44
37
  #pragma clang diagnostic ignored "-Woverloaded-virtual"
45
- JSI_HOST_FUNCTION(set) {
46
- auto scos = arguments[0].asNumber();
47
- auto ssin = arguments[1].asNumber();
48
- auto tx = arguments[2].asNumber();
49
- auto ty = arguments[3].asNumber();
38
+ void set(double scos, double ssin, double tx, double ty) {
50
39
  getObject()->set(scos, ssin, tx, ty);
51
- return jsi::Value::undefined();
52
40
  }
53
41
  #pragma clang diagnostic pop
54
42
 
55
- JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkRSXform, __typename__),
56
- JSI_EXPORT_PROP_GET(JsiSkRSXform, scos),
57
- JSI_EXPORT_PROP_GET(JsiSkRSXform, ssin),
58
- JSI_EXPORT_PROP_GET(JsiSkRSXform, tx),
59
- JSI_EXPORT_PROP_GET(JsiSkRSXform, ty))
60
-
61
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRSXform, set),
62
- JSI_EXPORT_FUNC(JsiSkRSXform, dispose))
43
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
44
+ installCommon(runtime, prototype);
45
+ installGetter(runtime, prototype, "scos", &JsiSkRSXform::getScos);
46
+ installGetter(runtime, prototype, "ssin", &JsiSkRSXform::getSsin);
47
+ installGetter(runtime, prototype, "tx", &JsiSkRSXform::getTx);
48
+ installGetter(runtime, prototype, "ty", &JsiSkRSXform::getTy);
49
+ installMethod(runtime, prototype, "set", &JsiSkRSXform::set);
50
+ }
63
51
 
64
52
  /**
65
53
  Returns the underlying object from a host object of this type
@@ -67,8 +55,9 @@ public:
67
55
  static std::shared_ptr<SkRSXform> fromValue(jsi::Runtime &runtime,
68
56
  const jsi::Value &obj) {
69
57
  const auto &object = obj.asObject(runtime);
70
- if (object.isHostObject(runtime)) {
71
- return object.asHostObject<JsiSkRSXform>(runtime)->getObject();
58
+ auto rsxform = tryGetJsiObject<JsiSkRSXform>(runtime, object);
59
+ if (rsxform) {
60
+ return rsxform->getObject();
72
61
  } else {
73
62
  auto scos = object.getProperty(runtime, "scos").asNumber();
74
63
  auto ssin = object.getProperty(runtime, "ssin").asNumber();
@@ -84,10 +73,8 @@ public:
84
73
  static jsi::Value toValue(jsi::Runtime &runtime,
85
74
  std::shared_ptr<RNSkPlatformContext> context,
86
75
  const SkRSXform &rsxform) {
87
- auto rsxformObj =
88
- std::make_shared<JsiSkRSXform>(std::move(context), rsxform);
89
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, rsxformObj,
90
- context);
76
+ return makeJsiObject(
77
+ runtime, std::make_shared<JsiSkRSXform>(std::move(context), rsxform));
91
78
  }
92
79
 
93
80
  /**
@@ -105,18 +92,15 @@ public:
105
92
  arguments[2].asNumber(), arguments[3].asNumber(),
106
93
  arguments[4].asNumber(), arguments[5].asNumber());
107
94
  // Return the newly constructed object
108
- auto rsxformObj = std::make_shared<JsiSkRSXform>(std::move(context),
109
- std::move(rsxform));
110
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, rsxformObj,
111
- context);
95
+ return makeJsiObject(runtime,
96
+ std::make_shared<JsiSkRSXform>(std::move(context),
97
+ std::move(rsxform)));
112
98
  };
113
99
  }
114
- size_t getMemoryPressure() const override {
100
+ size_t getMemoryPressure() override {
115
101
  return std::max(sizeof(SkRSXform), kMinMemoryPressure);
116
102
  }
117
103
 
118
- std::string getObjectType() const override { return "JsiSkRSXform"; }
119
-
120
104
  /**
121
105
  * Creates the function for construction a new instance of the SkRSXform
122
106
  * wrapper
@@ -131,10 +115,9 @@ public:
131
115
  SkRSXform::Make(arguments[0].asNumber(), arguments[1].asNumber(),
132
116
  arguments[2].asNumber(), arguments[3].asNumber());
133
117
  // Return the newly constructed object
134
- auto rsxformObj = std::make_shared<JsiSkRSXform>(std::move(context),
135
- std::move(rsxform));
136
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, rsxformObj,
137
- context);
118
+ return makeJsiObject(runtime,
119
+ std::make_shared<JsiSkRSXform>(std::move(context),
120
+ std::move(rsxform)));
138
121
  };
139
122
  }
140
123
  };