react-native-wgpu 0.5.13 → 0.5.14

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 (405) hide show
  1. package/README.md +13 -386
  2. package/lib/commonjs/index.js +7 -4
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/module/index.js +4 -4
  5. package/lib/module/index.js.map +1 -1
  6. package/lib/typescript/webgpu/src/Canvas.d.ts.map +1 -0
  7. package/lib/typescript/webgpu/src/NativeWebGPUModule.d.ts.map +1 -0
  8. package/lib/typescript/webgpu/src/Offscreen.d.ts.map +1 -0
  9. package/lib/typescript/webgpu/src/WebGPUViewNativeComponent.d.ts.map +1 -0
  10. package/lib/typescript/webgpu/src/external/ModuleProxy.d.ts.map +1 -0
  11. package/lib/typescript/webgpu/src/external/index.d.ts.map +1 -0
  12. package/lib/typescript/webgpu/src/external/reanimated/ReanimatedProxy.d.ts.map +1 -0
  13. package/lib/typescript/webgpu/src/external/reanimated/index.d.ts.map +1 -0
  14. package/lib/typescript/webgpu/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -0
  15. package/lib/typescript/webgpu/src/hooks.d.ts.map +1 -0
  16. package/lib/typescript/webgpu/src/index.d.ts.map +1 -0
  17. package/lib/typescript/webgpu/src/main/index.d.ts.map +1 -0
  18. package/lib/typescript/webgpu/src/types.d.ts.map +1 -0
  19. package/lib/typescript/{eslint.config.d.mts.map → webgpu-shim/eslint.config.d.mts.map} +1 -1
  20. package/lib/typescript/{lib → webgpu-shim/lib}/commonjs/index.d.ts.map +1 -1
  21. package/lib/typescript/webgpu-shim/lib/module/index.d.ts +2 -0
  22. package/lib/typescript/{lib → webgpu-shim/lib}/module/index.d.ts.map +1 -1
  23. package/lib/typescript/webgpu-shim/src/index.d.ts +2 -0
  24. package/lib/typescript/webgpu-shim/src/index.d.ts.map +1 -0
  25. package/package.json +12 -81
  26. package/src/index.ts +9 -0
  27. package/LICENSE +0 -20
  28. package/android/CMakeLists.txt +0 -110
  29. package/android/build.gradle +0 -138
  30. package/android/cpp/AndroidPlatformContext.h +0 -328
  31. package/android/cpp/cpp-adapter.cpp +0 -71
  32. package/android/src/main/AndroidManifest.xml +0 -3
  33. package/android/src/main/java/com/webgpu/WebGPUAHBView.java +0 -298
  34. package/android/src/main/java/com/webgpu/WebGPUAPI.java +0 -20
  35. package/android/src/main/java/com/webgpu/WebGPUBaseView.java +0 -61
  36. package/android/src/main/java/com/webgpu/WebGPUModule.java +0 -50
  37. package/android/src/main/java/com/webgpu/WebGPUSurfaceView.java +0 -41
  38. package/android/src/main/java/com/webgpu/WebGPUSurfaceViewWithSC.java +0 -79
  39. package/android/src/main/java/com/webgpu/WebGPUTextureView.java +0 -46
  40. package/android/src/main/java/com/webgpu/WebGPUView.java +0 -108
  41. package/android/src/main/java/com/webgpu/WebGPUViewManager.java +0 -38
  42. package/android/src/main/java/com/webgpu/WebGPUViewPackage.java +0 -50
  43. package/android/src/newarch/com/webgpu/WebGPUViewManagerSpec.java +0 -24
  44. package/apple/ApplePlatformContext.h +0 -44
  45. package/apple/ApplePlatformContext.mm +0 -302
  46. package/apple/AppleVideoPlayer.h +0 -31
  47. package/apple/AppleVideoPlayer.mm +0 -314
  48. package/apple/MetalView.h +0 -13
  49. package/apple/MetalView.mm +0 -50
  50. package/apple/RNWGUIKit.h +0 -16
  51. package/apple/WebGPUModule.h +0 -13
  52. package/apple/WebGPUModule.mm +0 -89
  53. package/apple/WebGPUView.h +0 -12
  54. package/apple/WebGPUView.mm +0 -66
  55. package/cpp/WGPULogger.h +0 -100
  56. package/cpp/dawn_logging.cpp +0 -119
  57. package/cpp/jsi/EnumMapper.h +0 -45
  58. package/cpp/jsi/JSIConverter.h +0 -473
  59. package/cpp/jsi/NativeObject.h +0 -607
  60. package/cpp/jsi/Promise.cpp +0 -44
  61. package/cpp/jsi/Promise.h +0 -35
  62. package/cpp/jsi/RuntimeAwareCache.cpp +0 -7
  63. package/cpp/jsi/RuntimeAwareCache.h +0 -100
  64. package/cpp/jsi/RuntimeLifecycleMonitor.cpp +0 -72
  65. package/cpp/jsi/RuntimeLifecycleMonitor.h +0 -32
  66. package/cpp/rnwgpu/ArrayBuffer.h +0 -117
  67. package/cpp/rnwgpu/PlatformContext.h +0 -127
  68. package/cpp/rnwgpu/RNWebGPUManager.cpp +0 -237
  69. package/cpp/rnwgpu/RNWebGPUManager.h +0 -46
  70. package/cpp/rnwgpu/SurfaceRegistry.h +0 -230
  71. package/cpp/rnwgpu/api/Canvas.h +0 -57
  72. package/cpp/rnwgpu/api/Convertors.h +0 -783
  73. package/cpp/rnwgpu/api/External.h +0 -12
  74. package/cpp/rnwgpu/api/GPU.cpp +0 -154
  75. package/cpp/rnwgpu/api/GPU.h +0 -58
  76. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -267
  77. package/cpp/rnwgpu/api/GPUAdapter.h +0 -59
  78. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  79. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  80. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  81. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  82. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -97
  83. package/cpp/rnwgpu/api/GPUBuffer.h +0 -87
  84. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -67
  85. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -66
  86. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  87. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  88. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  89. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  90. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  91. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  92. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  93. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  94. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  95. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -545
  96. package/cpp/rnwgpu/api/GPUDevice.h +0 -265
  97. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  98. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  99. package/cpp/rnwgpu/api/GPUError.h +0 -35
  100. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  101. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +0 -335
  102. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -90
  103. package/cpp/rnwgpu/api/GPUFeatures.h +0 -206
  104. package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
  105. package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
  106. package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
  107. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
  108. package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
  109. package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
  110. package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
  111. package/cpp/rnwgpu/api/GPUQueue.cpp +0 -169
  112. package/cpp/rnwgpu/api/GPUQueue.h +0 -81
  113. package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
  114. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
  115. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
  116. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
  117. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
  118. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
  119. package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
  120. package/cpp/rnwgpu/api/GPUSampler.h +0 -44
  121. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -50
  122. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  123. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -80
  124. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -71
  125. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  126. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  127. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  128. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  129. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  130. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -71
  131. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  132. package/cpp/rnwgpu/api/ImageBitmap.h +0 -48
  133. package/cpp/rnwgpu/api/RNWebGPU.h +0 -241
  134. package/cpp/rnwgpu/api/RnFeatures.h +0 -53
  135. package/cpp/rnwgpu/api/VideoFrame.h +0 -76
  136. package/cpp/rnwgpu/api/VideoPlayer.h +0 -69
  137. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -65
  138. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -81
  139. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -57
  140. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -98
  141. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -58
  142. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -53
  143. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -57
  144. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -57
  145. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -60
  146. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  147. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  148. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -67
  149. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -59
  150. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  151. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -46
  152. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -46
  153. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -57
  154. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -59
  155. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -68
  156. package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +0 -57
  157. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -104
  158. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -115
  159. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -39
  160. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -82
  161. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -74
  162. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -63
  163. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  164. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -66
  165. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -82
  166. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -55
  167. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  168. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -55
  169. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -58
  170. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -70
  171. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -62
  172. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -56
  173. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -44
  174. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -46
  175. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -81
  176. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -82
  177. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -102
  178. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -93
  179. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -59
  180. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -104
  181. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -52
  182. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -46
  183. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -111
  184. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -61
  185. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -63
  186. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  187. package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +0 -62
  188. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -65
  189. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -60
  190. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -60
  191. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -92
  192. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  193. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -92
  194. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -65
  195. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -54
  196. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -63
  197. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -74
  198. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1979
  199. package/cpp/rnwgpu/async/AsyncDispatcher.h +0 -28
  200. package/cpp/rnwgpu/async/AsyncRunner.cpp +0 -215
  201. package/cpp/rnwgpu/async/AsyncRunner.h +0 -53
  202. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -181
  203. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -55
  204. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.cpp +0 -23
  205. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.h +0 -22
  206. package/cpp/webgpu/webgpu.h +0 -4979
  207. package/cpp/webgpu/webgpu_cpp.h +0 -10059
  208. package/cpp/webgpu/webgpu_cpp_chained_struct.h +0 -57
  209. package/cpp/webgpu/webgpu_cpp_print.h +0 -2844
  210. package/cpp/webgpu/webgpu_enum_class_bitmasks.h +0 -161
  211. package/lib/commonjs/Canvas.js +0 -55
  212. package/lib/commonjs/Canvas.js.map +0 -1
  213. package/lib/commonjs/NativeWebGPUModule.js +0 -10
  214. package/lib/commonjs/NativeWebGPUModule.js.map +0 -1
  215. package/lib/commonjs/Offscreen.js +0 -103
  216. package/lib/commonjs/Offscreen.js.map +0 -1
  217. package/lib/commonjs/WebGPUViewNativeComponent.js +0 -10
  218. package/lib/commonjs/WebGPUViewNativeComponent.js.map +0 -1
  219. package/lib/commonjs/WebGPUViewNativeComponent.web.js +0 -103
  220. package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +0 -1
  221. package/lib/commonjs/WebPolyfillGPUModule.js +0 -40
  222. package/lib/commonjs/WebPolyfillGPUModule.js.map +0 -1
  223. package/lib/commonjs/external/ModuleProxy.js +0 -36
  224. package/lib/commonjs/external/ModuleProxy.js.map +0 -1
  225. package/lib/commonjs/external/index.js +0 -17
  226. package/lib/commonjs/external/index.js.map +0 -1
  227. package/lib/commonjs/external/reanimated/ReanimatedProxy.js +0 -18
  228. package/lib/commonjs/external/reanimated/ReanimatedProxy.js.map +0 -1
  229. package/lib/commonjs/external/reanimated/index.js +0 -21
  230. package/lib/commonjs/external/reanimated/index.js.map +0 -1
  231. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js +0 -49
  232. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
  233. package/lib/commonjs/hooks.js +0 -83
  234. package/lib/commonjs/hooks.js.map +0 -1
  235. package/lib/commonjs/main/index.js +0 -91
  236. package/lib/commonjs/main/index.js.map +0 -1
  237. package/lib/commonjs/main/index.web.js +0 -51
  238. package/lib/commonjs/main/index.web.js.map +0 -1
  239. package/lib/commonjs/types.js +0 -2
  240. package/lib/commonjs/types.js.map +0 -1
  241. package/lib/commonjs/utils.js +0 -11
  242. package/lib/commonjs/utils.js.map +0 -1
  243. package/lib/module/Canvas.js +0 -46
  244. package/lib/module/Canvas.js.map +0 -1
  245. package/lib/module/NativeWebGPUModule.js +0 -4
  246. package/lib/module/NativeWebGPUModule.js.map +0 -1
  247. package/lib/module/Offscreen.js +0 -96
  248. package/lib/module/Offscreen.js.map +0 -1
  249. package/lib/module/WebGPUViewNativeComponent.js +0 -4
  250. package/lib/module/WebGPUViewNativeComponent.js.map +0 -1
  251. package/lib/module/WebGPUViewNativeComponent.web.js +0 -96
  252. package/lib/module/WebGPUViewNativeComponent.web.js.map +0 -1
  253. package/lib/module/WebPolyfillGPUModule.js +0 -38
  254. package/lib/module/WebPolyfillGPUModule.js.map +0 -1
  255. package/lib/module/external/ModuleProxy.js +0 -28
  256. package/lib/module/external/ModuleProxy.js.map +0 -1
  257. package/lib/module/external/index.js +0 -2
  258. package/lib/module/external/index.js.map +0 -1
  259. package/lib/module/external/reanimated/ReanimatedProxy.js +0 -12
  260. package/lib/module/external/reanimated/ReanimatedProxy.js.map +0 -1
  261. package/lib/module/external/reanimated/index.js +0 -3
  262. package/lib/module/external/reanimated/index.js.map +0 -1
  263. package/lib/module/external/reanimated/registerWebGPUForReanimated.js +0 -42
  264. package/lib/module/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
  265. package/lib/module/hooks.js +0 -70
  266. package/lib/module/hooks.js.map +0 -1
  267. package/lib/module/main/index.js +0 -33
  268. package/lib/module/main/index.js.map +0 -1
  269. package/lib/module/main/index.web.js +0 -8
  270. package/lib/module/main/index.web.js.map +0 -1
  271. package/lib/module/types.js +0 -2
  272. package/lib/module/types.js.map +0 -1
  273. package/lib/module/utils.js +0 -5
  274. package/lib/module/utils.js.map +0 -1
  275. package/lib/typescript/babel.config.d.ts +0 -3
  276. package/lib/typescript/babel.config.d.ts.map +0 -1
  277. package/lib/typescript/jest.config.d.ts +0 -9
  278. package/lib/typescript/jest.config.d.ts.map +0 -1
  279. package/lib/typescript/lib/commonjs/Canvas.d.ts +0 -7
  280. package/lib/typescript/lib/commonjs/Canvas.d.ts.map +0 -1
  281. package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts +0 -5
  282. package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts.map +0 -1
  283. package/lib/typescript/lib/commonjs/Offscreen.d.ts +0 -26
  284. package/lib/typescript/lib/commonjs/Offscreen.d.ts.map +0 -1
  285. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts +0 -5
  286. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts.map +0 -1
  287. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts +0 -4
  288. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  289. package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts +0 -2
  290. package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts.map +0 -1
  291. package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts +0 -12
  292. package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts.map +0 -1
  293. package/lib/typescript/lib/commonjs/external/index.d.ts.map +0 -1
  294. package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts +0 -6
  295. package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  296. package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts +0 -4
  297. package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts.map +0 -1
  298. package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts +0 -9
  299. package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  300. package/lib/typescript/lib/commonjs/hooks.d.ts +0 -18
  301. package/lib/typescript/lib/commonjs/hooks.d.ts.map +0 -1
  302. package/lib/typescript/lib/commonjs/index.d.ts +0 -2
  303. package/lib/typescript/lib/commonjs/main/index.d.ts +0 -3
  304. package/lib/typescript/lib/commonjs/main/index.d.ts.map +0 -1
  305. package/lib/typescript/lib/commonjs/main/index.web.d.ts +0 -2
  306. package/lib/typescript/lib/commonjs/main/index.web.d.ts.map +0 -1
  307. package/lib/typescript/lib/commonjs/types.d.ts +0 -1
  308. package/lib/typescript/lib/commonjs/types.d.ts.map +0 -1
  309. package/lib/typescript/lib/commonjs/utils.d.ts +0 -3
  310. package/lib/typescript/lib/commonjs/utils.d.ts.map +0 -1
  311. package/lib/typescript/lib/module/Canvas.d.ts +0 -8
  312. package/lib/typescript/lib/module/Canvas.d.ts.map +0 -1
  313. package/lib/typescript/lib/module/NativeWebGPUModule.d.ts +0 -3
  314. package/lib/typescript/lib/module/NativeWebGPUModule.d.ts.map +0 -1
  315. package/lib/typescript/lib/module/Offscreen.d.ts +0 -25
  316. package/lib/typescript/lib/module/Offscreen.d.ts.map +0 -1
  317. package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts +0 -3
  318. package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts.map +0 -1
  319. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts +0 -3
  320. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  321. package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts +0 -2
  322. package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts.map +0 -1
  323. package/lib/typescript/lib/module/external/ModuleProxy.d.ts +0 -7
  324. package/lib/typescript/lib/module/external/ModuleProxy.d.ts.map +0 -1
  325. package/lib/typescript/lib/module/external/index.d.ts.map +0 -1
  326. package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts +0 -5
  327. package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  328. package/lib/typescript/lib/module/external/reanimated/index.d.ts.map +0 -1
  329. package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts +0 -2
  330. package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  331. package/lib/typescript/lib/module/hooks.d.ts +0 -18
  332. package/lib/typescript/lib/module/hooks.d.ts.map +0 -1
  333. package/lib/typescript/lib/module/index.d.ts +0 -2
  334. package/lib/typescript/lib/module/main/index.d.ts.map +0 -1
  335. package/lib/typescript/lib/module/main/index.web.d.ts +0 -5
  336. package/lib/typescript/lib/module/main/index.web.d.ts.map +0 -1
  337. package/lib/typescript/lib/module/types.d.ts +0 -1
  338. package/lib/typescript/lib/module/types.d.ts.map +0 -1
  339. package/lib/typescript/lib/module/utils.d.ts +0 -2
  340. package/lib/typescript/lib/module/utils.d.ts.map +0 -1
  341. package/lib/typescript/src/Canvas.d.ts.map +0 -1
  342. package/lib/typescript/src/NativeWebGPUModule.d.ts.map +0 -1
  343. package/lib/typescript/src/Offscreen.d.ts.map +0 -1
  344. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +0 -1
  345. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +0 -9
  346. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  347. package/lib/typescript/src/WebPolyfillGPUModule.d.ts +0 -2
  348. package/lib/typescript/src/WebPolyfillGPUModule.d.ts.map +0 -1
  349. package/lib/typescript/src/external/ModuleProxy.d.ts.map +0 -1
  350. package/lib/typescript/src/external/index.d.ts +0 -2
  351. package/lib/typescript/src/external/index.d.ts.map +0 -1
  352. package/lib/typescript/src/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  353. package/lib/typescript/src/external/reanimated/index.d.ts +0 -3
  354. package/lib/typescript/src/external/reanimated/index.d.ts.map +0 -1
  355. package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  356. package/lib/typescript/src/hooks.d.ts.map +0 -1
  357. package/lib/typescript/src/index.d.ts.map +0 -1
  358. package/lib/typescript/src/main/index.d.ts +0 -6
  359. package/lib/typescript/src/main/index.d.ts.map +0 -1
  360. package/lib/typescript/src/main/index.web.d.ts +0 -6
  361. package/lib/typescript/src/main/index.web.d.ts.map +0 -1
  362. package/lib/typescript/src/types.d.ts.map +0 -1
  363. package/lib/typescript/src/utils.d.ts +0 -2
  364. package/lib/typescript/src/utils.d.ts.map +0 -1
  365. package/libs/android/arm64-v8a/libwebgpu_dawn.so +0 -0
  366. package/libs/android/armeabi-v7a/libwebgpu_dawn.so +0 -0
  367. package/libs/android/x86/libwebgpu_dawn.so +0 -0
  368. package/libs/android/x86_64/libwebgpu_dawn.so +0 -0
  369. package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +0 -59
  370. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
  371. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
  372. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
  373. package/react-native-wgpu.podspec +0 -47
  374. package/src/Canvas.tsx +0 -76
  375. package/src/NativeWebGPUModule.ts +0 -9
  376. package/src/Offscreen.ts +0 -113
  377. package/src/WebGPUViewNativeComponent.ts +0 -11
  378. package/src/WebGPUViewNativeComponent.web.ts +0 -113
  379. package/src/WebPolyfillGPUModule.ts +0 -53
  380. package/src/external/ModuleProxy.ts +0 -30
  381. package/src/external/index.ts +0 -1
  382. package/src/external/reanimated/ReanimatedProxy.ts +0 -19
  383. package/src/external/reanimated/index.ts +0 -2
  384. package/src/external/reanimated/registerWebGPUForReanimated.ts +0 -43
  385. package/src/hooks.tsx +0 -93
  386. package/src/index.tsx +0 -91
  387. package/src/main/index.tsx +0 -40
  388. package/src/main/index.web.tsx +0 -8
  389. package/src/types.ts +0 -102
  390. package/src/utils.ts +0 -4
  391. /package/lib/typescript/{src → webgpu/src}/Canvas.d.ts +0 -0
  392. /package/lib/typescript/{src → webgpu/src}/NativeWebGPUModule.d.ts +0 -0
  393. /package/lib/typescript/{src → webgpu/src}/Offscreen.d.ts +0 -0
  394. /package/lib/typescript/{src → webgpu/src}/WebGPUViewNativeComponent.d.ts +0 -0
  395. /package/lib/typescript/{src → webgpu/src}/external/ModuleProxy.d.ts +0 -0
  396. /package/lib/typescript/{lib/module → webgpu/src}/external/index.d.ts +0 -0
  397. /package/lib/typescript/{src → webgpu/src}/external/reanimated/ReanimatedProxy.d.ts +0 -0
  398. /package/lib/typescript/{lib/module → webgpu/src}/external/reanimated/index.d.ts +0 -0
  399. /package/lib/typescript/{src → webgpu/src}/external/reanimated/registerWebGPUForReanimated.d.ts +0 -0
  400. /package/lib/typescript/{src → webgpu/src}/hooks.d.ts +0 -0
  401. /package/lib/typescript/{src → webgpu/src}/index.d.ts +0 -0
  402. /package/lib/typescript/{lib/module → webgpu/src}/main/index.d.ts +0 -0
  403. /package/lib/typescript/{src → webgpu/src}/types.d.ts +0 -0
  404. /package/lib/typescript/{eslint.config.d.mts → webgpu-shim/eslint.config.d.mts} +0 -0
  405. /package/lib/typescript/{lib/commonjs/external → webgpu-shim/lib/commonjs}/index.d.ts +0 -0
