@shopify/react-native-skia 2.10.0 → 2.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/android/CMakeLists.txt +7 -41
  2. package/android/build.gradle +33 -0
  3. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -2
  4. package/cpp/api/JsiNativeBuffer.h +14 -20
  5. package/cpp/api/JsiSkAnimatedImage.h +13 -16
  6. package/cpp/api/JsiSkAnimatedImageFactory.h +9 -7
  7. package/cpp/api/JsiSkApi.h +94 -90
  8. package/cpp/api/JsiSkCanvas.h +108 -251
  9. package/cpp/api/JsiSkColorFilterFactory.h +45 -63
  10. package/cpp/api/JsiSkContourMeasure.h +19 -29
  11. package/cpp/api/JsiSkContourMeasureIter.h +6 -6
  12. package/cpp/api/JsiSkConverters.h +410 -0
  13. package/cpp/api/JsiSkDataFactory.h +9 -15
  14. package/cpp/api/JsiSkFont.h +99 -180
  15. package/cpp/api/JsiSkFontMgr.h +19 -21
  16. package/cpp/api/JsiSkFontMgrFactory.h +4 -5
  17. package/cpp/api/JsiSkImage.h +66 -66
  18. package/cpp/api/JsiSkImageFactory.h +66 -63
  19. package/cpp/api/JsiSkImageFilterFactory.h +354 -608
  20. package/cpp/api/JsiSkImageInfo.h +10 -13
  21. package/cpp/api/JsiSkMaskFilterFactory.h +8 -11
  22. package/cpp/api/JsiSkMatrix.h +36 -73
  23. package/cpp/api/JsiSkNativeObjects.h +64 -96
  24. package/cpp/api/JsiSkPaint.h +73 -131
  25. package/cpp/api/JsiSkParagraph.h +36 -53
  26. package/cpp/api/JsiSkParagraphBuilder.h +36 -64
  27. package/cpp/api/JsiSkParagraphBuilderFactory.h +11 -16
  28. package/cpp/api/JsiSkPath.h +216 -349
  29. package/cpp/api/JsiSkPathBuilder.h +133 -269
  30. package/cpp/api/JsiSkPathBuilderFactory.h +11 -11
  31. package/cpp/api/JsiSkPathEffectFactory.h +52 -72
  32. package/cpp/api/JsiSkPathFactory.h +129 -195
  33. package/cpp/api/JsiSkPicture.h +12 -18
  34. package/cpp/api/JsiSkPictureRecorder.h +14 -15
  35. package/cpp/api/JsiSkPoint.h +4 -4
  36. package/cpp/api/JsiSkRRect.h +7 -8
  37. package/cpp/api/JsiSkRSXform.h +10 -23
  38. package/cpp/api/JsiSkRect.h +23 -31
  39. package/cpp/api/JsiSkRuntimeEffect.h +67 -83
  40. package/cpp/api/JsiSkRuntimeEffectFactory.h +6 -10
  41. package/cpp/api/JsiSkRuntimeShaderBuilder.h +5 -14
  42. package/cpp/api/JsiSkSVG.h +4 -4
  43. package/cpp/api/JsiSkShaderFactory.h +153 -225
  44. package/cpp/api/JsiSkSkottie.h +104 -126
  45. package/cpp/api/JsiSkSurface.h +11 -14
  46. package/cpp/api/JsiSkSurfaceFactory.h +6 -7
  47. package/cpp/api/JsiSkTextBlobFactory.h +31 -54
  48. package/cpp/api/JsiSkTypeface.h +8 -12
  49. package/cpp/api/JsiSkTypefaceFactory.h +9 -7
  50. package/cpp/api/JsiSkTypefaceFontProvider.h +22 -23
  51. package/cpp/api/JsiSkTypefaceFontProviderFactory.h +5 -6
  52. package/cpp/api/JsiSkVertices.h +6 -8
  53. package/cpp/api/JsiSkiaContext.h +10 -11
  54. package/cpp/api/JsiVideo.h +31 -71
  55. package/cpp/jsi/EnumMapper.h +2 -2
  56. package/cpp/jsi/JSIConverter.h +2 -33
  57. package/cpp/jsi/NativeObject.h +24 -19
  58. package/cpp/jsi/Promise.cpp +2 -2
  59. package/cpp/jsi/Promise.h +2 -2
  60. package/cpp/rnskia/RNDawnContext.h +18 -2
  61. package/cpp/rnskia/RNDawnInterop.cpp +19 -0
  62. package/cpp/rnskia/RNDawnUtils.h +18 -1
  63. package/cpp/rnskia/RNSkManager.cpp +5 -162
  64. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +2 -0
  65. package/lib/commonjs/mock/index.js +0 -1
  66. package/lib/commonjs/mock/index.js.map +1 -1
  67. package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +15 -6
  68. package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
  69. package/lib/commonjs/skia/types/Skia.d.ts +5 -15
  70. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  71. package/lib/commonjs/skia/types/index.d.ts +0 -1
  72. package/lib/commonjs/skia/types/index.js +0 -11
  73. package/lib/commonjs/skia/types/index.js.map +1 -1
  74. package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  75. package/lib/commonjs/skia/web/JsiSkImageFactory.js +2 -2
  76. package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
  77. package/lib/commonjs/skia/web/JsiSkia.js +1 -4
  78. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  79. package/lib/commonjs/views/index.d.ts +0 -1
  80. package/lib/commonjs/views/index.js +0 -11
  81. package/lib/commonjs/views/index.js.map +1 -1
  82. package/lib/module/mock/index.js +0 -1
  83. package/lib/module/mock/index.js.map +1 -1
  84. package/lib/module/skia/types/Image/ImageFactory.d.ts +15 -6
  85. package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
  86. package/lib/module/skia/types/Skia.d.ts +5 -15
  87. package/lib/module/skia/types/Skia.js.map +1 -1
  88. package/lib/module/skia/types/index.d.ts +0 -1
  89. package/lib/module/skia/types/index.js +0 -1
  90. package/lib/module/skia/types/index.js.map +1 -1
  91. package/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  92. package/lib/module/skia/web/JsiSkImageFactory.js +2 -2
  93. package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
  94. package/lib/module/skia/web/JsiSkia.js +1 -4
  95. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  96. package/lib/module/views/index.d.ts +0 -1
  97. package/lib/module/views/index.js +0 -1
  98. package/lib/module/views/index.js.map +1 -1
  99. package/lib/typescript/lib/commonjs/mock/index.d.ts +0 -1
  100. package/lib/typescript/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  101. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -2
  102. package/lib/typescript/lib/module/mock/index.d.ts +0 -2
  103. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -2
  104. package/lib/typescript/lib/module/skia/types/index.d.ts +0 -1
  105. package/lib/typescript/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  106. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -2
  107. package/lib/typescript/lib/module/views/index.d.ts +0 -1
  108. package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +15 -6
  109. package/lib/typescript/src/skia/types/Skia.d.ts +5 -15
  110. package/lib/typescript/src/skia/types/index.d.ts +0 -1
  111. package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +2 -2
  112. package/lib/typescript/src/views/index.d.ts +0 -1
  113. package/package.json +3 -4
  114. package/react-native-skia.podspec +38 -4
  115. package/src/mock/index.ts +0 -1
  116. package/src/skia/types/Image/ImageFactory.ts +15 -6
  117. package/src/skia/types/Skia.ts +5 -15
  118. package/src/skia/types/index.ts +0 -1
  119. package/src/skia/web/JsiSkImageFactory.ts +3 -3
  120. package/src/skia/web/JsiSkia.ts +2 -5
  121. package/src/views/index.ts +0 -1
  122. package/android/cpp/jni/JniWebGPUView.cpp +0 -112
  123. package/android/cpp/rnskia-android/SkiaPlatformContext.h +0 -26
  124. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUSurfaceView.java +0 -43
  125. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUTextureView.java +0 -50
  126. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUView.java +0 -98
  127. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewAPI.java +0 -19
  128. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +0 -58
  129. package/apple/RNWebGPUAppleNativeBuffer.mm +0 -33
  130. package/apple/SkiaPlatformContext.h +0 -20
  131. package/apple/SkiaPlatformContext.mm +0 -21
  132. package/apple/SkiaWebGPUView.mm +0 -81
  133. package/apple/WebGPUMetalView.mm +0 -136
  134. package/cpp/rnwgpu/ArrayBuffer.h +0 -116
  135. package/cpp/rnwgpu/Canvas.h +0 -52
  136. package/cpp/rnwgpu/PlatformContext.h +0 -18
  137. package/cpp/rnwgpu/SurfaceRegistry.h +0 -605
  138. package/cpp/rnwgpu/api/AppleNativeBuffer.h +0 -22
  139. package/cpp/rnwgpu/api/Convertors.h +0 -783
  140. package/cpp/rnwgpu/api/External.h +0 -12
  141. package/cpp/rnwgpu/api/GPU.cpp +0 -162
  142. package/cpp/rnwgpu/api/GPU.h +0 -60
  143. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -239
  144. package/cpp/rnwgpu/api/GPUAdapter.h +0 -60
  145. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  146. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  147. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  148. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  149. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -107
  150. package/cpp/rnwgpu/api/GPUBuffer.h +0 -88
  151. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -75
  152. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -70
  153. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  154. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  155. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  156. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  157. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  158. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  159. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  160. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  161. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  162. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -613
  163. package/cpp/rnwgpu/api/GPUDevice.h +0 -258
  164. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  165. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  166. package/cpp/rnwgpu/api/GPUError.h +0 -35
  167. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  168. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +0 -139
  169. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -95
  170. package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
  171. package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
  172. package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
  173. package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
  174. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
  175. package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
  176. package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
  177. package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
  178. package/cpp/rnwgpu/api/GPUQueue.cpp +0 -179
  179. package/cpp/rnwgpu/api/GPUQueue.h +0 -84
  180. package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
  181. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
  182. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
  183. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
  184. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
  185. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
  186. package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
  187. package/cpp/rnwgpu/api/GPUSampler.h +0 -44
  188. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -56
  189. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  190. package/cpp/rnwgpu/api/GPUSharedFence.cpp +0 -80
  191. package/cpp/rnwgpu/api/GPUSharedFence.h +0 -53
  192. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -135
  193. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -75
  194. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  195. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  196. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  197. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  198. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  199. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -60
  200. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  201. package/cpp/rnwgpu/api/ImageBitmap.h +0 -62
  202. package/cpp/rnwgpu/api/NativeBufferUtils.h +0 -87
  203. package/cpp/rnwgpu/api/RNWebGPU.h +0 -82
  204. package/cpp/rnwgpu/api/WebGPUConstants.h +0 -36
  205. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -64
  206. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
  207. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -56
  208. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -97
  209. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -57
  210. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -52
  211. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -56
  212. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -56
  213. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -59
  214. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  215. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  216. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -66
  217. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -58
  218. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  219. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -45
  220. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -45
  221. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -56
  222. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -58
  223. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -67
  224. package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +0 -56
  225. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -103
  226. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -109
  227. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -38
  228. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -90
  229. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -73
  230. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -62
  231. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  232. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -65
  233. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -81
  234. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -54
  235. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  236. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -54
  237. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -57
  238. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -69
  239. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -61
  240. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -55
  241. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -43
  242. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -45
  243. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -80
  244. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -81
  245. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -101
  246. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -92
  247. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -58
  248. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -103
  249. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -51
  250. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -45
  251. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -110
  252. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -60
  253. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -62
  254. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  255. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +0 -58
  256. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +0 -51
  257. package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +0 -73
  258. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -64
  259. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -59
  260. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -59
  261. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -91
  262. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  263. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -91
  264. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -64
  265. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -53
  266. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -62
  267. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -73
  268. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
  269. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -213
  270. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -58
  271. package/cpp/rnwgpu/async/RuntimeContext.cpp +0 -199
  272. package/cpp/rnwgpu/async/RuntimeContext.h +0 -134
  273. package/lib/commonjs/skia/types/WebGPU.d.ts +0 -184
  274. package/lib/commonjs/skia/types/WebGPU.js +0 -105
  275. package/lib/commonjs/skia/types/WebGPU.js.map +0 -1
  276. package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -8
  277. package/lib/commonjs/specs/WebGPUViewNativeComponent.js +0 -10
  278. package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +0 -1
  279. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  280. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +0 -103
  281. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  282. package/lib/commonjs/specs/utils.d.ts +0 -1
  283. package/lib/commonjs/specs/utils.js +0 -11
  284. package/lib/commonjs/specs/utils.js.map +0 -1
  285. package/lib/commonjs/views/WebGPUCanvas.d.ts +0 -33
  286. package/lib/commonjs/views/WebGPUCanvas.js +0 -79
  287. package/lib/commonjs/views/WebGPUCanvas.js.map +0 -1
  288. package/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -23
  289. package/lib/commonjs/views/WebGPUCanvas.web.js +0 -20
  290. package/lib/commonjs/views/WebGPUCanvas.web.js.map +0 -1
  291. package/lib/module/skia/types/WebGPU.d.ts +0 -184
  292. package/lib/module/skia/types/WebGPU.js +0 -99
  293. package/lib/module/skia/types/WebGPU.js.map +0 -1
  294. package/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -8
  295. package/lib/module/specs/WebGPUViewNativeComponent.js +0 -4
  296. package/lib/module/specs/WebGPUViewNativeComponent.js.map +0 -1
  297. package/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  298. package/lib/module/specs/WebGPUViewNativeComponent.web.js +0 -96
  299. package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  300. package/lib/module/specs/utils.d.ts +0 -1
  301. package/lib/module/specs/utils.js +0 -5
  302. package/lib/module/specs/utils.js.map +0 -1
  303. package/lib/module/views/WebGPUCanvas.d.ts +0 -33
  304. package/lib/module/views/WebGPUCanvas.js +0 -70
  305. package/lib/module/views/WebGPUCanvas.js.map +0 -1
  306. package/lib/module/views/WebGPUCanvas.web.d.ts +0 -23
  307. package/lib/module/views/WebGPUCanvas.web.js +0 -12
  308. package/lib/module/views/WebGPUCanvas.web.js.map +0 -1
  309. package/lib/typescript/lib/commonjs/skia/types/WebGPU.d.ts +0 -2
  310. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -4
  311. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -3
  312. package/lib/typescript/lib/commonjs/specs/utils.d.ts +0 -2
  313. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.d.ts +0 -6
  314. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -6
  315. package/lib/typescript/lib/module/skia/types/WebGPU.d.ts +0 -31
  316. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -2
  317. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -2
  318. package/lib/typescript/lib/module/specs/utils.d.ts +0 -1
  319. package/lib/typescript/lib/module/views/WebGPUCanvas.d.ts +0 -7
  320. package/lib/typescript/lib/module/views/WebGPUCanvas.web.d.ts +0 -8
  321. package/lib/typescript/src/skia/types/WebGPU.d.ts +0 -184
  322. package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +0 -8
  323. package/lib/typescript/src/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  324. package/lib/typescript/src/specs/utils.d.ts +0 -1
  325. package/lib/typescript/src/views/WebGPUCanvas.d.ts +0 -33
  326. package/lib/typescript/src/views/WebGPUCanvas.web.d.ts +0 -23
  327. package/src/skia/types/WebGPU.ts +0 -226
  328. package/src/specs/WebGPUViewNativeComponent.ts +0 -11
  329. package/src/specs/WebGPUViewNativeComponent.web.ts +0 -110
  330. package/src/specs/utils.ts +0 -4
  331. package/src/views/WebGPUCanvas.tsx +0 -125
  332. package/src/views/WebGPUCanvas.web.tsx +0 -36
