@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,60 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
-
6
- #include "webgpu/webgpu_cpp.h"
7
-
8
- #include "jsi2/JSIConverter.h"
9
-
10
- #include "rnwgpu/api/GPUPipelineLayout.h"
11
-
12
- namespace jsi = facebook::jsi;
13
-
14
- namespace rnwgpu {
15
-
16
- struct GPUShaderModuleCompilationHint {
17
- std::string entryPoint; // string
18
- std::optional<
19
- std::variant<std::nullptr_t, std::shared_ptr<GPUPipelineLayout>>>
20
- layout; // | GPUPipelineLayout | GPUAutoLayoutMode
21
- };
22
-
23
- } // namespace rnwgpu
24
-
25
- namespace rnwgpu {
26
-
27
- template <>
28
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUShaderModuleCompilationHint>> {
29
- static std::shared_ptr<rnwgpu::GPUShaderModuleCompilationHint>
30
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
31
- auto result = std::make_unique<rnwgpu::GPUShaderModuleCompilationHint>();
32
- if (!outOfBounds && arg.isObject()) {
33
- auto value = arg.getObject(runtime);
34
- if (value.hasProperty(runtime, "entryPoint")) {
35
- auto prop = value.getProperty(runtime, "entryPoint");
36
- result->entryPoint =
37
- JSIConverter<std::string>::fromJSI(runtime, prop, false);
38
- }
39
- if (value.hasProperty(runtime, "layout")) {
40
- auto prop = value.getProperty(runtime, "layout");
41
- if (prop.isNull() || prop.isString()) {
42
- result->layout = nullptr;
43
- } else {
44
- result->layout =
45
- JSIConverter<std::shared_ptr<GPUPipelineLayout>>::fromJSI(
46
- runtime, prop, false);
47
- }
48
- }
49
- }
50
-
51
- return result;
52
- }
53
- static jsi::Value
54
- toJSI(jsi::Runtime &runtime,
55
- std::shared_ptr<rnwgpu::GPUShaderModuleCompilationHint> arg) {
56
- throw std::runtime_error("Invalid GPUShaderModuleCompilationHint::toJSI()");
57
- }
58
- };
59
-
60
- } // namespace rnwgpu
@@ -1,62 +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 "GPUShaderModuleCompilationHint.h"
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- namespace rnwgpu {
16
-
17
- struct GPUShaderModuleDescriptor {
18
- std::string code; // string
19
- std::optional<std::vector<std::shared_ptr<GPUShaderModuleCompilationHint>>>
20
- compilationHints; // Array<GPUShaderModuleCompilationHint>
21
- std::optional<std::string> label; // string
22
- };
23
-
24
- } // namespace rnwgpu
25
-
26
- namespace rnwgpu {
27
-
28
- template <>
29
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUShaderModuleDescriptor>> {
30
- static std::shared_ptr<rnwgpu::GPUShaderModuleDescriptor>
31
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
32
- auto result = std::make_unique<rnwgpu::GPUShaderModuleDescriptor>();
33
- if (!outOfBounds && arg.isObject()) {
34
- auto value = arg.getObject(runtime);
35
- if (value.hasProperty(runtime, "code")) {
36
- auto prop = value.getProperty(runtime, "code");
37
- result->code = JSIConverter<std::string>::fromJSI(runtime, prop, false);
38
- }
39
- if (value.hasProperty(runtime, "compilationHints")) {
40
- auto prop = value.getProperty(runtime, "compilationHints");
41
- result->compilationHints = JSIConverter<std::optional<std::vector<
42
- std::shared_ptr<GPUShaderModuleCompilationHint>>>>::fromJSI(runtime,
43
- prop,
44
- false);
45
- }
46
- if (value.hasProperty(runtime, "label")) {
47
- auto prop = value.getProperty(runtime, "label");
48
- result->label = JSIConverter<std::optional<std::string>>::fromJSI(
49
- runtime, prop, false);
50
- }
51
- }
52
-
53
- return result;
54
- }
55
- static jsi::Value
56
- toJSI(jsi::Runtime &runtime,
57
- std::shared_ptr<rnwgpu::GPUShaderModuleDescriptor> arg) {
58
- throw std::runtime_error("Invalid GPUShaderModuleDescriptor::toJSI()");
59
- }
60
- };
61
-
62
- } // namespace rnwgpu
@@ -1,25 +0,0 @@
1
- #pragma once
2
-
3
- #include <jsi/jsi.h>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- namespace rnwgpu {
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- class GPUShaderStage {
12
- public:
13
- static jsi::Object create(jsi::Runtime &runtime) {
14
- jsi::Object obj(runtime);
15
- obj.setProperty(runtime, "VERTEX",
16
- static_cast<double>(wgpu::ShaderStage::Vertex));
17
- obj.setProperty(runtime, "FRAGMENT",
18
- static_cast<double>(wgpu::ShaderStage::Fragment));
19
- obj.setProperty(runtime, "COMPUTE",
20
- static_cast<double>(wgpu::ShaderStage::Compute));
21
- return obj;
22
- }
23
- };
24
-
25
- } // namespace rnwgpu
@@ -1,58 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <optional>
5
- #include <string>
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- #include "jsi2/JSIConverter.h"
10
-
11
- namespace jsi = facebook::jsi;
12
-
13
- namespace rnwgpu {
14
-
15
- // Descriptor for GPUDevice.importSharedFence. `handle` is the native handle
16
- // (an id<MTLSharedEvent> pointer on Apple, an OS file descriptor on Android),
17
- // passed from JS as a BigInt.
18
- struct GPUSharedFenceDescriptor {
19
- std::string type;
20
- void *handle = nullptr;
21
- std::optional<std::string> label;
22
- };
23
-
24
- } // namespace rnwgpu
25
-
26
- namespace rnwgpu {
27
-
28
- template <>
29
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUSharedFenceDescriptor>> {
30
- static std::shared_ptr<rnwgpu::GPUSharedFenceDescriptor>
31
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
32
- auto result = std::make_unique<rnwgpu::GPUSharedFenceDescriptor>();
33
- if (!outOfBounds && arg.isObject()) {
34
- auto value = arg.getObject(runtime);
35
- if (value.hasProperty(runtime, "type")) {
36
- result->type =
37
- value.getProperty(runtime, "type").asString(runtime).utf8(runtime);
38
- }
39
- if (value.hasProperty(runtime, "handle")) {
40
- auto prop = value.getProperty(runtime, "handle");
41
- result->handle = JSIConverter<void *>::fromJSI(runtime, prop, false);
42
- }
43
- if (value.hasProperty(runtime, "label")) {
44
- auto prop = value.getProperty(runtime, "label");
45
- result->label = JSIConverter<std::optional<std::string>>::fromJSI(
46
- runtime, prop, false);
47
- }
48
- }
49
- return result;
50
- }
51
- static jsi::Value
52
- toJSI(jsi::Runtime & /*runtime*/,
53
- std::shared_ptr<rnwgpu::GPUSharedFenceDescriptor> /*arg*/) {
54
- throw std::runtime_error("Invalid GPUSharedFenceDescriptor::toJSI()");
55
- }
56
- };
57
-
58
- } // namespace rnwgpu
@@ -1,51 +0,0 @@
1
- #pragma once
2
-
3
- #include <cstdint>
4
- #include <memory>
5
-
6
- #include "webgpu/webgpu_cpp.h"
7
-
8
- #include "jsi2/JSIConverter.h"
9
-
10
- #include "rnwgpu/api/GPUSharedFence.h"
11
-
12
- namespace jsi = facebook::jsi;
13
-
14
- namespace rnwgpu {
15
-
16
- // A fence and the timeline value to wait for / signal at.
17
- struct GPUSharedFenceState {
18
- std::shared_ptr<GPUSharedFence> fence;
19
- uint64_t signaledValue = 0;
20
- };
21
-
22
- } // namespace rnwgpu
23
-
24
- namespace rnwgpu {
25
-
26
- template <> struct JSIConverter<std::shared_ptr<rnwgpu::GPUSharedFenceState>> {
27
- static std::shared_ptr<rnwgpu::GPUSharedFenceState>
28
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
29
- auto result = std::make_unique<rnwgpu::GPUSharedFenceState>();
30
- if (!outOfBounds && arg.isObject()) {
31
- auto value = arg.getObject(runtime);
32
- if (value.hasProperty(runtime, "fence")) {
33
- auto prop = value.getProperty(runtime, "fence");
34
- result->fence = JSIConverter<std::shared_ptr<GPUSharedFence>>::fromJSI(
35
- runtime, prop, false);
36
- }
37
- if (value.hasProperty(runtime, "signaledValue")) {
38
- auto prop = value.getProperty(runtime, "signaledValue");
39
- result->signaledValue =
40
- JSIConverter<uint64_t>::fromJSI(runtime, prop, false);
41
- }
42
- }
43
- return result;
44
- }
45
- static jsi::Value toJSI(jsi::Runtime &runtime,
46
- std::shared_ptr<rnwgpu::GPUSharedFenceState> arg) {
47
- throw std::runtime_error("Invalid GPUSharedFenceState::toJSI()");
48
- }
49
- };
50
-
51
- } // namespace rnwgpu
@@ -1,73 +0,0 @@
1
- #pragma once
2
-
3
- #include <cstdint>
4
- #include <memory>
5
- #include <optional>
6
- #include <string>
7
-
8
- #include "webgpu/webgpu_cpp.h"
9
-
10
- #include "jsi2/JSIConverter.h"
11
-
12
- namespace jsi = facebook::jsi;
13
-
14
- namespace rnwgpu {
15
-
16
- // Descriptor for GPUDevice.importSharedTextureMemory.
17
- //
18
- // `handle` is a native buffer pointer as a uintptr_t (passed as a BigInt from
19
- // JS), i.e. the value returned by Skia.NativeBuffer.MakeFromImage:
20
- // - Apple platforms: CVPixelBufferRef (its backing IOSurface is imported)
21
- // - Android: AHardwareBuffer*
22
- //
23
- // Lifetime: the caller is responsible for keeping the underlying object alive
24
- // (via Skia.NativeBuffer.Release) for as long as this shared memory is in use.
25
- struct GPUSharedTextureMemoryDescriptor {
26
- uint64_t handle = 0;
27
- std::optional<std::string> label;
28
- };
29
-
30
- } // namespace rnwgpu
31
-
32
- namespace rnwgpu {
33
-
34
- template <>
35
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUSharedTextureMemoryDescriptor>> {
36
- static std::shared_ptr<rnwgpu::GPUSharedTextureMemoryDescriptor>
37
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
38
- auto result = std::make_shared<rnwgpu::GPUSharedTextureMemoryDescriptor>();
39
- if (!outOfBounds && arg.isObject()) {
40
- auto value = arg.getObject(runtime);
41
- if (value.hasProperty(runtime, "handle")) {
42
- auto prop = value.getProperty(runtime, "handle");
43
- // The native buffer pointer arrives as a BigInt (uintptr_t value). It
44
- // must be a BigInt: a JS number can't represent a 64-bit pointer
45
- // without truncation, so we reject it rather than corrupt the address.
46
- if (prop.isBigInt()) {
47
- result->handle = prop.asBigInt(runtime).asUint64(runtime);
48
- } else if (!prop.isUndefined() && !prop.isNull()) {
49
- throw jsi::JSError(
50
- runtime, "GPUSharedTextureMemoryDescriptor.handle must be a "
51
- "NativeBuffer (BigInt) from "
52
- "Skia.NativeBuffer.MakeFromImage / MakeTestBuffer");
53
- }
54
- }
55
- if (value.hasProperty(runtime, "label")) {
56
- auto prop = value.getProperty(runtime, "label");
57
- if (!prop.isUndefined()) {
58
- result->label = JSIConverter<std::optional<std::string>>::fromJSI(
59
- runtime, prop, false);
60
- }
61
- }
62
- }
63
- return result;
64
- }
65
- static jsi::Value
66
- toJSI(jsi::Runtime & /*runtime*/,
67
- std::shared_ptr<rnwgpu::GPUSharedTextureMemoryDescriptor> /*arg*/) {
68
- throw std::runtime_error(
69
- "Invalid GPUSharedTextureMemoryDescriptor::toJSI()");
70
- }
71
- };
72
-
73
- } // namespace rnwgpu
@@ -1,64 +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 GPUStencilFaceState {
14
- std::optional<wgpu::CompareFunction> compare; // GPUCompareFunction
15
- std::optional<wgpu::StencilOperation> failOp; // GPUStencilOperation
16
- std::optional<wgpu::StencilOperation> depthFailOp; // GPUStencilOperation
17
- std::optional<wgpu::StencilOperation> passOp; // GPUStencilOperation
18
- };
19
-
20
- } // namespace rnwgpu
21
-
22
- namespace rnwgpu {
23
-
24
- template <> struct JSIConverter<std::shared_ptr<rnwgpu::GPUStencilFaceState>> {
25
- static std::shared_ptr<rnwgpu::GPUStencilFaceState>
26
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
27
- auto result = std::make_unique<rnwgpu::GPUStencilFaceState>();
28
- if (!outOfBounds && arg.isObject()) {
29
- auto value = arg.getObject(runtime);
30
- if (value.hasProperty(runtime, "compare")) {
31
- auto prop = value.getProperty(runtime, "compare");
32
- result->compare =
33
- JSIConverter<std::optional<wgpu::CompareFunction>>::fromJSI(
34
- runtime, prop, false);
35
- }
36
- if (value.hasProperty(runtime, "failOp")) {
37
- auto prop = value.getProperty(runtime, "failOp");
38
- result->failOp =
39
- JSIConverter<std::optional<wgpu::StencilOperation>>::fromJSI(
40
- runtime, prop, false);
41
- }
42
- if (value.hasProperty(runtime, "depthFailOp")) {
43
- auto prop = value.getProperty(runtime, "depthFailOp");
44
- result->depthFailOp =
45
- JSIConverter<std::optional<wgpu::StencilOperation>>::fromJSI(
46
- runtime, prop, false);
47
- }
48
- if (value.hasProperty(runtime, "passOp")) {
49
- auto prop = value.getProperty(runtime, "passOp");
50
- result->passOp =
51
- JSIConverter<std::optional<wgpu::StencilOperation>>::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::GPUStencilFaceState> arg) {
60
- throw std::runtime_error("Invalid GPUStencilFaceState::toJSI()");
61
- }
62
- };
63
-
64
- } // namespace rnwgpu
@@ -1,59 +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 GPUStorageTextureBindingLayout {
14
- std::optional<wgpu::StorageTextureAccess> access; // GPUStorageTextureAccess
15
- wgpu::TextureFormat format; // GPUTextureFormat
16
- std::optional<wgpu::TextureViewDimension>
17
- viewDimension; // GPUTextureViewDimension
18
- };
19
-
20
- } // namespace rnwgpu
21
-
22
- namespace rnwgpu {
23
-
24
- template <>
25
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUStorageTextureBindingLayout>> {
26
- static std::shared_ptr<rnwgpu::GPUStorageTextureBindingLayout>
27
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
28
- auto result = std::make_unique<rnwgpu::GPUStorageTextureBindingLayout>();
29
- if (!outOfBounds && arg.isObject()) {
30
- auto value = arg.getObject(runtime);
31
- if (value.hasProperty(runtime, "access")) {
32
- auto prop = value.getProperty(runtime, "access");
33
- result->access =
34
- JSIConverter<std::optional<wgpu::StorageTextureAccess>>::fromJSI(
35
- runtime, prop, false);
36
- }
37
- if (value.hasProperty(runtime, "format")) {
38
- auto prop = value.getProperty(runtime, "format");
39
- result->format =
40
- JSIConverter<wgpu::TextureFormat>::fromJSI(runtime, prop, false);
41
- }
42
- if (value.hasProperty(runtime, "viewDimension")) {
43
- auto prop = value.getProperty(runtime, "viewDimension");
44
- result->viewDimension =
45
- JSIConverter<std::optional<wgpu::TextureViewDimension>>::fromJSI(
46
- runtime, prop, false);
47
- }
48
- }
49
-
50
- return result;
51
- }
52
- static jsi::Value
53
- toJSI(jsi::Runtime &runtime,
54
- std::shared_ptr<rnwgpu::GPUStorageTextureBindingLayout> arg) {
55
- throw std::runtime_error("Invalid GPUStorageTextureBindingLayout::toJSI()");
56
- }
57
- };
58
-
59
- } // namespace rnwgpu
@@ -1,59 +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 GPUTextureBindingLayout {
14
- std::optional<wgpu::TextureSampleType> sampleType; // GPUTextureSampleType
15
- std::optional<wgpu::TextureViewDimension>
16
- viewDimension; // GPUTextureViewDimension
17
- std::optional<bool> multisampled; // boolean
18
- };
19
-
20
- } // namespace rnwgpu
21
-
22
- namespace rnwgpu {
23
-
24
- template <>
25
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUTextureBindingLayout>> {
26
- static std::shared_ptr<rnwgpu::GPUTextureBindingLayout>
27
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
28
- auto result = std::make_unique<rnwgpu::GPUTextureBindingLayout>();
29
- if (!outOfBounds && arg.isObject()) {
30
- auto value = arg.getObject(runtime);
31
- if (value.hasProperty(runtime, "sampleType")) {
32
- auto prop = value.getProperty(runtime, "sampleType");
33
- result->sampleType =
34
- JSIConverter<std::optional<wgpu::TextureSampleType>>::fromJSI(
35
- runtime, prop, false);
36
- }
37
- if (value.hasProperty(runtime, "viewDimension")) {
38
- auto prop = value.getProperty(runtime, "viewDimension");
39
- result->viewDimension =
40
- JSIConverter<std::optional<wgpu::TextureViewDimension>>::fromJSI(
41
- runtime, prop, false);
42
- }
43
- if (value.hasProperty(runtime, "multisampled")) {
44
- auto prop = value.getProperty(runtime, "multisampled");
45
- result->multisampled =
46
- JSIConverter<std::optional<bool>>::fromJSI(runtime, prop, false);
47
- }
48
- }
49
-
50
- return result;
51
- }
52
- static jsi::Value
53
- toJSI(jsi::Runtime &runtime,
54
- std::shared_ptr<rnwgpu::GPUTextureBindingLayout> arg) {
55
- throw std::runtime_error("Invalid GPUTextureBindingLayout::toJSI()");
56
- }
57
- };
58
-
59
- } // namespace rnwgpu
@@ -1,91 +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 "rnwgpu/api/GPUExtent3D.h"
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- namespace rnwgpu {
16
-
17
- struct GPUTextureDescriptor {
18
- std::shared_ptr<GPUExtent3D> size; // GPUExtent3DStrict
19
- std::optional<double> mipLevelCount; // GPUIntegerCoordinate
20
- std::optional<double> sampleCount; // GPUSize32
21
- std::optional<wgpu::TextureDimension> dimension; // GPUTextureDimension
22
- wgpu::TextureFormat format; // GPUTextureFormat
23
- double usage; // GPUTextureUsageFlags
24
- std::optional<std::vector<wgpu::TextureFormat>>
25
- viewFormats; // Iterable<GPUTextureFormat>
26
- std::optional<std::string> label; // string
27
- };
28
-
29
- } // namespace rnwgpu
30
-
31
- namespace rnwgpu {
32
-
33
- template <> struct JSIConverter<std::shared_ptr<rnwgpu::GPUTextureDescriptor>> {
34
- static std::shared_ptr<rnwgpu::GPUTextureDescriptor>
35
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
36
- auto result = std::make_unique<rnwgpu::GPUTextureDescriptor>();
37
- if (!outOfBounds && arg.isObject()) {
38
- auto value = arg.getObject(runtime);
39
- if (value.hasProperty(runtime, "size")) {
40
- auto prop = value.getProperty(runtime, "size");
41
- result->size = JSIConverter<std::shared_ptr<GPUExtent3D>>::fromJSI(
42
- runtime, prop, false);
43
- }
44
- if (value.hasProperty(runtime, "mipLevelCount")) {
45
- auto prop = value.getProperty(runtime, "mipLevelCount");
46
- result->mipLevelCount =
47
- JSIConverter<std::optional<double>>::fromJSI(runtime, prop, false);
48
- }
49
- if (value.hasProperty(runtime, "sampleCount")) {
50
- auto prop = value.getProperty(runtime, "sampleCount");
51
- result->sampleCount =
52
- JSIConverter<std::optional<double>>::fromJSI(runtime, prop, false);
53
- }
54
- if (value.hasProperty(runtime, "dimension")) {
55
- auto prop = value.getProperty(runtime, "dimension");
56
- result->dimension =
57
- JSIConverter<std::optional<wgpu::TextureDimension>>::fromJSI(
58
- runtime, prop, false);
59
- }
60
- if (value.hasProperty(runtime, "format")) {
61
- auto prop = value.getProperty(runtime, "format");
62
- result->format =
63
- JSIConverter<wgpu::TextureFormat>::fromJSI(runtime, prop, false);
64
- }
65
- if (value.hasProperty(runtime, "usage")) {
66
- auto prop = value.getProperty(runtime, "usage");
67
- result->usage = JSIConverter<double>::fromJSI(runtime, prop, false);
68
- }
69
- if (value.hasProperty(runtime, "viewFormats")) {
70
- auto prop = value.getProperty(runtime, "viewFormats");
71
- result->viewFormats = JSIConverter<
72
- std::optional<std::vector<wgpu::TextureFormat>>>::fromJSI(runtime,
73
- prop,
74
- false);
75
- }
76
- if (value.hasProperty(runtime, "label")) {
77
- auto prop = value.getProperty(runtime, "label");
78
- result->label = JSIConverter<std::optional<std::string>>::fromJSI(
79
- runtime, prop, false);
80
- }
81
- }
82
-
83
- return result;
84
- }
85
- static jsi::Value toJSI(jsi::Runtime &runtime,
86
- std::shared_ptr<rnwgpu::GPUTextureDescriptor> arg) {
87
- throw std::runtime_error("Invalid GPUTextureDescriptor::toJSI()");
88
- }
89
- };
90
-
91
- } // namespace rnwgpu
@@ -1,29 +0,0 @@
1
- #pragma once
2
-
3
- #include <jsi/jsi.h>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- namespace rnwgpu {
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- class GPUTextureUsage {
12
- public:
13
- static jsi::Object create(jsi::Runtime &runtime) {
14
- jsi::Object obj(runtime);
15
- obj.setProperty(runtime, "COPY_SRC",
16
- static_cast<double>(wgpu::TextureUsage::CopySrc));
17
- obj.setProperty(runtime, "COPY_DST",
18
- static_cast<double>(wgpu::TextureUsage::CopyDst));
19
- obj.setProperty(runtime, "TEXTURE_BINDING",
20
- static_cast<double>(wgpu::TextureUsage::TextureBinding));
21
- obj.setProperty(runtime, "STORAGE_BINDING",
22
- static_cast<double>(wgpu::TextureUsage::StorageBinding));
23
- obj.setProperty(runtime, "RENDER_ATTACHMENT",
24
- static_cast<double>(wgpu::TextureUsage::RenderAttachment));
25
- return obj;
26
- }
27
- };
28
-
29
- } // namespace rnwgpu