@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,87 +0,0 @@
1
- #pragma once
2
-
3
- #include <cstdint>
4
- #include <stdexcept>
5
- #include <string>
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- #if defined(__APPLE__)
10
- #include "AppleNativeBuffer.h"
11
- #elif defined(__ANDROID__)
12
- #include <android/hardware_buffer.h>
13
- #endif
14
-
15
- namespace rnwgpu {
16
-
17
- // Import a Skia NativeBuffer pointer (a CVPixelBufferRef on Apple, an
18
- // AHardwareBuffer* on Android, as returned by Skia.NativeBuffer.MakeFromImage /
19
- // MakeTestBuffer) as a wgpu::SharedTextureMemory on `device`. When non-null,
20
- // outWidth/outHeight receive the surface dimensions. Returns a null
21
- // SharedTextureMemory if the import itself fails (the caller decides how to
22
- // report that); throws std::runtime_error for pre-import failures (a buffer
23
- // with no IOSurface, or an unsupported platform).
24
- //
25
- // The platform-specific chained descriptor only needs to outlive the
26
- // ImportSharedTextureMemory call, so it lives entirely within this function.
27
- // Shared by GPUDevice::importSharedTextureMemory and
28
- // GPUExternalTexture::Create.
29
- inline wgpu::SharedTextureMemory importNativeBufferAsSharedTextureMemory(
30
- const wgpu::Device &device, void *bufferPtr, const std::string &label,
31
- uint32_t *outWidth, uint32_t *outHeight) {
32
- wgpu::SharedTextureMemoryDescriptor memDesc{};
33
- if (!label.empty()) {
34
- memDesc.label = wgpu::StringView(label.c_str(), label.size());
35
- }
36
-
37
- uint32_t width = 0;
38
- uint32_t height = 0;
39
- wgpu::SharedTextureMemory memory;
40
-
41
- #if defined(__APPLE__)
42
- // Skia's NativeBuffer is a CVPixelBufferRef; extract its backing IOSurface
43
- // (and dimensions) in Objective-C++ since CoreVideo isn't available here.
44
- void *ioSurface = GetIOSurfaceFromNativeBuffer(bufferPtr, &width, &height);
45
- if (ioSurface == nullptr) {
46
- throw std::runtime_error(
47
- "importNativeBufferAsSharedTextureMemory(): native "
48
- "buffer has no IOSurface");
49
- }
50
- wgpu::SharedTextureMemoryIOSurfaceDescriptor platformDesc{};
51
- platformDesc.ioSurface = ioSurface;
52
- // Default off: enabling it propagates StorageBinding into properties.usage,
53
- // which then forces memory.createTexture() (no-descriptor form) to validate
54
- // the format against storage capabilities. bgra8unorm (the standard
55
- // CVPixelBuffer format) only supports storage when the device opts into the
56
- // bgra8unorm-storage feature, so unconditionally setting this here breaks the
57
- // common sample-only case.
58
- platformDesc.allowStorageBinding = false;
59
- memDesc.nextInChain = &platformDesc;
60
- memory = device.ImportSharedTextureMemory(&memDesc);
61
- #elif defined(__ANDROID__)
62
- auto *ahb = reinterpret_cast<AHardwareBuffer *>(bufferPtr);
63
- AHardwareBuffer_Desc ahbDesc = {};
64
- AHardwareBuffer_describe(ahb, &ahbDesc);
65
- width = ahbDesc.width;
66
- height = ahbDesc.height;
67
- wgpu::SharedTextureMemoryAHardwareBufferDescriptor platformDesc{};
68
- platformDesc.handle = ahb;
69
- memDesc.nextInChain = &platformDesc;
70
- memory = device.ImportSharedTextureMemory(&memDesc);
71
- #else
72
- (void)device;
73
- (void)bufferPtr;
74
- throw std::runtime_error(
75
- "importNativeBufferAsSharedTextureMemory(): unsupported platform");
76
- #endif
77
-
78
- if (outWidth != nullptr) {
79
- *outWidth = width;
80
- }
81
- if (outHeight != nullptr) {
82
- *outHeight = height;
83
- }
84
- return memory;
85
- }
86
-
87
- } // namespace rnwgpu
@@ -1,82 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
-
6
- #include "jsi2/NativeObject.h"
7
-
8
- #include "GPU.h"
9
- #include "GPUCanvasContext.h"
10
- #include "rnwgpu/Canvas.h"
11
- #include "rnwgpu/PlatformContext.h"
12
-
13
- namespace rnwgpu {
14
-
15
- namespace jsi = facebook::jsi;
16
-
17
- class RNWebGPU : public NativeObject<RNWebGPU> {
18
- public:
19
- static constexpr const char *CLASS_NAME = "RNWebGPU";
20
-
21
- explicit RNWebGPU(std::shared_ptr<GPU> gpu,
22
- std::shared_ptr<PlatformContext> platformContext)
23
- : NativeObject(CLASS_NAME), _gpu(gpu), _platformContext(platformContext) {
24
- }
25
-
26
- std::shared_ptr<GPU> getGPU() { return _gpu; }
27
-
28
- bool getFabric() { return true; }
29
-
30
- std::shared_ptr<GPUCanvasContext>
31
- MakeWebGPUCanvasContext(int contextId, float width, float height) {
32
- auto ctx =
33
- std::make_shared<GPUCanvasContext>(_gpu, contextId, width, height);
34
- return ctx;
35
- }
36
-
37
- std::shared_ptr<Canvas> getNativeSurface(int contextId) {
38
- auto &registry = rnwgpu::SurfaceRegistry::getInstance();
39
- auto info = registry.getSurfaceInfo(contextId);
40
- if (info == nullptr) {
41
- return std::make_shared<Canvas>(nullptr, 0, 0);
42
- }
43
- auto nativeInfo = info->getNativeInfo();
44
- return std::make_shared<Canvas>(nativeInfo.nativeSurface, nativeInfo.width,
45
- nativeInfo.height);
46
- }
47
-
48
- // Retires a canvas context from the JS side (Canvas unmount cleanup).
49
- // Registry entries have two owners, split by whether a native surface is
50
- // attached:
51
- // - A native view currently owns a surface (or one is pending): its own
52
- // teardown (WebGPUMetalView dealloc / WebGPUViewManager.onDropViewInstance)
53
- // removes the entry. Skipping here keeps React StrictMode safe: its
54
- // simulated unmount re-runs JS effects without unmounting native views,
55
- // and removing the entry then would orphan the still-attached surface.
56
- // - No native surface: the JS side is the last owner and removes the entry.
57
- // The check-and-erase runs atomically under the registry lock
58
- // (removeSurfaceInfoIfDetached), serialized against the UI thread's
59
- // find-or-create + attach (SurfaceRegistry::attachSurface), so a concurrent
60
- // attach can never be orphaned by this removal.
61
- void destroyContext(int contextId) {
62
- auto &registry = rnwgpu::SurfaceRegistry::getInstance();
63
- registry.removeSurfaceInfoIfDetached(contextId);
64
- }
65
-
66
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
67
- installGetter(runtime, prototype, "fabric", &RNWebGPU::getFabric);
68
- installGetter(runtime, prototype, "gpu", &RNWebGPU::getGPU);
69
- installMethod(runtime, prototype, "getNativeSurface",
70
- &RNWebGPU::getNativeSurface);
71
- installMethod(runtime, prototype, "destroyContext",
72
- &RNWebGPU::destroyContext);
73
- installMethod(runtime, prototype, "MakeWebGPUCanvasContext",
74
- &RNWebGPU::MakeWebGPUCanvasContext);
75
- }
76
-
77
- private:
78
- std::shared_ptr<GPU> _gpu;
79
- std::shared_ptr<PlatformContext> _platformContext;
80
- };
81
-
82
- } // namespace rnwgpu
@@ -1,36 +0,0 @@
1
- #pragma once
2
-
3
- #include <jsi/jsi.h>
4
-
5
- #include "descriptors/GPUBufferUsage.h"
6
- #include "descriptors/GPUColorWrite.h"
7
- #include "descriptors/GPUMapMode.h"
8
- #include "descriptors/GPUShaderStage.h"
9
- #include "descriptors/GPUTextureUsage.h"
10
-
11
- namespace rnwgpu {
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- // Installs the WebGPU flag constants (GPUBufferUsage, GPUColorWrite, GPUMapMode,
16
- // GPUShaderStage, GPUTextureUsage) as plain JS objects on `runtime`'s global.
17
- //
18
- // The numeric values are derived from the Dawn wgpu::*Usage enums (single source
19
- // of truth in C++), so this is safe to call on ANY runtime: the main JS runtime
20
- // at install time, and any worklet runtime (Reanimated UI, dedicated worklet
21
- // runtimes, Vision Camera frame processors) via the global `installWebGPU()`
22
- // host function. It is idempotent: re-installing overwrites the globals with
23
- // equal values.
24
- inline void installWebGPUConstants(jsi::Runtime &runtime) {
25
- auto global = runtime.global();
26
- global.setProperty(runtime, "GPUBufferUsage",
27
- GPUBufferUsage::create(runtime));
28
- global.setProperty(runtime, "GPUColorWrite", GPUColorWrite::create(runtime));
29
- global.setProperty(runtime, "GPUMapMode", GPUMapMode::create(runtime));
30
- global.setProperty(runtime, "GPUShaderStage",
31
- GPUShaderStage::create(runtime));
32
- global.setProperty(runtime, "GPUTextureUsage",
33
- GPUTextureUsage::create(runtime));
34
- }
35
-
36
- } // namespace rnwgpu
@@ -1,64 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <vector>
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- #include "jsi2/JSIConverter.h"
10
-
11
- #include "GPUBindGroupEntry.h"
12
- #include "rnwgpu/api/GPUBindGroupLayout.h"
13
-
14
- namespace jsi = facebook::jsi;
15
-
16
- namespace rnwgpu {
17
-
18
- struct GPUBindGroupDescriptor {
19
- std::shared_ptr<GPUBindGroupLayout> layout; // GPUBindGroupLayout
20
- std::vector<std::shared_ptr<GPUBindGroupEntry>>
21
- entries; // Iterable<GPUBindGroupEntry>
22
- std::optional<std::string> label; // string
23
- };
24
-
25
- } // namespace rnwgpu
26
-
27
- namespace rnwgpu {
28
-
29
- template <>
30
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUBindGroupDescriptor>> {
31
- static std::shared_ptr<rnwgpu::GPUBindGroupDescriptor>
32
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
33
- auto result = std::make_unique<rnwgpu::GPUBindGroupDescriptor>();
34
- if (!outOfBounds && arg.isObject()) {
35
- auto value = arg.getObject(runtime);
36
- if (value.hasProperty(runtime, "layout")) {
37
- auto prop = value.getProperty(runtime, "layout");
38
- result->layout =
39
- JSIConverter<std::shared_ptr<GPUBindGroupLayout>>::fromJSI(
40
- runtime, prop, false);
41
- }
42
- if (value.hasProperty(runtime, "entries")) {
43
- auto prop = value.getProperty(runtime, "entries");
44
- result->entries = JSIConverter<
45
- std::vector<std::shared_ptr<GPUBindGroupEntry>>>::fromJSI(runtime,
46
- prop,
47
- false);
48
- }
49
- if (value.hasProperty(runtime, "label")) {
50
- auto prop = value.getProperty(runtime, "label");
51
- result->label = JSIConverter<std::optional<std::string>>::fromJSI(
52
- runtime, prop, false);
53
- }
54
- }
55
-
56
- return result;
57
- }
58
- static jsi::Value toJSI(jsi::Runtime &runtime,
59
- std::shared_ptr<rnwgpu::GPUBindGroupDescriptor> arg) {
60
- throw std::runtime_error("Invalid GPUBindGroupDescriptor::toJSI()");
61
- }
62
- };
63
-
64
- } // namespace rnwgpu
@@ -1,78 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <variant>
5
-
6
- #include "webgpu/webgpu_cpp.h"
7
-
8
- #include "GPUBufferBinding.h"
9
- #include "jsi2/JSIConverter.h"
10
- #include "rnwgpu/api/GPUExternalTexture.h"
11
- #include "rnwgpu/api/GPUSampler.h"
12
- #include "rnwgpu/api/GPUTextureView.h"
13
-
14
- namespace jsi = facebook::jsi;
15
-
16
- namespace rnwgpu {
17
-
18
- struct GPUBindGroupEntry {
19
- double binding;
20
- std::shared_ptr<GPUSampler> sampler = nullptr;
21
- std::shared_ptr<GPUTextureView> textureView = nullptr;
22
- std::shared_ptr<GPUBufferBinding> buffer = nullptr;
23
- std::shared_ptr<GPUExternalTexture> externalTexture = nullptr;
24
- };
25
-
26
- } // namespace rnwgpu
27
-
28
- namespace rnwgpu {
29
-
30
- template <> struct JSIConverter<std::shared_ptr<rnwgpu::GPUBindGroupEntry>> {
31
- static std::shared_ptr<rnwgpu::GPUBindGroupEntry>
32
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
33
- auto result = std::make_unique<rnwgpu::GPUBindGroupEntry>();
34
- if (!outOfBounds && arg.isObject()) {
35
- auto value = arg.getObject(runtime);
36
- if (value.hasProperty(runtime, "binding")) {
37
- result->binding = value.getProperty(runtime, "binding").asNumber();
38
- }
39
- if (value.hasProperty(runtime, "resource")) {
40
- auto prop = value.getProperty(runtime, "resource");
41
- if (prop.isObject()) {
42
- auto obj = prop.getObject(runtime);
43
- if (obj.hasNativeState<rnwgpu::GPUSampler>(runtime)) {
44
- result->sampler = obj.getNativeState<rnwgpu::GPUSampler>(runtime);
45
- } else if (obj.hasNativeState<rnwgpu::GPUTextureView>(runtime)) {
46
- result->textureView =
47
- obj.getNativeState<rnwgpu::GPUTextureView>(runtime);
48
- } else if (obj.hasNativeState<rnwgpu::GPUExternalTexture>(runtime)) {
49
- result->externalTexture =
50
- obj.getNativeState<rnwgpu::GPUExternalTexture>(runtime);
51
- } else if (obj.hasNativeState<rnwgpu::GPUBuffer>(runtime)) {
52
- auto binding = std::make_shared<rnwgpu::GPUBufferBinding>();
53
- binding->buffer = obj.getNativeState<rnwgpu::GPUBuffer>(runtime);
54
- result->buffer = binding;
55
- } else {
56
- result->buffer = JSIConverter<
57
- std::shared_ptr<rnwgpu::GPUBufferBinding>>::fromJSI(runtime,
58
- prop,
59
- false);
60
- }
61
- }
62
- // result->resource = JSIConverter<std::variant<
63
- // std::shared_ptr<GPUSampler>, std::shared_ptr<GPUTextureView>,
64
- // std::shared_ptr<GPUBufferBinding>,
65
- // std::shared_ptr<GPUExternalTexture>>>::fromJSI(runtime, prop,
66
- // false);
67
- }
68
- }
69
-
70
- return result;
71
- }
72
- static jsi::Value toJSI(jsi::Runtime &runtime,
73
- std::shared_ptr<rnwgpu::GPUBindGroupEntry> arg) {
74
- throw std::runtime_error("Invalid GPUBindGroupEntry::toJSI()");
75
- }
76
- };
77
-
78
- } // namespace rnwgpu
@@ -1,56 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <vector>
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- #include "jsi2/JSIConverter.h"
10
-
11
- #include "GPUBindGroupLayoutEntry.h"
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- namespace rnwgpu {
16
-
17
- struct GPUBindGroupLayoutDescriptor {
18
- std::vector<std::shared_ptr<GPUBindGroupLayoutEntry>>
19
- entries; // Iterable<GPUBindGroupLayoutEntry>
20
- std::optional<std::string> label; // string
21
- };
22
-
23
- } // namespace rnwgpu
24
-
25
- namespace rnwgpu {
26
-
27
- template <>
28
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUBindGroupLayoutDescriptor>> {
29
- static std::shared_ptr<rnwgpu::GPUBindGroupLayoutDescriptor>
30
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
31
- auto result = std::make_unique<rnwgpu::GPUBindGroupLayoutDescriptor>();
32
- if (!outOfBounds && arg.isObject()) {
33
- auto value = arg.getObject(runtime);
34
- if (value.hasProperty(runtime, "entries")) {
35
- auto prop = value.getProperty(runtime, "entries");
36
- result->entries = JSIConverter<std::vector<
37
- std::shared_ptr<GPUBindGroupLayoutEntry>>>::fromJSI(runtime, prop,
38
- false);
39
- }
40
- if (value.hasProperty(runtime, "label")) {
41
- auto prop = value.getProperty(runtime, "label");
42
- result->label = JSIConverter<std::optional<std::string>>::fromJSI(
43
- runtime, prop, false);
44
- }
45
- }
46
-
47
- return result;
48
- }
49
- static jsi::Value
50
- toJSI(jsi::Runtime &runtime,
51
- std::shared_ptr<rnwgpu::GPUBindGroupLayoutDescriptor> arg) {
52
- throw std::runtime_error("Invalid GPUBindGroupLayoutDescriptor::toJSI()");
53
- }
54
- };
55
-
56
- } // namespace rnwgpu
@@ -1,97 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- #include "jsi2/JSIConverter.h"
8
-
9
- #include "GPUBufferBindingLayout.h"
10
- #include "GPUExternalTextureBindingLayout.h"
11
- #include "GPUSamplerBindingLayout.h"
12
- #include "GPUStorageTextureBindingLayout.h"
13
- #include "GPUTextureBindingLayout.h"
14
-
15
- namespace jsi = facebook::jsi;
16
-
17
- namespace rnwgpu {
18
-
19
- struct GPUBindGroupLayoutEntry {
20
- double binding; // GPUIndex32
21
- double visibility; // GPUShaderStageFlags
22
- std::optional<std::shared_ptr<GPUBufferBindingLayout>>
23
- buffer; // GPUBufferBindingLayout
24
- std::optional<std::shared_ptr<GPUSamplerBindingLayout>>
25
- sampler; // GPUSamplerBindingLayout
26
- std::optional<std::shared_ptr<GPUTextureBindingLayout>>
27
- texture; // GPUTextureBindingLayout
28
- std::optional<std::shared_ptr<GPUStorageTextureBindingLayout>>
29
- storageTexture; // GPUStorageTextureBindingLayout
30
- std::optional<std::shared_ptr<GPUExternalTextureBindingLayout>>
31
- externalTexture; // GPUExternalTextureBindingLayout
32
- };
33
-
34
- } // namespace rnwgpu
35
-
36
- namespace rnwgpu {
37
-
38
- template <>
39
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUBindGroupLayoutEntry>> {
40
- static std::shared_ptr<rnwgpu::GPUBindGroupLayoutEntry>
41
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
42
- auto result = std::make_unique<rnwgpu::GPUBindGroupLayoutEntry>();
43
- if (!outOfBounds && arg.isObject()) {
44
- auto value = arg.getObject(runtime);
45
- if (value.hasProperty(runtime, "binding")) {
46
- auto prop = value.getProperty(runtime, "binding");
47
- result->binding = JSIConverter<double>::fromJSI(runtime, prop, false);
48
- }
49
- if (value.hasProperty(runtime, "visibility")) {
50
- auto prop = value.getProperty(runtime, "visibility");
51
- result->visibility =
52
- JSIConverter<double>::fromJSI(runtime, prop, false);
53
- }
54
- if (value.hasProperty(runtime, "buffer")) {
55
- auto prop = value.getProperty(runtime, "buffer");
56
- result->buffer = JSIConverter<std::optional<
57
- std::shared_ptr<GPUBufferBindingLayout>>>::fromJSI(runtime, prop,
58
- false);
59
- }
60
- if (value.hasProperty(runtime, "sampler")) {
61
- auto prop = value.getProperty(runtime, "sampler");
62
- result->sampler = JSIConverter<std::optional<
63
- std::shared_ptr<GPUSamplerBindingLayout>>>::fromJSI(runtime, prop,
64
- false);
65
- }
66
- if (value.hasProperty(runtime, "texture")) {
67
- auto prop = value.getProperty(runtime, "texture");
68
- result->texture = JSIConverter<std::optional<
69
- std::shared_ptr<GPUTextureBindingLayout>>>::fromJSI(runtime, prop,
70
- false);
71
- }
72
- if (value.hasProperty(runtime, "storageTexture")) {
73
- auto prop = value.getProperty(runtime, "storageTexture");
74
- result->storageTexture = JSIConverter<std::optional<
75
- std::shared_ptr<GPUStorageTextureBindingLayout>>>::fromJSI(runtime,
76
- prop,
77
- false);
78
- }
79
- if (value.hasProperty(runtime, "externalTexture")) {
80
- auto prop = value.getProperty(runtime, "externalTexture");
81
- result->externalTexture = JSIConverter<std::optional<
82
- std::shared_ptr<GPUExternalTextureBindingLayout>>>::fromJSI(runtime,
83
- prop,
84
- false);
85
- }
86
- }
87
-
88
- return result;
89
- }
90
- static jsi::Value
91
- toJSI(jsi::Runtime &runtime,
92
- std::shared_ptr<rnwgpu::GPUBindGroupLayoutEntry> arg) {
93
- throw std::runtime_error("Invalid GPUBindGroupLayoutEntry::toJSI()");
94
- }
95
- };
96
-
97
- } // namespace rnwgpu
@@ -1,57 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- #include "jsi2/JSIConverter.h"
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- namespace rnwgpu {
12
-
13
- struct GPUBlendComponent {
14
- std::optional<wgpu::BlendOperation> operation; // GPUBlendOperation
15
- std::optional<wgpu::BlendFactor> srcFactor; // GPUBlendFactor
16
- std::optional<wgpu::BlendFactor> dstFactor; // GPUBlendFactor
17
- };
18
-
19
- } // namespace rnwgpu
20
-
21
- namespace rnwgpu {
22
-
23
- template <> struct JSIConverter<std::shared_ptr<rnwgpu::GPUBlendComponent>> {
24
- static std::shared_ptr<rnwgpu::GPUBlendComponent>
25
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
26
- auto result = std::make_unique<rnwgpu::GPUBlendComponent>();
27
- if (!outOfBounds && arg.isObject()) {
28
- auto value = arg.getObject(runtime);
29
- if (value.hasProperty(runtime, "operation")) {
30
- auto prop = value.getProperty(runtime, "operation");
31
- result->operation =
32
- JSIConverter<std::optional<wgpu::BlendOperation>>::fromJSI(
33
- runtime, prop, false);
34
- }
35
- if (value.hasProperty(runtime, "srcFactor")) {
36
- auto prop = value.getProperty(runtime, "srcFactor");
37
- result->srcFactor =
38
- JSIConverter<std::optional<wgpu::BlendFactor>>::fromJSI(
39
- runtime, prop, false);
40
- }
41
- if (value.hasProperty(runtime, "dstFactor")) {
42
- auto prop = value.getProperty(runtime, "dstFactor");
43
- result->dstFactor =
44
- JSIConverter<std::optional<wgpu::BlendFactor>>::fromJSI(
45
- runtime, prop, false);
46
- }
47
- }
48
-
49
- return result;
50
- }
51
- static jsi::Value toJSI(jsi::Runtime &runtime,
52
- std::shared_ptr<rnwgpu::GPUBlendComponent> arg) {
53
- throw std::runtime_error("Invalid GPUBlendComponent::toJSI()");
54
- }
55
- };
56
-
57
- } // namespace rnwgpu
@@ -1,52 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- #include "jsi2/JSIConverter.h"
8
-
9
- #include "GPUBlendComponent.h"
10
-
11
- namespace jsi = facebook::jsi;
12
-
13
- namespace rnwgpu {
14
-
15
- struct GPUBlendState {
16
- std::shared_ptr<GPUBlendComponent> color; // GPUBlendComponent
17
- std::shared_ptr<GPUBlendComponent> alpha; // GPUBlendComponent
18
- };
19
-
20
- } // namespace rnwgpu
21
-
22
- namespace rnwgpu {
23
-
24
- template <> struct JSIConverter<std::shared_ptr<rnwgpu::GPUBlendState>> {
25
- static std::shared_ptr<rnwgpu::GPUBlendState>
26
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
27
- auto result = std::make_unique<rnwgpu::GPUBlendState>();
28
- if (!outOfBounds && arg.isObject()) {
29
- auto value = arg.getObject(runtime);
30
- if (value.hasProperty(runtime, "color")) {
31
- auto prop = value.getProperty(runtime, "color");
32
- result->color =
33
- JSIConverter<std::shared_ptr<GPUBlendComponent>>::fromJSI(
34
- runtime, prop, false);
35
- }
36
- if (value.hasProperty(runtime, "alpha")) {
37
- auto prop = value.getProperty(runtime, "alpha");
38
- result->alpha =
39
- JSIConverter<std::shared_ptr<GPUBlendComponent>>::fromJSI(
40
- runtime, prop, false);
41
- }
42
- }
43
-
44
- return result;
45
- }
46
- static jsi::Value toJSI(jsi::Runtime &runtime,
47
- std::shared_ptr<rnwgpu::GPUBlendState> arg) {
48
- throw std::runtime_error("Invalid GPUBlendState::toJSI()");
49
- }
50
- };
51
-
52
- } // namespace rnwgpu
@@ -1,56 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- #include "jsi2/JSIConverter.h"
8
-
9
- #include "rnwgpu/api/GPUBuffer.h"
10
-
11
- namespace jsi = facebook::jsi;
12
-
13
- namespace rnwgpu {
14
-
15
- struct GPUBufferBinding {
16
- std::shared_ptr<GPUBuffer> buffer; // GPUBuffer
17
- std::optional<double> offset; // GPUSize64
18
- std::optional<double> size; // GPUSize64
19
- };
20
-
21
- } // namespace rnwgpu
22
-
23
- namespace rnwgpu {
24
-
25
- template <> struct JSIConverter<std::shared_ptr<rnwgpu::GPUBufferBinding>> {
26
- static std::shared_ptr<rnwgpu::GPUBufferBinding>
27
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
28
- auto result = std::make_unique<rnwgpu::GPUBufferBinding>();
29
- if (!outOfBounds && arg.isObject()) {
30
- auto value = arg.getObject(runtime);
31
- if (value.hasProperty(runtime, "buffer")) {
32
- auto prop = value.getProperty(runtime, "buffer");
33
- result->buffer = JSIConverter<std::shared_ptr<GPUBuffer>>::fromJSI(
34
- runtime, prop, false);
35
- }
36
- if (value.hasProperty(runtime, "offset")) {
37
- auto prop = value.getProperty(runtime, "offset");
38
- result->offset =
39
- JSIConverter<std::optional<double>>::fromJSI(runtime, prop, false);
40
- }
41
- if (value.hasProperty(runtime, "size")) {
42
- auto prop = value.getProperty(runtime, "size");
43
- result->size =
44
- JSIConverter<std::optional<double>>::fromJSI(runtime, prop, false);
45
- }
46
- }
47
-
48
- return result;
49
- }
50
- static jsi::Value toJSI(jsi::Runtime &runtime,
51
- std::shared_ptr<rnwgpu::GPUBufferBinding> arg) {
52
- throw std::runtime_error("Invalid GPUBufferBinding::toJSI()");
53
- }
54
- };
55
-
56
- } // namespace rnwgpu