@@ -60,14 +60,12 @@ public:
60
60
  std::move(context), imageInfo));
61
61
  }
62
62
 
63
- JSI_PROPERTY_GET(width) { return static_cast<double>(getObject()->width()); }
64
- JSI_PROPERTY_GET(height) {
65
- return static_cast<double>(getObject()->height());
66
- }
67
- JSI_PROPERTY_GET(colorType) {
63
+ double getWidth() { return static_cast<double>(getObject()->width()); }
64
+ double getHeight() { return static_cast<double>(getObject()->height()); }
65
+ double getColorType() {
68
66
  return static_cast<double>(getObject()->colorType());
69
67
  }
70
- JSI_PROPERTY_GET(alphaType) {
68
+ double getAlphaType() {
71
69
  return static_cast<double>(getObject()->alphaType());
72
70
  }
73
71
 
@@ -77,13 +75,12 @@ public:
77
75
 
78
76
  static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
79
77
  installCommon(runtime, prototype);
80
- installHostGetter(runtime, prototype, "width", &JsiSkImageInfo::get_width);
81
- installHostGetter(runtime, prototype, "height",
82
- &JsiSkImageInfo::get_height);
83
- installHostGetter(runtime, prototype, "colorType",
84
- &JsiSkImageInfo::get_colorType);
85
- installHostGetter(runtime, prototype, "alphaType",
86
- &JsiSkImageInfo::get_alphaType);
78
+ installGetter(runtime, prototype, "width", &JsiSkImageInfo::getWidth);
79
+ installGetter(runtime, prototype, "height", &JsiSkImageInfo::getHeight);
80
+ installGetter(runtime, prototype, "colorType",
81
+ &JsiSkImageInfo::getColorType);
82
+ installGetter(runtime, prototype, "alphaType",
83
+ &JsiSkImageInfo::getAlphaType);
87
84
  }
88
85
  };
