@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
@@ -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,50 +18,46 @@ namespace RNSkia {
18
18
 
19
19
  namespace jsi = facebook::jsi;
20
20
 
21
- class JsiSkRect : public JsiSkWrappingSharedPtrHostObject<SkRect> {
21
+ class JsiSkRect : public JsiSkWrappingSharedPtrNativeObject<JsiSkRect, SkRect> {
22
22
  public:
23
- JSI_PROPERTY_GET(x) { return static_cast<double>(getObject()->x()); }
24
- JSI_PROPERTY_GET(y) { return static_cast<double>(getObject()->y()); }
25
- JSI_PROPERTY_GET(width) { return static_cast<double>(getObject()->width()); }
26
- JSI_PROPERTY_GET(height) {
27
- return static_cast<double>(getObject()->height());
23
+ static constexpr const char *CLASS_NAME = "Rect";
24
+
25
+ double getX() { return static_cast<double>(getObject()->x()); }
26
+ double getY() { return static_cast<double>(getObject()->y()); }
27
+ double getWidth() { return static_cast<double>(getObject()->width()); }
28
+ double getHeight() { return static_cast<double>(getObject()->height()); }
29
+ double getLeft() { return static_cast<double>(getObject()->left()); }
30
+ double getTop() { return static_cast<double>(getObject()->top()); }
31
+ double getRight() { return static_cast<double>(getObject()->right()); }
32
+ double getBottom() { return static_cast<double>(getObject()->bottom()); }
33
+
34
+ void setXYWH(double x, double y, double width, double height) {
35
+ getObject()->setXYWH(x, y, width, height);
28
36
  }
29
- JSI_PROPERTY_GET(left) { return static_cast<double>(getObject()->left()); }
30
- JSI_PROPERTY_GET(top) { return static_cast<double>(getObject()->top()); }
31
- JSI_PROPERTY_GET(right) { return static_cast<double>(getObject()->right()); }
32
- JSI_PROPERTY_GET(bottom) {
33
- return static_cast<double>(getObject()->bottom());
34
- }
35
-
36
- JSI_API_TYPENAME("Rect");
37
-
38
- JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkRect, x),
39
- JSI_EXPORT_PROP_GET(JsiSkRect, y),
40
- JSI_EXPORT_PROP_GET(JsiSkRect, width),
41
- JSI_EXPORT_PROP_GET(JsiSkRect, height),
42
- JSI_EXPORT_PROP_GET(JsiSkRect, __typename__))
43
37
 
44
- JSI_HOST_FUNCTION(setXYWH) {
45
- getObject()->setXYWH(arguments[0].asNumber(), arguments[1].asNumber(),
46
- arguments[2].asNumber(), arguments[3].asNumber());
47
- return jsi::Value::undefined();
38
+ void setLTRB(double left, double top, double right, double bottom) {
39
+ getObject()->setLTRB(left, top, right, bottom);
48
40
  }
49
41
 
50
- JSI_HOST_FUNCTION(setLTRB) {
51
- getObject()->setLTRB(arguments[0].asNumber(), arguments[1].asNumber(),
52
- arguments[2].asNumber(), arguments[3].asNumber());
53
- return jsi::Value::undefined();
42
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
43
+ installCommon(runtime, prototype);
44
+ installGetter(runtime, prototype, "x", &JsiSkRect::getX);
45
+ installGetter(runtime, prototype, "y", &JsiSkRect::getY);
46
+ installGetter(runtime, prototype, "width", &JsiSkRect::getWidth);
47
+ installGetter(runtime, prototype, "height", &JsiSkRect::getHeight);
48
+ installGetter(runtime, prototype, "left", &JsiSkRect::getLeft);
49
+ installGetter(runtime, prototype, "top", &JsiSkRect::getTop);
50
+ installGetter(runtime, prototype, "right", &JsiSkRect::getRight);
51
+ installGetter(runtime, prototype, "bottom", &JsiSkRect::getBottom);
52
+ installMethod(runtime, prototype, "setXYWH", &JsiSkRect::setXYWH);
53
+ installMethod(runtime, prototype, "setLTRB", &JsiSkRect::setLTRB);
54
54
  }
55
55
 
56
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRect, setXYWH),
57
- JSI_EXPORT_FUNC(JsiSkRect, setLTRB),
58
- JSI_EXPORT_FUNC(JsiSkRect, dispose))
59
-
60
56
  /**
61
57
  Constructor
62
58
  */
63
59
  JsiSkRect(std::shared_ptr<RNSkPlatformContext> context, const SkRect &rect)
64
- : JsiSkWrappingSharedPtrHostObject<SkRect>(
60
+ : JsiSkWrappingSharedPtrNativeObject<JsiSkRect, SkRect>(
65
61
  std::move(context), std::make_shared<SkRect>(rect)) {}
66
62
 
67
63
  /**
@@ -70,8 +66,9 @@ public:
70
66
  static std::shared_ptr<SkRect> fromValue(jsi::Runtime &runtime,
71
67
  const jsi::Value &obj) {
72
68
  const auto &object = obj.asObject(runtime);
73
- if (object.isHostObject(runtime)) {
74
- return object.asHostObject<JsiSkRect>(runtime)->getObject();
69
+ auto rect = tryGetJsiObject<JsiSkRect>(runtime, object);
70
+ if (rect) {
71
+ return rect->getObject();
75
72
  } else {
76
73
  auto x = object.getProperty(runtime, "x").asNumber();
77
74
  auto y = object.getProperty(runtime, "y").asNumber();
@@ -87,25 +84,20 @@ public:
87
84
  static jsi::Value toValue(jsi::Runtime &runtime,
88
85
  std::shared_ptr<RNSkPlatformContext> context,
89
86
  const SkRect &rect) {
90
- auto rectObj = std::make_shared<JsiSkRect>(std::move(context), rect);
91
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, rectObj,
92
- context);
87
+ return makeJsiObject(runtime,
88
+ std::make_shared<JsiSkRect>(std::move(context), rect));
93
89
  }
94
90
  static jsi::Value toValue(jsi::Runtime &runtime,
95
91
  std::shared_ptr<RNSkPlatformContext> context,
96
92
  SkRect &&rect) {
97
- auto rectObj =
98
- std::make_shared<JsiSkRect>(std::move(context), std::move(rect));
99
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, rectObj,
100
- context);
93
+ return makeJsiObject(runtime, std::make_shared<JsiSkRect>(
94
+ std::move(context), std::move(rect)));
101
95
  }
102
96
 
103
- size_t getMemoryPressure() const override {
97
+ size_t getMemoryPressure() override {
104
98
  return std::max(sizeof(SkRect), kMinMemoryPressure);
105
99
  }
106
100
 
107
- std::string getObjectType() const override { return "JsiSkRect"; }
108
-
109
101
  /**
110
102
  * Creates the function for construction a new instance of the SkRect
111
103
  * wrapper
@@ -122,10 +114,8 @@ public:
122
114
  arguments[2].asNumber(), arguments[3].asNumber());
123
115
 
124
116
  // Return the newly constructed object
125
- auto rectObj =
126
- std::make_shared<JsiSkRect>(std::move(context), std::move(rect));
127
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, rectObj,
128
- context);
117
+ return makeJsiObject(runtime, std::make_shared<JsiSkRect>(
118
+ std::move(context), std::move(rect)));
129
119
  };
130
120
  }
131
121
  };
@@ -5,8 +5,9 @@
5
5
  #include <utility>
6
6
  #include <vector>
7
7
 
8
- #include "JsiSkHostObjects.h"
8
+ #include "JsiSkConverters.h"
9
9
  #include "JsiSkMatrix.h"
10
+ #include "JsiSkNativeObjects.h"
10
11
  #include "JsiSkShader.h"
11
12
 
12
13
  #include <jsi/jsi.h>
@@ -36,115 +37,111 @@ struct RuntimeEffectUniform {
36
37
  bool isInteger;
37
38
  };
38
39
 
39
- class JsiSkRuntimeEffect
40
- : public JsiSkWrappingSkPtrHostObject<SkRuntimeEffect> {
41
- public:
42
- JSI_HOST_FUNCTION(makeShader) {
43
- auto uniforms = castUniforms(runtime, arguments[0]);
44
-
45
- auto matrix =
46
- count >= 2 && !arguments[1].isUndefined() && !arguments[1].isNull()
47
- ? JsiSkMatrix::fromValue(runtime, arguments[1]).get()
48
- : nullptr;
49
-
50
- // Create and return shader as host object
51
- auto shader =
52
- getObject()->makeShader(std::move(uniforms), nullptr, 0, matrix);
53
-
54
- auto shaderObj =
55
- std::make_shared<JsiSkShader>(getContext(), std::move(shader));
56
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shaderObj,
57
- getContext());
40
+ } // namespace RNSkia
41
+
42
+ namespace rnwgpu {
43
+
44
+ // RuntimeEffectUniform -> {columns, rows, slot, isInteger}
45
+ template <> struct JSIConverter<RNSkia::RuntimeEffectUniform> {
46
+ static jsi::Value toJSI(jsi::Runtime &runtime,
47
+ const RNSkia::RuntimeEffectUniform &u) {
48
+ jsi::Object result(runtime);
49
+ result.setProperty(runtime, "columns", u.columns);
50
+ result.setProperty(runtime, "rows", u.rows);
51
+ result.setProperty(runtime, "slot", u.slot);
52
+ result.setProperty(runtime, "isInteger", u.isInteger);
53
+ return result;
58
54
  }
55
+ };
59
56
 
60
- JSI_HOST_FUNCTION(makeShaderWithChildren) {
61
- auto uniforms = castUniforms(runtime, arguments[0]);
62
-
63
- // Children
64
- std::vector<sk_sp<SkShader>> children;
65
- auto jsiChildren = arguments[1].asObject(runtime).asArray(runtime);
66
- auto jsiChildCount = jsiChildren.size(runtime);
67
- children.reserve(jsiChildCount);
68
- for (int i = 0; i < jsiChildCount; i++) {
69
- auto shader = jsiChildren.getValueAtIndex(runtime, i)
70
- .asObject(runtime)
71
- .asHostObject<JsiSkShader>(runtime)
72
- ->getObject();
73
- children.push_back(shader);
74
- }
57
+ } // namespace rnwgpu
75
58
 
76
- auto matrix =
77
- count >= 3 && !arguments[2].isUndefined() && !arguments[2].isNull()
78
- ? JsiSkMatrix::fromValue(runtime, arguments[2]).get()
79
- : nullptr;
59
+ namespace RNSkia {
80
60
 
81
- // Create and return shader as host object
82
- auto shader = getObject()->makeShader(std::move(uniforms), children.data(),
83
- children.size(), matrix);
61
+ class JsiSkRuntimeEffect
62
+ : public JsiSkWrappingSkPtrNativeObject<JsiSkRuntimeEffect,
63
+ SkRuntimeEffect> {
64
+ public:
65
+ static constexpr const char *CLASS_NAME = "RuntimeEffect";
66
+
67
+ std::shared_ptr<JsiSkShader>
68
+ makeShader(std::vector<double> uniformValues,
69
+ JsiOptional<std::shared_ptr<SkMatrix>> matrix) {
70
+ auto uniforms = castUniforms(uniformValues);
71
+ auto shader = getObject()->makeShader(
72
+ std::move(uniforms), nullptr, 0,
73
+ matrix.has_value() ? matrix->get() : nullptr);
74
+ return std::make_shared<JsiSkShader>(getContext(), std::move(shader));
75
+ }
84
76
 
85
- auto shaderObj =
86
- std::make_shared<JsiSkShader>(getContext(), std::move(shader));
87
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shaderObj,
88
- getContext());
77
+ std::shared_ptr<JsiSkShader>
78
+ makeShaderWithChildren(std::vector<double> uniformValues,
79
+ std::vector<sk_sp<SkShader>> children,
80
+ JsiOptional<std::shared_ptr<SkMatrix>> matrix) {
81
+ auto uniforms = castUniforms(uniformValues);
82
+ auto shader = getObject()->makeShader(
83
+ std::move(uniforms), children.data(), children.size(),
84
+ matrix.has_value() ? matrix->get() : nullptr);
85
+ return std::make_shared<JsiSkShader>(getContext(), std::move(shader));
89
86
  }
90
87
 
91
- JSI_HOST_FUNCTION(getUniformCount) {
88
+ int getUniformCount() {
92
89
  return static_cast<int>(getObject()->uniforms().size());
93
90
  }
94
91
 
95
- JSI_HOST_FUNCTION(getUniformFloatCount) {
92
+ int getUniformFloatCount() {
96
93
  return static_cast<int>(getObject()->uniformSize() / sizeof(float));
97
94
  }
98
95
 
99
- JSI_HOST_FUNCTION(getUniformName) {
100
- auto i = static_cast<int>(arguments[0].asNumber());
96
+ std::string getUniformName(int i) {
101
97
  if (i < 0 || i >= getObject()->uniforms().size()) {
102
- throw jsi::JSError(runtime, "invalid uniform index");
98
+ throw std::runtime_error("invalid uniform index");
103
99
  }
104
100
  auto it = getObject()->uniforms().begin() + i;
105
- return jsi::String::createFromAscii(runtime, std::string(it->name));
101
+ return std::string(it->name);
106
102
  }
107
103
 
108
- JSI_HOST_FUNCTION(getUniform) {
109
- auto i = static_cast<int>(arguments[0].asNumber());
104
+ RuntimeEffectUniform getUniform(int i) {
110
105
  if (i < 0 || i >= getObject()->uniforms().size()) {
111
- throw jsi::JSError(runtime, "invalid uniform index");
106
+ throw std::runtime_error("invalid uniform index");
112
107
  }
113
108
  auto it = getObject()->uniforms().begin() + i;
114
- auto result = jsi::Object(runtime);
115
- RuntimeEffectUniform su = fromUniform(*it);
116
- result.setProperty(runtime, "columns", su.columns);
117
- result.setProperty(runtime, "rows", su.rows);
118
- result.setProperty(runtime, "slot", su.slot);
119
- result.setProperty(runtime, "isInteger", su.isInteger);
120
- return result;
109
+ return fromUniform(*it);
121
110
  }
122
111
 
123
- JSI_HOST_FUNCTION(source) {
124
- return jsi::String::createFromAscii(runtime, getObject()->source());
112
+ std::string source() { return std::string(getObject()->source()); }
113
+
114
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
115
+ installCommon(runtime, prototype);
116
+ installMethod(runtime, prototype, "makeShader",
117
+ &JsiSkRuntimeEffect::makeShader);
118
+ installMethod(runtime, prototype, "makeShaderWithChildren",
119
+ &JsiSkRuntimeEffect::makeShaderWithChildren);
120
+ installMethod(runtime, prototype, "getUniformCount",
121
+ &JsiSkRuntimeEffect::getUniformCount);
122
+ installMethod(runtime, prototype, "getUniformFloatCount",
123
+ &JsiSkRuntimeEffect::getUniformFloatCount);
124
+ installMethod(runtime, prototype, "getUniformName",
125
+ &JsiSkRuntimeEffect::getUniformName);
126
+ installMethod(runtime, prototype, "getUniform",
127
+ &JsiSkRuntimeEffect::getUniform);
128
+ installMethod(runtime, prototype, "source", &JsiSkRuntimeEffect::source);
125
129
  }
126
130
 
127
- EXPORT_JSI_API_TYPENAME(JsiSkRuntimeEffect, RuntimeEffect)
128
-
129
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRuntimeEffect, makeShader),
130
- JSI_EXPORT_FUNC(JsiSkRuntimeEffect,
131
- makeShaderWithChildren),
132
- JSI_EXPORT_FUNC(JsiSkRuntimeEffect, getUniformCount),
133
- JSI_EXPORT_FUNC(JsiSkRuntimeEffect,
134
- getUniformFloatCount),
135
- JSI_EXPORT_FUNC(JsiSkRuntimeEffect, getUniformName),
136
- JSI_EXPORT_FUNC(JsiSkRuntimeEffect, getUniform),
137
- JSI_EXPORT_FUNC(JsiSkRuntimeEffect, source),
138
- JSI_EXPORT_FUNC(JsiSkRuntimeEffect, dispose))
139
-
140
131
  JsiSkRuntimeEffect(std::shared_ptr<RNSkPlatformContext> context,
141
132
  sk_sp<SkRuntimeEffect> rt)
142
- : JsiSkWrappingSkPtrHostObject<SkRuntimeEffect>(std::move(context),
143
- std::move(rt)) {}
144
-
145
- size_t getMemoryPressure() const override { return 4096; }
133
+ : JsiSkWrappingSkPtrNativeObject<JsiSkRuntimeEffect, SkRuntimeEffect>(
134
+ std::move(context), std::move(rt)) {}
135
+
136
+ /**
137
+ Returns the underlying object from a host object of this type
138
+ */
139
+ static sk_sp<SkRuntimeEffect> fromValue(jsi::Runtime &runtime,
140
+ const jsi::Value &obj) {
141
+ return getJsiObject<JsiSkRuntimeEffect>(runtime, obj)->getObject();
142
+ }
146
143
 
147
- std::string getObjectType() const override { return "JsiSkRuntimeEffect"; }
144
+ size_t getMemoryPressure() override { return 4096; }
148
145
 
149
146
  static RuntimeEffectUniform fromUniform(const SkRuntimeEffect::Uniform &u) {
150
147
  RuntimeEffectUniform su;
@@ -197,17 +194,13 @@ public:
197
194
  }
198
195
 
199
196
  private:
200
- sk_sp<SkData> castUniforms(jsi::Runtime &runtime, const jsi::Value &value) {
201
- auto jsiUniforms = value.asObject(runtime).asArray(runtime);
202
- auto jsiUniformsSize = jsiUniforms.size(runtime);
203
-
197
+ sk_sp<SkData> castUniforms(const std::vector<double> &values) {
204
198
  // verify size of input uniforms
205
- if (jsiUniformsSize * sizeof(float) != getObject()->uniformSize()) {
206
- std::string msg =
199
+ if (values.size() * sizeof(float) != getObject()->uniformSize()) {
200
+ throw std::runtime_error(
207
201
  "Uniforms size differs from effect's uniform size. Received " +
208
- std::to_string(jsiUniformsSize) + " expected " +
209
- std::to_string(getObject()->uniformSize() / sizeof(float));
210
- throw jsi::JSError(runtime, msg.c_str());
202
+ std::to_string(values.size()) + " expected " +
203
+ std::to_string(getObject()->uniformSize() / sizeof(float)));
211
204
  }
212
205
 
213
206
  auto uniforms = SkData::MakeUninitialized(getObject()->uniformSize());
@@ -219,7 +212,7 @@ private:
219
212
  RuntimeEffectUniform reu = fromUniform(*it);
220
213
  for (std::size_t j = 0; j < reu.columns * reu.rows; ++j) {
221
214
  const std::size_t offset = reu.slot + j;
222
- float fValue = jsiUniforms.getValueAtIndex(runtime, offset).asNumber();
215
+ float fValue = static_cast<float>(values[offset]);
223
216
  int iValue = static_cast<int>(fValue);
224
217
  auto value = reu.isInteger ? SkBits2Float(iValue) : fValue;
225
218
  memcpy(SkTAddOffset<void>(uniforms->writable_data(),
@@ -6,43 +6,39 @@
6
6
 
7
7
  #include <jsi/jsi.h>
8
8
 
9
- #include "JsiSkHostObjects.h"
9
+ #include "JsiSkNativeObjects.h"
10
10
  #include "JsiSkRuntimeEffect.h"
11
11
 
12
12
  namespace RNSkia {
13
13
 
14
14
  namespace jsi = facebook::jsi;
15
15
 
16
- class JsiSkRuntimeEffectFactory : public JsiSkHostObject {
16
+ class JsiSkRuntimeEffectFactory
17
+ : public JsiSkNativeObject<JsiSkRuntimeEffectFactory> {
17
18
  public:
18
- JSI_HOST_FUNCTION(Make) {
19
- auto sksl = arguments[0].asString(runtime).utf8(runtime);
19
+ static constexpr const char *CLASS_NAME = "RuntimeEffectFactory";
20
+
21
+ std::shared_ptr<JsiSkRuntimeEffect> Make(std::string sksl) {
20
22
  auto result = SkRuntimeEffect::MakeForShader(SkString(sksl));
21
23
  auto effect = result.effect;
22
24
  auto errorText = result.errorText;
23
25
  if (!effect) {
24
- throw jsi::JSError(runtime, std::string("Error in sksl:\n" +
25
- std::string(errorText.c_str()))
26
- .c_str());
27
- return jsi::Value::null();
26
+ throw std::runtime_error("Error in sksl:\n" +
27
+ std::string(errorText.c_str()));
28
28
  }
29
- auto runtimeEffect =
30
- std::make_shared<JsiSkRuntimeEffect>(getContext(), std::move(effect));
31
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, runtimeEffect,
32
- getContext());
29
+ return std::make_shared<JsiSkRuntimeEffect>(getContext(),
30
+ std::move(effect));
33
31
  }
34
32
 
35
- size_t getMemoryPressure() const override { return 1024; }
33
+ size_t getMemoryPressure() override { return 1024; }
36
34
 
37
- std::string getObjectType() const override {
38
- return "JsiSkRuntimeEffectFactory";
35
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
36
+ installMethod(runtime, prototype, "Make", &JsiSkRuntimeEffectFactory::Make);
39
37
  }
40
38
 
41
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRuntimeEffectFactory, Make))
42
-
43
39
  explicit JsiSkRuntimeEffectFactory(
44
40
  std::shared_ptr<RNSkPlatformContext> context)
45
- : JsiSkHostObject(std::move(context)) {}
41
+ : JsiSkNativeObject<JsiSkRuntimeEffectFactory>(std::move(context)) {}
46
42
  };
47
43
 
48
44
  } // namespace RNSkia
@@ -1,12 +1,13 @@
1
1
  #pragma once
2
2
 
3
3
  #include <memory>
4
+ #include <string>
4
5
  #include <utility>
5
6
  #include <vector>
6
7
 
7
8
  #include <jsi/jsi.h>
8
9
 
9
- #include "JsiSkHostObjects.h"
10
+ #include "JsiSkNativeObjects.h"
10
11
 
11
12
  #pragma clang diagnostic push
12
13
  #pragma clang diagnostic ignored "-Wdocumentation"
@@ -21,34 +22,39 @@ namespace RNSkia {
21
22
  namespace jsi = facebook::jsi;
22
23
 
23
24
  class JsiSkRuntimeShaderBuilder
24
- : public JsiSkWrappingSharedPtrHostObject<SkRuntimeShaderBuilder> {
25
+ : public JsiSkWrappingSharedPtrNativeObject<JsiSkRuntimeShaderBuilder,
26
+ SkRuntimeShaderBuilder> {
25
27
  public:
28
+ static constexpr const char *CLASS_NAME = "RuntimeShaderBuilder";
29
+
26
30
  /**
27
31
  Constructor
28
32
  */
29
33
  JsiSkRuntimeShaderBuilder(std::shared_ptr<RNSkPlatformContext> context,
30
34
  const SkRuntimeShaderBuilder &rt)
31
- : JsiSkWrappingSharedPtrHostObject<SkRuntimeShaderBuilder>(
35
+ : JsiSkWrappingSharedPtrNativeObject<JsiSkRuntimeShaderBuilder,
36
+ SkRuntimeShaderBuilder>(
32
37
  std::move(context), std::make_shared<SkRuntimeShaderBuilder>(rt)) {}
33
38
 
34
- JSI_HOST_FUNCTION(setUniform) {
35
- auto name = arguments[0].asString(runtime).utf8(runtime);
36
- auto jsiValue = arguments[1].asObject(runtime).asArray(runtime);
37
- auto size = jsiValue.size(runtime);
38
- std::vector<SkScalar> value;
39
- value.reserve(size);
40
- for (int i = 0; i < size; i++) {
41
- auto e = jsiValue.getValueAtIndex(runtime, i).asNumber();
42
- value.push_back(e);
43
- }
39
+ void setUniform(std::string name, std::vector<float> value) {
44
40
  getObject()
45
41
  ->uniform(name.c_str())
46
- .set(value.data(), static_cast<int>(size));
47
- return jsi::Value::undefined();
42
+ .set(value.data(), static_cast<int>(value.size()));
43
+ }
44
+
45
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
46
+ installCommon(runtime, prototype);
47
+ installMethod(runtime, prototype, "setUniform",
48
+ &JsiSkRuntimeShaderBuilder::setUniform);
48
49
  }
49
50
 
50
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRuntimeShaderBuilder, setUniform),
51
- JSI_EXPORT_FUNC(JsiSkRuntimeShaderBuilder, dispose))
51
+ /**
52
+ Returns the underlying object from a host object of this type
53
+ */
54
+ static std::shared_ptr<SkRuntimeShaderBuilder>
55
+ fromValue(jsi::Runtime &runtime, const jsi::Value &obj) {
56
+ return getJsiObject<JsiSkRuntimeShaderBuilder>(runtime, obj)->getObject();
57
+ }
52
58
 
53
59
  /**
54
60
  Returns the jsi object from a host object of this type
@@ -56,20 +62,14 @@ public:
56
62
  static jsi::Value toValue(jsi::Runtime &runtime,
57
63
  std::shared_ptr<RNSkPlatformContext> context,
58
64
  const SkRuntimeShaderBuilder &rt) {
59
- auto builder =
60
- std::make_shared<JsiSkRuntimeShaderBuilder>(std::move(context), rt);
61
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, builder,
62
- context);
65
+ return makeJsiObject(runtime, std::make_shared<JsiSkRuntimeShaderBuilder>(
66
+ std::move(context), rt));
63
67
  }
64
68
 
65
- size_t getMemoryPressure() const override {
69
+ size_t getMemoryPressure() override {
66
70
  return std::max(sizeof(SkRuntimeShaderBuilder), kMinMemoryPressure);
67
71
  }
68
72
 
69
- std::string getObjectType() const override {
70
- return "JsiSkRuntimeShaderBuilder";
71
- }
72
-
73
73
  /**
74
74
  * Creates the function for construction a new instance of the SkRect
75
75
  * wrapper
@@ -83,10 +83,8 @@ public:
83
83
  auto rt = JsiSkRuntimeEffect::fromValue(runtime, arguments[0]);
84
84
  auto rtb = SkRuntimeShaderBuilder(rt);
85
85
  // Return the newly constructed object
86
- auto builder = std::make_shared<JsiSkRuntimeShaderBuilder>(
87
- std::move(context), std::move(rtb));
88
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, builder,
89
- context);
86
+ return makeJsiObject(runtime, std::make_shared<JsiSkRuntimeShaderBuilder>(
87
+ std::move(context), std::move(rtb)));
90
88
  };
91
89
  }
92
90
  };
@@ -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,38 +18,40 @@ namespace RNSkia {
18
18
 
19
19
  namespace jsi = facebook::jsi;
20
20
 
21
- class JsiSkSVG : public JsiSkWrappingSkPtrHostObject<SkSVGDOM> {
21
+ class JsiSkSVG : public JsiSkWrappingSkPtrNativeObject<JsiSkSVG, SkSVGDOM> {
22
22
  public:
23
+ static constexpr const char *CLASS_NAME = "SVG";
24
+
23
25
  JsiSkSVG(std::shared_ptr<RNSkPlatformContext> context, sk_sp<SkSVGDOM> svgdom,
24
26
  sk_sp<skresources::ResourceProvider> resourceProvider = nullptr)
25
- : JsiSkWrappingSkPtrHostObject<SkSVGDOM>(std::move(context),
26
- std::move(svgdom)) {}
27
+ : JsiSkWrappingSkPtrNativeObject<JsiSkSVG, SkSVGDOM>(std::move(context),
28
+ std::move(svgdom)) {}
27
29
 
28
30
  ~JsiSkSVG() = default;
29
31
 
30
- EXPORT_JSI_API_TYPENAME(JsiSkSVG, SVG)
31
-
32
- JSI_HOST_FUNCTION(width) {
32
+ double width() {
33
33
  return static_cast<double>(getObject()->containerSize().width());
34
34
  }
35
35
 
36
- JSI_HOST_FUNCTION(height) {
36
+ double height() {
37
37
  return static_cast<double>(getObject()->containerSize().height());
38
38
  }
39
39
 
40
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkSVG, width),
41
- JSI_EXPORT_FUNC(JsiSkSVG, height),
42
- JSI_EXPORT_FUNC(JsiSkSVG, dispose))
40
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
41
+ installCommon(runtime, prototype);
42
+ installMethod(runtime, prototype, "width", &JsiSkSVG::width);
43
+ installMethod(runtime, prototype, "height", &JsiSkSVG::height);
44
+ }
43
45
 
44
46
  /**
45
47
  Returns the underlying object from a host object of this type
46
48
  */
47
49
  static sk_sp<SkSVGDOM> fromValue(jsi::Runtime &runtime,
48
50
  const jsi::Value &obj) {
49
- return obj.asObject(runtime).asHostObject<JsiSkSVG>(runtime)->getObject();
51
+ return getJsiObject<JsiSkSVG>(runtime, obj)->getObject();
50
52
  }
51
53
 
52
- size_t getMemoryPressure() const override {
54
+ size_t getMemoryPressure() override {
53
55
  auto svgdom = getObject();
54
56
  if (!svgdom) {
55
57
  return 1024; // Base size if no SVG
@@ -72,8 +74,6 @@ public:
72
74
  return (rasterBufferSize / 4) +
73
75
  baseOverhead; // Quarter of full raster + overhead
74
76
  }
75
-
76
- std::string getObjectType() const override { return "JsiSkSVG"; }
77
77
  };
78
78
 
79
79
  } // namespace RNSkia