@@ -1,55 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "JSIConverter.h"
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- namespace rnwgpu {
10
-
11
- struct GPUOrigin2D {
12
- double x = 0;
13
- double y = 0;
14
- };
15
-
16
- template <> struct JSIConverter<std::shared_ptr<GPUOrigin2D>> {
17
- static std::shared_ptr<GPUOrigin2D>
18
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
19
- auto result = std::make_unique<GPUOrigin2D>();
20
- if (!outOfBounds && arg.isObject()) {
21
- if (arg.getObject(runtime).isArray(runtime)) {
22
- auto array = arg.getObject(runtime).asArray(runtime);
23
- auto size = array.size(runtime);
24
- if (size == 0) {
25
- throw std::runtime_error(
26
- "Expected an array of size >1 for GPUTExtent2D");
27
- }
28
- if (size > 0) {
29
- result->x = array.getValueAtIndex(runtime, 0).asNumber();
30
- }
31
- if (size > 1) {
32
- result->y = array.getValueAtIndex(runtime, 1).asNumber();
33
- }
34
- } else {
35
- auto object = arg.getObject(runtime);
36
- if (object.hasProperty(runtime, "x")) {
37
- result->x = object.getProperty(runtime, "x").asNumber();
38
- }
39
- if (object.hasProperty(runtime, "y")) {
40
- result->y = object.getProperty(runtime, "y").asNumber();
41
- }
42
- }
43
- } else {
44
- throw std::runtime_error("Expected an object for GPUOrigin3D");
45
- }
46
- return result;
47
- }
48
- static jsi::Value toJSI(jsi::Runtime &runtime,
49
- std::shared_ptr<GPUOrigin2D> arg) {
50
- // No conversions here
51
- return jsi::Value::null();
52
- }
53
- };
54
-
55
- } // namespace rnwgpu
@@ -1,62 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "JSIConverter.h"
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- namespace rnwgpu {
10
-
11
- struct GPUOrigin3D {
12
- double x = 0;
13
- double y = 0;
14
- double z = 0;
15
- };
16
-
17
- template <> struct JSIConverter<std::shared_ptr<GPUOrigin3D>> {
18
- static std::shared_ptr<GPUOrigin3D>
19
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
20
- auto result = std::make_unique<GPUOrigin3D>();
21
- if (!outOfBounds && arg.isObject()) {
22
- if (arg.getObject(runtime).isArray(runtime)) {
23
- auto array = arg.getObject(runtime).asArray(runtime);
24
- auto size = array.size(runtime);
25
- if (size == 0) {
26
- throw std::runtime_error(
27
- "Expected an array of size >1 for GPUTExtent3D");
28
- }
29
- if (size > 0) {
30
- result->x = array.getValueAtIndex(runtime, 0).asNumber();
31
- }
32
- if (size > 1) {
33
- result->y = array.getValueAtIndex(runtime, 1).asNumber();
34
- }
35
- if (size > 2) {
36
- result->z = array.getValueAtIndex(runtime, 2).asNumber();
37
- }
38
- } else {
39
- auto object = arg.getObject(runtime);
40
- if (object.hasProperty(runtime, "x")) {
41
- result->x = object.getProperty(runtime, "x").asNumber();
42
- }
43
- if (object.hasProperty(runtime, "y")) {
44
- result->y = object.getProperty(runtime, "y").asNumber();
45
- }
46
- if (object.hasProperty(runtime, "z")) {
47
- result->z = object.getProperty(runtime, "z").asNumber();
48
- }
49
- }
50
- } else {
51
- throw std::runtime_error("Expected an object for GPUOrigin3D");
52
- }
53
- return result;
54
- }
55
- static jsi::Value toJSI(jsi::Runtime &runtime,
56
- std::shared_ptr<GPUOrigin3D> arg) {
57
- // No conversions here
58
- return jsi::Value::null();
59
- }
60
- };
61
-
62
- } // namespace rnwgpu
@@ -1,33 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "NativeObject.h"
6
-
7
- namespace rnwgpu {
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- class GPUOutOfMemoryError : public NativeObject<GPUOutOfMemoryError> {
12
- public:
13
- static constexpr const char *CLASS_NAME = "GPUOutOfMemoryError";
14
-
15
- explicit GPUOutOfMemoryError(std::string message)
16
- : NativeObject(CLASS_NAME), _message(std::move(message)) {}
17
-
18
- public:
19
- std::string getBrand() { return CLASS_NAME; }
20
- std::string getMessage() { return _message; }
21
-
22
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
23
- installGetter(runtime, prototype, "__brand",
24
- &GPUOutOfMemoryError::getBrand);
25
- installGetter(runtime, prototype, "message",
26
- &GPUOutOfMemoryError::getMessage);
27
- }
28
-
29
- private:
30
- std::string _message;
31
- };
32
-
33
- } // namespace rnwgpu
@@ -1,45 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "Unions.h"
6
-
7
- #include "NativeObject.h"
8
-
9
- #include "webgpu/webgpu_cpp.h"
10
-
11
- namespace rnwgpu {
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- class GPUPipelineLayout : public NativeObject<GPUPipelineLayout> {
16
- public:
17
- static constexpr const char *CLASS_NAME = "GPUPipelineLayout";
18
-
19
- explicit GPUPipelineLayout(wgpu::PipelineLayout instance, std::string label)
20
- : NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
21
-
22
- public:
23
- std::string getBrand() { return CLASS_NAME; }
24
-
25
- std::string getLabel() { return _label; }
26
- void setLabel(const std::string &label) {
27
- _label = label;
28
- _instance.SetLabel(_label.c_str());
29
- }
30
-
31
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
32
- installGetter(runtime, prototype, "__brand", &GPUPipelineLayout::getBrand);
33
- installGetterSetter(runtime, prototype, "label",
34
- &GPUPipelineLayout::getLabel,
35
- &GPUPipelineLayout::setLabel);
36
- }
37
-
38
- inline const wgpu::PipelineLayout get() { return _instance; }
39
-
40
- private:
41
- wgpu::PipelineLayout _instance;
42
- std::string _label;
43
- };
44
-
45
- } // namespace rnwgpu
@@ -1,11 +0,0 @@
1
- #include "GPUQuerySet.h"
2
-
3
- namespace rnwgpu {
4
-
5
- void GPUQuerySet::destroy() { _instance.Destroy(); }
6
-
7
- wgpu::QueryType GPUQuerySet::getType() { return _instance.GetType(); }
8
-
9
- uint32_t GPUQuerySet::getCount() { return _instance.GetCount(); }
10
-
11
- } // namespace rnwgpu
@@ -1,73 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "Unions.h"
6
-
7
- #include "NativeObject.h"
8
-
9
- #include "webgpu/webgpu_cpp.h"
10
-
11
- namespace rnwgpu {
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- class GPUQuerySet : public NativeObject<GPUQuerySet> {
16
- public:
17
- static constexpr const char *CLASS_NAME = "GPUQuerySet";
18
-
19
- explicit GPUQuerySet(wgpu::QuerySet instance, std::string label)
20
- : NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
21
-
22
- public:
23
- std::string getBrand() { return CLASS_NAME; }
24
-
25
- void destroy();
26
-
27
- wgpu::QueryType getType();
28
- uint32_t getCount();
29
-
30
- std::string getLabel() { return _label; }
31
- void setLabel(const std::string &label) {
32
- _label = label;
33
- _instance.SetLabel(_label.c_str());
34
- }
35
-
36
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
37
- installGetter(runtime, prototype, "__brand", &GPUQuerySet::getBrand);
38
- installMethod(runtime, prototype, "destroy", &GPUQuerySet::destroy);
39
- installGetter(runtime, prototype, "type", &GPUQuerySet::getType);
40
- installGetter(runtime, prototype, "count", &GPUQuerySet::getCount);
41
- installGetterSetter(runtime, prototype, "label", &GPUQuerySet::getLabel,
42
- &GPUQuerySet::setLabel);
43
- }
44
-
45
- inline const wgpu::QuerySet get() { return _instance; }
46
-
47
- size_t getMemoryPressure() override {
48
- uint32_t count = getCount();
49
- wgpu::QueryType type = getType();
50
-
51
- // Estimate bytes per query based on type
52
- size_t bytesPerQuery = 8; // Default estimate
53
- switch (type) {
54
- case wgpu::QueryType::Occlusion:
55
- bytesPerQuery = 8; // 64-bit counter
56
- break;
57
- case wgpu::QueryType::Timestamp:
58
- bytesPerQuery = 8; // 64-bit timestamp
59
- break;
60
- default:
61
- bytesPerQuery = 8; // Safe default
62
- break;
63
- }
64
-
65
- return static_cast<size_t>(count) * bytesPerQuery;
66
- }
67
-
68
- private:
69
- wgpu::QuerySet _instance;
70
- std::string _label;
71
- };
72
-
73
- } // namespace rnwgpu
@@ -1,169 +0,0 @@
1
- #include "GPUQueue.h"
2
-
3
- #include <limits>
4
- #include <memory>
5
- #include <vector>
6
-
7
- #include "Convertors.h"
8
-
9
- namespace rnwgpu {
10
-
11
- struct BufferSource {
12
- void *data;
13
- size_t size; // in bytes
14
- size_t bytesPerElement; // 1 for ArrayBuffers
15
- };
16
-
17
- void GPUQueue::submit(
18
- std::vector<std::shared_ptr<GPUCommandBuffer>> commandBuffers) {
19
- std::vector<wgpu::CommandBuffer> bufs(commandBuffers.size());
20
- for (size_t i = 0; i < commandBuffers.size(); i++) {
21
- bufs[i] = commandBuffers[i]->get();
22
- }
23
- Convertor conv;
24
- uint32_t bufs_size;
25
- if (!conv(bufs_size, bufs.size())) {
26
- return;
27
- }
28
- _instance.Submit(bufs_size, bufs.data());
29
- }
30
-
31
- void GPUQueue::writeBuffer(std::shared_ptr<GPUBuffer> buffer,
32
- uint64_t bufferOffset,
33
- std::shared_ptr<ArrayBuffer> data,
34
- std::optional<uint64_t> dataOffsetElements,
35
- std::optional<size_t> sizeElements) {
36
- wgpu::Buffer buf = buffer->get();
37
- BufferSource src{.data = data->_data,
38
- .size = data->_size,
39
- .bytesPerElement = data->_bytesPerElement};
40
-
41
- // Note that in the JS semantics of WebGPU, writeBuffer works in number of
42
- // elements of the typed arrays.
43
- if (dataOffsetElements >
44
- static_cast<uint64_t>(src.size / src.bytesPerElement)) {
45
- throw std::runtime_error("dataOffset is larger than data's size.");
46
- return;
47
- }
48
- uint64_t dataOffset = dataOffsetElements.value_or(0) * src.bytesPerElement;
49
- src.data = reinterpret_cast<uint8_t *>(src.data) + dataOffset;
50
- src.size -= dataOffset;
51
-
52
- // Size defaults to dataSize - dataOffset. Instead of computing in elements,
53
- // we directly use it in bytes, and convert the provided value, if any, in
54
- // bytes.
55
- uint64_t size64 = static_cast<uint64_t>(src.size);
56
- if (sizeElements.has_value()) {
57
- if (sizeElements.value() >
58
- std::numeric_limits<uint64_t>::max() / src.bytesPerElement) {
59
- throw std::runtime_error("size overflows.");
60
- return;
61
- }
62
- size64 = sizeElements.value() * src.bytesPerElement;
63
- }
64
-
65
- if (size64 > static_cast<uint64_t>(src.size)) {
66
- throw std::runtime_error("size + dataOffset is larger than data's size.");
67
- return;
68
- }
69
-
70
- if (size64 % 4 != 0) {
71
- throw std::runtime_error("size is not a multiple of 4 bytes.");
72
-
73
- return;
74
- }
75
-
76
- assert(size64 <= std::numeric_limits<size_t>::max());
77
- _instance.WriteBuffer(buf, bufferOffset, src.data,
78
- static_cast<size_t>(size64));
79
- }
80
-
81
- async::AsyncTaskHandle GPUQueue::onSubmittedWorkDone() {
82
- auto queue = _instance;
83
- return _async->postTask(
84
- [queue](const async::AsyncTaskHandle::ResolveFunction &resolve,
85
- const async::AsyncTaskHandle::RejectFunction &reject) {
86
- queue.OnSubmittedWorkDone(
87
- wgpu::CallbackMode::AllowProcessEvents,
88
- [resolve, reject](wgpu::QueueWorkDoneStatus status,
89
- wgpu::StringView message) {
90
- if (status == wgpu::QueueWorkDoneStatus::Success) {
91
- resolve(nullptr);
92
- } else {
93
- std::string error =
94
- message.length ? std::string(message.data, message.length)
95
- : "Queue work did not complete successfully";
96
- reject(std::move(error));
97
- }
98
- });
99
- });
100
- }
101
-
102
- void GPUQueue::copyExternalImageToTexture(
103
- std::shared_ptr<GPUImageCopyExternalImage> source,
104
- std::shared_ptr<GPUImageCopyTextureTagged> destination,
105
- std::shared_ptr<GPUExtent3D> size) {
106
- wgpu::TexelCopyTextureInfo dst{};
107
- wgpu::TexelCopyBufferLayout layout{};
108
- wgpu::Extent3D sz{};
109
- Convertor conv;
110
- uint32_t bytesPerPixel =
111
- source->source->getSize() /
112
- (source->source->getWidth() * source->source->getHeight());
113
- auto dataLayout = std::make_shared<GPUImageDataLayout>(GPUImageDataLayout{
114
- std::optional<double>{0.0},
115
- std::optional<double>{
116
- static_cast<double>(bytesPerPixel * source->source->getWidth())},
117
- std::optional<double>{static_cast<double>(source->source->getHeight())}});
118
- if (!conv(dst.aspect, destination->aspect) ||
119
- !conv(dst.mipLevel, destination->mipLevel) ||
120
- !conv(dst.origin, destination->origin) ||
121
- !conv(dst.texture, destination->texture) ||
122
- !conv(layout, dataLayout) || //
123
- !conv(sz, size)) {
124
- throw std::runtime_error("Invalid input for GPUQueue::writeTexture()");
125
- }
126
-
127
- if (source->flipY.value_or(false)) {
128
- // Calculate the row size and total size
129
- uint32_t rowSize = bytesPerPixel * source->source->getWidth();
130
- uint32_t totalSize = source->source->getSize();
131
-
132
- // Create a new buffer for the flipped data
133
- std::vector<uint8_t> flippedData(totalSize);
134
-
135
- // Flip the data vertically
136
- for (uint32_t row = 0; row < source->source->getHeight(); ++row) {
137
- std::memcpy(flippedData.data() +
138
- (source->source->getHeight() - 1 - row) * rowSize,
139
- static_cast<const uint8_t *>(source->source->getData()) +
140
- row * rowSize,
141
- rowSize);
142
- }
143
- // Use the flipped data for writing to texture
144
- _instance.WriteTexture(&dst, flippedData.data(), totalSize, &layout, &sz);
145
- } else {
146
-
147
- _instance.WriteTexture(&dst, source->source->getData(),
148
- source->source->getSize(), &layout, &sz);
149
- }
150
- }
151
-
152
- void GPUQueue::writeTexture(std::shared_ptr<GPUImageCopyTexture> destination,
153
- std::shared_ptr<ArrayBuffer> data,
154
- std::shared_ptr<GPUImageDataLayout> dataLayout,
155
- std::shared_ptr<GPUExtent3D> size) {
156
- wgpu::TexelCopyTextureInfo dst{};
157
- wgpu::TexelCopyBufferLayout layout{};
158
- wgpu::Extent3D sz{};
159
- Convertor conv;
160
- if (!conv(dst, destination) || //
161
- !conv(layout, dataLayout) || //
162
- !conv(sz, size)) {
163
- throw std::runtime_error("Invalid input for GPUQueue::writeTexture()");
164
- }
165
-
166
- _instance.WriteTexture(&dst, data->_data, data->_size, &layout, &sz);
167
- }
168
-
169
- } // namespace rnwgpu
@@ -1,81 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <vector>
6
-
7
- #include "Unions.h"
8
-
9
- #include "NativeObject.h"
10
-
11
- #include "rnwgpu/async/AsyncRunner.h"
12
- #include "rnwgpu/async/AsyncTaskHandle.h"
13
-
14
- #include "webgpu/webgpu_cpp.h"
15
-
16
- #include "ArrayBuffer.h"
17
- #include "GPUBuffer.h"
18
- #include "GPUCommandBuffer.h"
19
- #include "GPUImageCopyExternalImage.h"
20
- #include "GPUImageCopyTextureTagged.h"
21
-
22
- namespace rnwgpu {
23
-
24
- namespace jsi = facebook::jsi;
25
-
26
- class GPUQueue : public NativeObject<GPUQueue> {
27
- public:
28
- static constexpr const char *CLASS_NAME = "GPUQueue";
29
-
30
- explicit GPUQueue(wgpu::Queue instance,
31
- std::shared_ptr<async::AsyncRunner> async,
32
- std::string label)
33
- : NativeObject(CLASS_NAME), _instance(instance), _async(async),
34
- _label(label) {}
35
-
36
- public:
37
- std::string getBrand() { return CLASS_NAME; }
38
-
39
- void submit(std::vector<std::shared_ptr<GPUCommandBuffer>> commandBuffers);
40
- async::AsyncTaskHandle onSubmittedWorkDone();
41
- void writeBuffer(std::shared_ptr<GPUBuffer> buffer, uint64_t bufferOffset,
42
- std::shared_ptr<ArrayBuffer> data,
43
- std::optional<uint64_t> dataOffsetElements,
44
- std::optional<size_t> sizeElements);
45
- void writeTexture(std::shared_ptr<GPUImageCopyTexture> destination,
46
- std::shared_ptr<ArrayBuffer> data,
47
- std::shared_ptr<GPUImageDataLayout> dataLayout,
48
- std::shared_ptr<GPUExtent3D> size);
49
- void copyExternalImageToTexture(
50
- std::shared_ptr<GPUImageCopyExternalImage> source,
51
- std::shared_ptr<GPUImageCopyTextureTagged> destination,
52
- std::shared_ptr<GPUExtent3D> copySize);
53
-
54
- std::string getLabel() { return _label; }
55
- void setLabel(const std::string &label) {
56
- _label = label;
57
- _instance.SetLabel(_label.c_str());
58
- }
59
-
60
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
61
- installGetter(runtime, prototype, "__brand", &GPUQueue::getBrand);
62
- installMethod(runtime, prototype, "submit", &GPUQueue::submit);
63
- installMethod(runtime, prototype, "onSubmittedWorkDone",
64
- &GPUQueue::onSubmittedWorkDone);
65
- installMethod(runtime, prototype, "writeBuffer", &GPUQueue::writeBuffer);
66
- installMethod(runtime, prototype, "writeTexture", &GPUQueue::writeTexture);
67
- installMethod(runtime, prototype, "copyExternalImageToTexture",
68
- &GPUQueue::copyExternalImageToTexture);
69
- installGetterSetter(runtime, prototype, "label", &GPUQueue::getLabel,
70
- &GPUQueue::setLabel);
71
- }
72
-
73
- inline const wgpu::Queue get() { return _instance; }
74
-
75
- private:
76
- wgpu::Queue _instance;
77
- std::shared_ptr<async::AsyncRunner> _async;
78
- std::string _label;
79
- };
80
-
81
- } // namespace rnwgpu
@@ -1,44 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "Unions.h"
6
-
7
- #include "NativeObject.h"
8
-
9
- #include "webgpu/webgpu_cpp.h"
10
-
11
- namespace rnwgpu {
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- class GPURenderBundle : public NativeObject<GPURenderBundle> {
16
- public:
17
- static constexpr const char *CLASS_NAME = "GPURenderBundle";
18
-
19
- explicit GPURenderBundle(wgpu::RenderBundle instance, std::string label)
20
- : NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
21
-
22
- public:
23
- std::string getBrand() { return CLASS_NAME; }
24
-
25
- std::string getLabel() { return _label; }
26
- void setLabel(const std::string &label) {
27
- _label = label;
28
- _instance.SetLabel(_label.c_str());
29
- }
30
-
31
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
32
- installGetter(runtime, prototype, "__brand", &GPURenderBundle::getBrand);
33
- installGetterSetter(runtime, prototype, "label", &GPURenderBundle::getLabel,
34
- &GPURenderBundle::setLabel);
35
- }
36
-
37
- inline const wgpu::RenderBundle get() { return _instance; }
38
-
39
- private:
40
- wgpu::RenderBundle _instance;
41
- std::string _label;
42
- };
43
-
44
- } // namespace rnwgpu