89
86
  } // namespace RNSkia
@@ -6,6 +6,7 @@
6
6
  #include <jsi/jsi.h>
7
7
 
8
8
  #include "JsiSkColorFilter.h"
9
+ #include "JsiSkConverters.h"
9
10
  #include "JsiSkMaskFilter.h"
10
11
  #include "JsiSkNativeObjects.h"
11
12
 
@@ -25,22 +26,18 @@ class JsiSkMaskFilterFactory
25
26
  public:
26
27
  static constexpr const char *CLASS_NAME = "MaskFilterFactory";
27
28
 
28
- JSI_HOST_FUNCTION(MakeBlur) {
29
- int blurStyle = arguments[0].asNumber();
30
- float sigma = arguments[1].asNumber();
31
- bool respectCTM = arguments[2].getBool();
32
- return makeJsiObject(
33
- runtime,
34
- std::make_shared<JsiSkMaskFilter>(
35
- getContext(),
36
- SkMaskFilter::MakeBlur((SkBlurStyle)blurStyle, sigma, respectCTM)));
29
+ std::shared_ptr<JsiSkMaskFilter> MakeBlur(int blurStyle, float sigma,
30
+ bool respectCTM) {
31
+ return std::make_shared<JsiSkMaskFilter>(
32
+ getContext(), SkMaskFilter::MakeBlur(static_cast<SkBlurStyle>(blurStyle),
33
+ sigma, respectCTM));
37
34
  }
38
35
 
39
36
  size_t getMemoryPressure() override { return 1024; }
40
37
 
41
38
  static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
42
- installHostMethod(runtime, prototype, "MakeBlur",
43
- &JsiSkMaskFilterFactory::MakeBlur);
39
+ installMethod(runtime, prototype, "MakeBlur",
40
+ &JsiSkMaskFilterFactory::MakeBlur);
44
41
  }
45
42
 
46
43
  explicit JsiSkMaskFilterFactory(std::shared_ptr<RNSkPlatformContext> context)
@@ -2,9 +2,11 @@
2
2
 
3
3
  #include <memory>
4
4
  #include <utility>
5
+ #include <vector>
5
6
 
6
7
  #include <jsi/jsi.h>
7
8
 
9
+ #include "JsiSkConverters.h"
8
10
  #include "JsiSkNativeObjects.h"
9
11
 
10
12
  #pragma clang diagnostic push
@@ -59,82 +61,39 @@ public:
59
61
  std::to_string(array.size(runtime)));
60
62
  }
61
63
 
62
- JSI_HOST_FUNCTION(concat) {
63
- auto matrix = tryGetJsiObject<JsiSkMatrix>(runtime, arguments[0]);
64
- if (matrix) {
65
- getObject()->preConcat(*matrix->getObject());
66
- } else {
67
- auto m3 = JsiSkMatrix::getMatrix(runtime, arguments[0]);
68
- getObject()->preConcat(m3);
69
- }
70
- return thisValue.asObject(runtime);
64
+ void concat(std::shared_ptr<SkMatrix> matrix) {
65
+ getObject()->preConcat(*matrix);
71
66
  }
72
67
 
73
- JSI_HOST_FUNCTION(translate) {
74
- auto x = arguments[0].asNumber();
75
- auto y = arguments[1].asNumber();
76
- getObject()->preTranslate(x, y);
77
- return thisValue.asObject(runtime);
78
- }
68
+ void translate(double x, double y) { getObject()->preTranslate(x, y); }
79
69
 
80
- JSI_HOST_FUNCTION(postTranslate) {
81
- auto x = arguments[0].asNumber();
82
- auto y = arguments[1].asNumber();
83
- getObject()->postTranslate(x, y);
84
- return thisValue.asObject(runtime);
85
- }
70
+ void postTranslate(double x, double y) { getObject()->postTranslate(x, y); }
86
71
 
87
- JSI_HOST_FUNCTION(scale) {
88
- auto x = arguments[0].asNumber();
89
- auto y = count > 1 ? arguments[1].asNumber() : 1;
90
- getObject()->preScale(x, y);
91
- return thisValue.asObject(runtime);
72
+ void scale(double x, JsiOptional<double> y) {
73
+ getObject()->preScale(x, y.has_value() ? *y : 1);
92
74
  }
93
75
 
94
- JSI_HOST_FUNCTION(postScale) {
95
- auto x = arguments[0].asNumber();
96
- auto y = count > 1 ? arguments[1].asNumber() : 1;
97
- getObject()->postScale(x, y);
98
- return thisValue.asObject(runtime);
76
+ void postScale(double x, JsiOptional<double> y) {
77
+ getObject()->postScale(x, y.has_value() ? *y : 1);
99
78
  }
100
79
 
101
- JSI_HOST_FUNCTION(skew) {
102
- auto x = arguments[0].asNumber();
103
- auto y = arguments[1].asNumber();
104
- getObject()->preSkew(x, y);
105
- return thisValue.asObject(runtime);
106
- }
80
+ void skew(double x, double y) { getObject()->preSkew(x, y); }
107
81
 
108
- JSI_HOST_FUNCTION(postSkew) {
109
- auto x = arguments[0].asNumber();
110
- auto y = arguments[1].asNumber();
111
- getObject()->postSkew(x, y);
112
- return thisValue.asObject(runtime);
113
- }
82
+ void postSkew(double x, double y) { getObject()->postSkew(x, y); }
114
83
 
115
- JSI_HOST_FUNCTION(rotate) {
116
- auto a = arguments[0].asNumber();
117
- getObject()->preRotate(SkRadiansToDegrees(a));
118
- return thisValue.asObject(runtime);
119
- }
84
+ void rotate(double a) { getObject()->preRotate(SkRadiansToDegrees(a)); }
120
85
 
121
- JSI_HOST_FUNCTION(postRotate) {
122
- auto a = arguments[0].asNumber();
123
- getObject()->postRotate(SkRadiansToDegrees(a));
124
- return thisValue.asObject(runtime);
125
- }
86
+ void postRotate(double a) { getObject()->postRotate(SkRadiansToDegrees(a)); }
126
87
 
127
- JSI_HOST_FUNCTION(identity) {
128
- getObject()->setIdentity();
129
- return thisValue.asObject(runtime);
130
- }
88
+ void identity() { getObject()->setIdentity(); }
131
89
 
132
90
  #pragma clang diagnostic push
133
91
  #pragma clang diagnostic ignored "-Woverloaded-virtual"
134
- JSI_HOST_FUNCTION(get) {
135
- auto values = jsi::Array(runtime, 9);
92
+ std::vector<float> get() {
93
+ std::vector<float> values;
94
+ values.reserve(9);
136
95
  for (auto i = 0; i < 9; i++) {
137
- values.setValueAtIndex(runtime, i, getObject()->get(i));
96
+ values.push_back(getObject()->get(i));
138
97
  }
139
98
  return values;
140
99
  }
@@ -142,19 +101,23 @@ public:
142
101
 
143
102
  static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
144
103
  installCommon(runtime, prototype);
145
- installHostMethod(runtime, prototype, "concat", &JsiSkMatrix::concat);
146
- installHostMethod(runtime, prototype, "translate", &JsiSkMatrix::translate);
147
- installHostMethod(runtime, prototype, "postTranslate",
148
- &JsiSkMatrix::postTranslate);
149
- installHostMethod(runtime, prototype, "scale", &JsiSkMatrix::scale);
150
- installHostMethod(runtime, prototype, "postScale", &JsiSkMatrix::postScale);
151
- installHostMethod(runtime, prototype, "skew", &JsiSkMatrix::skew);
152
- installHostMethod(runtime, prototype, "postSkew", &JsiSkMatrix::postSkew);
153
- installHostMethod(runtime, prototype, "rotate", &JsiSkMatrix::rotate);
154
- installHostMethod(runtime, prototype, "postRotate",
155
- &JsiSkMatrix::postRotate);
156
- installHostMethod(runtime, prototype, "identity", &JsiSkMatrix::identity);
157
- installHostMethod(runtime, prototype, "get", &JsiSkMatrix::get);
104
+ installChainableMethod(runtime, prototype, "concat", &JsiSkMatrix::concat);
105
+ installChainableMethod(runtime, prototype, "translate",
106
+ &JsiSkMatrix::translate);
107
+ installChainableMethod(runtime, prototype, "postTranslate",
108
+ &JsiSkMatrix::postTranslate);
109
+ installChainableMethod(runtime, prototype, "scale", &JsiSkMatrix::scale);
110
+ installChainableMethod(runtime, prototype, "postScale",
111
+ &JsiSkMatrix::postScale);
112
+ installChainableMethod(runtime, prototype, "skew", &JsiSkMatrix::skew);
113
+ installChainableMethod(runtime, prototype, "postSkew",
114
+ &JsiSkMatrix::postSkew);
115
+ installChainableMethod(runtime, prototype, "rotate", &JsiSkMatrix::rotate);
116
+ installChainableMethod(runtime, prototype, "postRotate",
117
+ &JsiSkMatrix::postRotate);
118
+ installChainableMethod(runtime, prototype, "identity",
119
+ &JsiSkMatrix::identity);
120
+ installMethod(runtime, prototype, "get", &JsiSkMatrix::get);
158
121
  }
159
122
 
160
123
  /**
@@ -11,11 +11,6 @@
11
11
  #include "rnskia/RNSkPlatformContext.h"
12
12
  #include "utils/RNSkLog.h"
13
13
 
14
- #define STR_CAT_NX(A, B) A##B
15
- #define STR_CAT(A, B) STR_CAT_NX(A, B)
16
- #define STR_GET get_
17
- #define STR_SET set_
18
-
19
14
  /**
20
15
  * Creates a new Host function declaration as a lambda with all deps passed
21
16
  * with implicit lambda capture clause
@@ -25,31 +20,23 @@
25
20
  const jsi::Value *arguments, size_t count) -> jsi::Value
26
21
 
27
22
  /**
28
- * Creates a new Host function declaration
23
+ * Creates a new Host function declaration. Only used for methods that cannot
24
+ * be expressed as typed signatures (heterogeneous argument dispatch, typed
25
+ * array construction, lenient options objects, promises) — everything else
26
+ * uses installMethod/installGetter/installChainableMethod with typed C++
27
+ * signatures converted through RNJsi::JSIConverter.
29
28
  */
30
29
  #define JSI_HOST_FUNCTION(NAME) \
31
30
  jsi::Value NAME(jsi::Runtime &runtime, const jsi::Value &thisValue, \
32
31
  const jsi::Value *arguments, size_t count)
33
32
 
34
- /**
35
- * Creates a new property setter function declaration
36
- */
37
- #define JSI_PROPERTY_SET(NAME) \
38
- void STR_CAT(STR_SET, NAME)(jsi::Runtime & runtime, const jsi::Value &value)
39
-
40
- /**
41
- * Creates a new property getter function declaration
42
- */
43
- #define JSI_PROPERTY_GET(NAME) \
44
- jsi::Value STR_CAT(STR_GET, NAME)(jsi::Runtime & runtime)
45
-
46
33
  namespace RNSkia {
47
34
 
48
35
  namespace jsi = facebook::jsi;
49
36
 
50
37
  // Minimum memory pressure reported for any native object — aliased from the
51
38
  // NativeObject infrastructure so dispose() and create() agree on the floor.
52
- static constexpr size_t kMinMemoryPressure = rnwgpu::kMinMemoryPressure;
39
+ static constexpr size_t kMinMemoryPressure = RNJsi::kMinMemoryPressure;
53
40
 
54
41
  /**
55
42
  * Creates the JS object for a wrapper instance (a class based on the
@@ -113,16 +100,18 @@ std::shared_ptr<T> getJsiObject(jsi::Runtime &runtime,
113
100
  * NativeObject::installPrototype; wrapping classes additionally call
114
101
  * `installCommon(runtime, proto)` to install dispose().
115
102
  *
116
- * The existing JSI_HOST_FUNCTION / JSI_PROPERTY_GET / JSI_PROPERTY_SET method
117
- * bodies keep working unchanged; they are installed on the prototype with the
118
- * installHostMethod / installHostGetter / installHostSetter helpers below,
119
- * which resolve the C++ instance from `this` via native state.
103
+ * Most methods use typed C++ signatures installed with installMethod /
104
+ * installGetter / installChainableMethod (arguments and results converted
105
+ * through RNJsi::JSIConverter, see JsiSkConverters.h). Methods that cannot
106
+ * be typed keep the classic JSI_HOST_FUNCTION signature and are installed
107
+ * with installHostMethod, which resolves the C++ instance from `this` via
108
+ * native state.
120
109
  */
121
110
  template <typename Derived>
122
- class JsiSkNativeObject : public rnwgpu::NativeObject<Derived> {
111
+ class JsiSkNativeObject : public RNJsi::NativeObject<Derived> {
123
112
  public:
124
113
  explicit JsiSkNativeObject(std::shared_ptr<RNSkPlatformContext> context)
125
- : rnwgpu::NativeObject<Derived>(Derived::CLASS_NAME),
114
+ : RNJsi::NativeObject<Derived>(Derived::CLASS_NAME),
126
115
  _context(std::move(context)) {}
127
116
 
128
117
  /**
@@ -131,7 +120,7 @@ public:
131
120
  */
132
121
  static std::shared_ptr<Derived> fromThis(jsi::Runtime &runtime,
133
122
  const jsi::Value &thisValue) {
134
- return rnwgpu::NativeObject<Derived>::fromValue(runtime, thisValue);
123
+ return RNJsi::NativeObject<Derived>::fromValue(runtime, thisValue);
135
124
  }
136
125
 
137
126
  protected:
@@ -213,8 +202,6 @@ protected:
213
202
 
214
203
  using HostMethod = jsi::Value (Derived::*)(jsi::Runtime &, const jsi::Value &,
215
204
  const jsi::Value *, size_t);
216
- using HostGetter = jsi::Value (Derived::*)(jsi::Runtime &);
217
- using HostSetter = void (Derived::*)(jsi::Runtime &, const jsi::Value &);
218
205
 
219
206
  /**
220
207
  * Installs a method with the classic host-function signature
@@ -233,87 +220,68 @@ protected:
233
220
  }
234
221
 
235
222
  /**
236
- * Installs a property getter with the classic JSI_PROPERTY_GET signature on
237
- * the prototype.
223
+ * Installs a typed mutating method that returns `this` for chaining
224
+ * (e.g. path.moveTo(...).lineTo(...)). Arguments are converted through
225
+ * RNJsi::JSIConverter like installMethod; the member function's return
226
+ * value (if any) is ignored and the JS function returns thisValue.
238
227
  */
239
- static void installHostGetter(jsi::Runtime &runtime, jsi::Object &prototype,
240
- const char *name, HostGetter getter) {
241
- auto getterFunc = jsi::Function::createFromHostFunction(
242
- runtime, jsi::PropNameID::forUtf8(runtime, std::string("get_") + name),
243
- 0,
244
- [getter](jsi::Runtime &rt, const jsi::Value &thisValue,
245
- const jsi::Value *, size_t) -> jsi::Value {
228
+ template <typename ReturnType, typename... Args>
229
+ static void installChainableMethod(jsi::Runtime &runtime,
230
+ jsi::Object &prototype, const char *name,
231
+ ReturnType (Derived::*method)(Args...)) {
232
+ auto func = jsi::Function::createFromHostFunction(
233
+ runtime, jsi::PropNameID::forUtf8(runtime, name), sizeof...(Args),
234
+ [method](jsi::Runtime &rt, const jsi::Value &thisValue,
235
+ const jsi::Value *args, size_t count) -> jsi::Value {
246
236
  auto native = fromThis(rt, thisValue);
247
- return ((*native).*getter)(rt);
237
+ invokeChainable(native.get(), method, rt, args,
238
+ std::index_sequence_for<Args...>{}, count);
239
+ return jsi::Value(rt, thisValue);
248
240
  });
249
- defineProperty(runtime, prototype, name, &getterFunc, nullptr);
241
+ prototype.setProperty(runtime, name, func);
250
242
  }
251
243
 
252
244
  /**
253
- * Installs a property setter with the classic JSI_PROPERTY_SET signature on
254
- * the prototype, preserving a previously installed getter.
245
+ * Chainable variant for methods that need the calling jsi::Runtime as
246
+ * their first parameter (e.g. the deprecated SkPath mutators, which log a
247
+ * warning to the JS console).
255
248
  */
256
- static void installHostSetter(jsi::Runtime &runtime, jsi::Object &prototype,
257
- const char *name, HostSetter setter) {
258
- auto setterFunc = jsi::Function::createFromHostFunction(
259
- runtime, jsi::PropNameID::forUtf8(runtime, std::string("set_") + name),
260
- 1,
261
- [setter](jsi::Runtime &rt, const jsi::Value &thisValue,
262
- const jsi::Value *arguments, size_t count) -> jsi::Value {
263
- if (count < 1) {
264
- throw jsi::JSError(rt, "Setter requires a value argument");
265
- }
249
+ template <typename ReturnType, typename... Args>
250
+ static void installChainableMethodWithRuntime(
251
+ jsi::Runtime &runtime, jsi::Object &prototype, const char *name,
252
+ ReturnType (Derived::*method)(jsi::Runtime &, Args...)) {
253
+ auto func = jsi::Function::createFromHostFunction(
254
+ runtime, jsi::PropNameID::forUtf8(runtime, name), sizeof...(Args),
255
+ [method](jsi::Runtime &rt, const jsi::Value &thisValue,
256
+ const jsi::Value *args, size_t count) -> jsi::Value {
266
257
  auto native = fromThis(rt, thisValue);
267
- ((*native).*setter)(rt, arguments[0]);
268
- return jsi::Value::undefined();
258
+ invokeChainableWithRuntime(native.get(), method, rt, args,
259
+ std::index_sequence_for<Args...>{}, count);
260
+ return jsi::Value(rt, thisValue);
269
261
  });
270
- defineProperty(runtime, prototype, name, nullptr, &setterFunc);
262
+ prototype.setProperty(runtime, name, func);
271
263
  }
272
264
 
273
- /**
274
- * Installs both getter and setter for a property on the prototype.
275
- */
276
- static void installHostProperty(jsi::Runtime &runtime, jsi::Object &prototype,
277
- const char *name, HostGetter getter,
278
- HostSetter setter) {
279
- installHostGetter(runtime, prototype, name, getter);
280
- installHostSetter(runtime, prototype, name, setter);
265
+ private:
266
+ // Invokes a typed member function with JSI argument conversion, discarding
267
+ // the result. Used by installChainableMethod, which returns thisValue.
268
+ template <typename ReturnType, typename... Args, size_t... Is>
269
+ static void invokeChainable(Derived *obj,
270
+ ReturnType (Derived::*method)(Args...),
271
+ jsi::Runtime &runtime, const jsi::Value *args,
272
+ std::index_sequence<Is...>, size_t count) {
273
+ (obj->*method)(RNJsi::JSIConverter<std::decay_t<Args>>::fromJSI(
274
+ runtime, args[Is], Is >= count)...);
281
275
  }
282
276
 
283
- private:
284
- static void defineProperty(jsi::Runtime &runtime, jsi::Object &prototype,
285
- const char *name, jsi::Function *getter,
286
- jsi::Function *setter) {
287
- auto objectCtor = runtime.global().getPropertyAsObject(runtime, "Object");
288
- auto defineProp =
289
- objectCtor.getPropertyAsFunction(runtime, "defineProperty");
290
- auto getOwnPropertyDescriptor =
291
- objectCtor.getPropertyAsFunction(runtime, "getOwnPropertyDescriptor");
292
- auto existing = getOwnPropertyDescriptor.call(
293
- runtime, prototype, jsi::String::createFromUtf8(runtime, name));
294
-
295
- jsi::Object descriptor(runtime);
296
- if (existing.isObject()) {
297
- auto existingObj = existing.getObject(runtime);
298
- if (existingObj.hasProperty(runtime, "get")) {
299
- descriptor.setProperty(runtime, "get",
300
- existingObj.getProperty(runtime, "get"));
301
- }
302
- if (existingObj.hasProperty(runtime, "set")) {
303
- descriptor.setProperty(runtime, "set",
304
- existingObj.getProperty(runtime, "set"));
305
- }
306
- }
307
- if (getter != nullptr) {
308
- descriptor.setProperty(runtime, "get", *getter);
309
- }
310
- if (setter != nullptr) {
311
- descriptor.setProperty(runtime, "set", *setter);
312
- }
313
- descriptor.setProperty(runtime, "enumerable", true);
314
- descriptor.setProperty(runtime, "configurable", true);
315
- defineProp.call(runtime, prototype,
316
- jsi::String::createFromUtf8(runtime, name), descriptor);
277
+ template <typename ReturnType, typename... Args, size_t... Is>
278
+ static void invokeChainableWithRuntime(
279
+ Derived *obj, ReturnType (Derived::*method)(jsi::Runtime &, Args...),
280
+ jsi::Runtime &runtime, const jsi::Value *args, std::index_sequence<Is...>,
281
+ size_t count) {
282
+ (obj->*method)(runtime,
283
+ RNJsi::JSIConverter<std::decay_t<Args>>::fromJSI(
284
+ runtime, args[Is], Is >= count)...);
317
285
  }
318
286
 
319
287
  std::shared_ptr<RNSkPlatformContext> _context;