react-native-webgpu 0.5.11

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 (378) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +319 -0
  3. package/android/CMakeLists.txt +108 -0
  4. package/android/build.gradle +138 -0
  5. package/android/cpp/AndroidPlatformContext.h +207 -0
  6. package/android/cpp/cpp-adapter.cpp +71 -0
  7. package/android/src/main/AndroidManifest.xml +3 -0
  8. package/android/src/main/java/com/webgpu/WebGPUAHBView.java +298 -0
  9. package/android/src/main/java/com/webgpu/WebGPUAPI.java +20 -0
  10. package/android/src/main/java/com/webgpu/WebGPUBaseView.java +61 -0
  11. package/android/src/main/java/com/webgpu/WebGPUModule.java +50 -0
  12. package/android/src/main/java/com/webgpu/WebGPUSurfaceView.java +41 -0
  13. package/android/src/main/java/com/webgpu/WebGPUSurfaceViewWithSC.java +79 -0
  14. package/android/src/main/java/com/webgpu/WebGPUTextureView.java +46 -0
  15. package/android/src/main/java/com/webgpu/WebGPUView.java +108 -0
  16. package/android/src/main/java/com/webgpu/WebGPUViewManager.java +38 -0
  17. package/android/src/main/java/com/webgpu/WebGPUViewPackage.java +50 -0
  18. package/android/src/newarch/com/webgpu/WebGPUViewManagerSpec.java +24 -0
  19. package/apple/ApplePlatformContext.h +31 -0
  20. package/apple/ApplePlatformContext.mm +157 -0
  21. package/apple/MetalView.h +13 -0
  22. package/apple/MetalView.mm +50 -0
  23. package/apple/RNWGUIKit.h +16 -0
  24. package/apple/WebGPUModule.h +13 -0
  25. package/apple/WebGPUModule.mm +89 -0
  26. package/apple/WebGPUView.h +12 -0
  27. package/apple/WebGPUView.mm +66 -0
  28. package/cpp/WGPULogger.h +100 -0
  29. package/cpp/dawn_logging.cpp +119 -0
  30. package/cpp/jsi/EnumMapper.h +45 -0
  31. package/cpp/jsi/JSIConverter.h +473 -0
  32. package/cpp/jsi/NativeObject.h +607 -0
  33. package/cpp/jsi/Promise.cpp +44 -0
  34. package/cpp/jsi/Promise.h +35 -0
  35. package/cpp/jsi/RuntimeAwareCache.cpp +7 -0
  36. package/cpp/jsi/RuntimeAwareCache.h +100 -0
  37. package/cpp/jsi/RuntimeLifecycleMonitor.cpp +72 -0
  38. package/cpp/jsi/RuntimeLifecycleMonitor.h +32 -0
  39. package/cpp/rnwgpu/ArrayBuffer.h +73 -0
  40. package/cpp/rnwgpu/PlatformContext.h +46 -0
  41. package/cpp/rnwgpu/RNWebGPUManager.cpp +225 -0
  42. package/cpp/rnwgpu/RNWebGPUManager.h +46 -0
  43. package/cpp/rnwgpu/SurfaceRegistry.h +230 -0
  44. package/cpp/rnwgpu/api/Canvas.h +57 -0
  45. package/cpp/rnwgpu/api/Convertors.h +761 -0
  46. package/cpp/rnwgpu/api/External.h +12 -0
  47. package/cpp/rnwgpu/api/GPU.cpp +127 -0
  48. package/cpp/rnwgpu/api/GPU.h +58 -0
  49. package/cpp/rnwgpu/api/GPUAdapter.cpp +191 -0
  50. package/cpp/rnwgpu/api/GPUAdapter.h +59 -0
  51. package/cpp/rnwgpu/api/GPUAdapterInfo.h +57 -0
  52. package/cpp/rnwgpu/api/GPUBindGroup.cpp +3 -0
  53. package/cpp/rnwgpu/api/GPUBindGroup.h +51 -0
  54. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +52 -0
  55. package/cpp/rnwgpu/api/GPUBuffer.cpp +97 -0
  56. package/cpp/rnwgpu/api/GPUBuffer.h +87 -0
  57. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +67 -0
  58. package/cpp/rnwgpu/api/GPUCanvasContext.h +66 -0
  59. package/cpp/rnwgpu/api/GPUCommandBuffer.h +45 -0
  60. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +179 -0
  61. package/cpp/rnwgpu/api/GPUCommandEncoder.h +111 -0
  62. package/cpp/rnwgpu/api/GPUCompilationInfo.h +79 -0
  63. package/cpp/rnwgpu/api/GPUCompilationMessage.h +36 -0
  64. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +60 -0
  65. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +85 -0
  66. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +12 -0
  67. package/cpp/rnwgpu/api/GPUComputePipeline.h +60 -0
  68. package/cpp/rnwgpu/api/GPUDevice.cpp +492 -0
  69. package/cpp/rnwgpu/api/GPUDevice.h +259 -0
  70. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +7 -0
  71. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +40 -0
  72. package/cpp/rnwgpu/api/GPUError.h +35 -0
  73. package/cpp/rnwgpu/api/GPUExtent3D.h +66 -0
  74. package/cpp/rnwgpu/api/GPUExternalTexture.h +45 -0
  75. package/cpp/rnwgpu/api/GPUFeatures.h +203 -0
  76. package/cpp/rnwgpu/api/GPUInternalError.h +31 -0
  77. package/cpp/rnwgpu/api/GPUOrigin2D.h +55 -0
  78. package/cpp/rnwgpu/api/GPUOrigin3D.h +62 -0
  79. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +33 -0
  80. package/cpp/rnwgpu/api/GPUPipelineLayout.h +45 -0
  81. package/cpp/rnwgpu/api/GPUQuerySet.cpp +11 -0
  82. package/cpp/rnwgpu/api/GPUQuerySet.h +73 -0
  83. package/cpp/rnwgpu/api/GPUQueue.cpp +169 -0
  84. package/cpp/rnwgpu/api/GPUQueue.h +81 -0
  85. package/cpp/rnwgpu/api/GPURenderBundle.h +44 -0
  86. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +131 -0
  87. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +110 -0
  88. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +165 -0
  89. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +130 -0
  90. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +13 -0
  91. package/cpp/rnwgpu/api/GPURenderPipeline.h +61 -0
  92. package/cpp/rnwgpu/api/GPUSampler.h +44 -0
  93. package/cpp/rnwgpu/api/GPUShaderModule.cpp +51 -0
  94. package/cpp/rnwgpu/api/GPUShaderModule.h +66 -0
  95. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +129 -0
  96. package/cpp/rnwgpu/api/GPUSupportedLimits.h +131 -0
  97. package/cpp/rnwgpu/api/GPUTexture.cpp +47 -0
  98. package/cpp/rnwgpu/api/GPUTexture.h +162 -0
  99. package/cpp/rnwgpu/api/GPUTextureView.h +44 -0
  100. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +71 -0
  101. package/cpp/rnwgpu/api/GPUValidationError.h +32 -0
  102. package/cpp/rnwgpu/api/ImageBitmap.h +40 -0
  103. package/cpp/rnwgpu/api/RNWebGPU.h +199 -0
  104. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +65 -0
  105. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +78 -0
  106. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +57 -0
  107. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +98 -0
  108. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +58 -0
  109. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +53 -0
  110. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +57 -0
  111. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +57 -0
  112. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +60 -0
  113. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +39 -0
  114. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +76 -0
  115. package/cpp/rnwgpu/api/descriptors/GPUColor.h +67 -0
  116. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +59 -0
  117. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +29 -0
  118. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +46 -0
  119. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +46 -0
  120. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +57 -0
  121. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +59 -0
  122. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +68 -0
  123. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +104 -0
  124. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +100 -0
  125. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +39 -0
  126. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +80 -0
  127. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +74 -0
  128. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +63 -0
  129. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +63 -0
  130. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +66 -0
  131. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +82 -0
  132. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +55 -0
  133. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +22 -0
  134. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +55 -0
  135. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +58 -0
  136. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +70 -0
  137. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +62 -0
  138. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +56 -0
  139. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +44 -0
  140. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +46 -0
  141. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +81 -0
  142. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +82 -0
  143. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +102 -0
  144. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +93 -0
  145. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +59 -0
  146. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +104 -0
  147. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +52 -0
  148. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +46 -0
  149. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +111 -0
  150. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +61 -0
  151. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +63 -0
  152. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +25 -0
  153. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +65 -0
  154. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +60 -0
  155. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +60 -0
  156. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +92 -0
  157. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +29 -0
  158. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +92 -0
  159. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +65 -0
  160. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +54 -0
  161. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +63 -0
  162. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +74 -0
  163. package/cpp/rnwgpu/api/descriptors/Unions.h +1969 -0
  164. package/cpp/rnwgpu/async/AsyncDispatcher.h +28 -0
  165. package/cpp/rnwgpu/async/AsyncRunner.cpp +215 -0
  166. package/cpp/rnwgpu/async/AsyncRunner.h +53 -0
  167. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +181 -0
  168. package/cpp/rnwgpu/async/AsyncTaskHandle.h +55 -0
  169. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.cpp +23 -0
  170. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.h +22 -0
  171. package/cpp/webgpu/webgpu.h +4918 -0
  172. package/cpp/webgpu/webgpu_cpp.h +10294 -0
  173. package/cpp/webgpu/webgpu_cpp_chained_struct.h +57 -0
  174. package/cpp/webgpu/webgpu_cpp_print.h +2755 -0
  175. package/cpp/webgpu/webgpu_enum_class_bitmasks.h +161 -0
  176. package/lib/commonjs/Canvas.js +55 -0
  177. package/lib/commonjs/Canvas.js.map +1 -0
  178. package/lib/commonjs/NativeWebGPUModule.js +10 -0
  179. package/lib/commonjs/NativeWebGPUModule.js.map +1 -0
  180. package/lib/commonjs/Offscreen.js +103 -0
  181. package/lib/commonjs/Offscreen.js.map +1 -0
  182. package/lib/commonjs/WebGPUViewNativeComponent.js +10 -0
  183. package/lib/commonjs/WebGPUViewNativeComponent.js.map +1 -0
  184. package/lib/commonjs/WebGPUViewNativeComponent.web.js +103 -0
  185. package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +1 -0
  186. package/lib/commonjs/WebPolyfillGPUModule.js +40 -0
  187. package/lib/commonjs/WebPolyfillGPUModule.js.map +1 -0
  188. package/lib/commonjs/external/ModuleProxy.js +36 -0
  189. package/lib/commonjs/external/ModuleProxy.js.map +1 -0
  190. package/lib/commonjs/external/index.js +17 -0
  191. package/lib/commonjs/external/index.js.map +1 -0
  192. package/lib/commonjs/external/reanimated/ReanimatedProxy.js +18 -0
  193. package/lib/commonjs/external/reanimated/ReanimatedProxy.js.map +1 -0
  194. package/lib/commonjs/external/reanimated/index.js +21 -0
  195. package/lib/commonjs/external/reanimated/index.js.map +1 -0
  196. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js +49 -0
  197. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js.map +1 -0
  198. package/lib/commonjs/hooks.js +83 -0
  199. package/lib/commonjs/hooks.js.map +1 -0
  200. package/lib/commonjs/index.js +17 -0
  201. package/lib/commonjs/index.js.map +1 -0
  202. package/lib/commonjs/main/index.js +91 -0
  203. package/lib/commonjs/main/index.js.map +1 -0
  204. package/lib/commonjs/main/index.web.js +51 -0
  205. package/lib/commonjs/main/index.web.js.map +1 -0
  206. package/lib/commonjs/types.js +2 -0
  207. package/lib/commonjs/types.js.map +1 -0
  208. package/lib/commonjs/utils.js +11 -0
  209. package/lib/commonjs/utils.js.map +1 -0
  210. package/lib/module/Canvas.js +46 -0
  211. package/lib/module/Canvas.js.map +1 -0
  212. package/lib/module/NativeWebGPUModule.js +4 -0
  213. package/lib/module/NativeWebGPUModule.js.map +1 -0
  214. package/lib/module/Offscreen.js +96 -0
  215. package/lib/module/Offscreen.js.map +1 -0
  216. package/lib/module/WebGPUViewNativeComponent.js +4 -0
  217. package/lib/module/WebGPUViewNativeComponent.js.map +1 -0
  218. package/lib/module/WebGPUViewNativeComponent.web.js +96 -0
  219. package/lib/module/WebGPUViewNativeComponent.web.js.map +1 -0
  220. package/lib/module/WebPolyfillGPUModule.js +38 -0
  221. package/lib/module/WebPolyfillGPUModule.js.map +1 -0
  222. package/lib/module/external/ModuleProxy.js +28 -0
  223. package/lib/module/external/ModuleProxy.js.map +1 -0
  224. package/lib/module/external/index.js +2 -0
  225. package/lib/module/external/index.js.map +1 -0
  226. package/lib/module/external/reanimated/ReanimatedProxy.js +12 -0
  227. package/lib/module/external/reanimated/ReanimatedProxy.js.map +1 -0
  228. package/lib/module/external/reanimated/index.js +3 -0
  229. package/lib/module/external/reanimated/index.js.map +1 -0
  230. package/lib/module/external/reanimated/registerWebGPUForReanimated.js +42 -0
  231. package/lib/module/external/reanimated/registerWebGPUForReanimated.js.map +1 -0
  232. package/lib/module/hooks.js +70 -0
  233. package/lib/module/hooks.js.map +1 -0
  234. package/lib/module/index.js +5 -0
  235. package/lib/module/index.js.map +1 -0
  236. package/lib/module/main/index.js +33 -0
  237. package/lib/module/main/index.js.map +1 -0
  238. package/lib/module/main/index.web.js +8 -0
  239. package/lib/module/main/index.web.js.map +1 -0
  240. package/lib/module/types.js +2 -0
  241. package/lib/module/types.js.map +1 -0
  242. package/lib/module/utils.js +5 -0
  243. package/lib/module/utils.js.map +1 -0
  244. package/lib/typescript/babel.config.d.ts +3 -0
  245. package/lib/typescript/babel.config.d.ts.map +1 -0
  246. package/lib/typescript/eslint.config.d.mts +3 -0
  247. package/lib/typescript/eslint.config.d.mts.map +1 -0
  248. package/lib/typescript/jest.config.d.ts +9 -0
  249. package/lib/typescript/jest.config.d.ts.map +1 -0
  250. package/lib/typescript/lib/commonjs/Canvas.d.ts +7 -0
  251. package/lib/typescript/lib/commonjs/Canvas.d.ts.map +1 -0
  252. package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts +5 -0
  253. package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts.map +1 -0
  254. package/lib/typescript/lib/commonjs/Offscreen.d.ts +26 -0
  255. package/lib/typescript/lib/commonjs/Offscreen.d.ts.map +1 -0
  256. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts +5 -0
  257. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts.map +1 -0
  258. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts +4 -0
  259. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +1 -0
  260. package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts +2 -0
  261. package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts.map +1 -0
  262. package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts +12 -0
  263. package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts.map +1 -0
  264. package/lib/typescript/lib/commonjs/external/index.d.ts +2 -0
  265. package/lib/typescript/lib/commonjs/external/index.d.ts.map +1 -0
  266. package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts +6 -0
  267. package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts.map +1 -0
  268. package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts +4 -0
  269. package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts.map +1 -0
  270. package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts +9 -0
  271. package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -0
  272. package/lib/typescript/lib/commonjs/hooks.d.ts +18 -0
  273. package/lib/typescript/lib/commonjs/hooks.d.ts.map +1 -0
  274. package/lib/typescript/lib/commonjs/index.d.ts +2 -0
  275. package/lib/typescript/lib/commonjs/index.d.ts.map +1 -0
  276. package/lib/typescript/lib/commonjs/main/index.d.ts +3 -0
  277. package/lib/typescript/lib/commonjs/main/index.d.ts.map +1 -0
  278. package/lib/typescript/lib/commonjs/main/index.web.d.ts +2 -0
  279. package/lib/typescript/lib/commonjs/main/index.web.d.ts.map +1 -0
  280. package/lib/typescript/lib/commonjs/types.d.ts +1 -0
  281. package/lib/typescript/lib/commonjs/types.d.ts.map +1 -0
  282. package/lib/typescript/lib/commonjs/utils.d.ts +3 -0
  283. package/lib/typescript/lib/commonjs/utils.d.ts.map +1 -0
  284. package/lib/typescript/lib/module/Canvas.d.ts +8 -0
  285. package/lib/typescript/lib/module/Canvas.d.ts.map +1 -0
  286. package/lib/typescript/lib/module/NativeWebGPUModule.d.ts +3 -0
  287. package/lib/typescript/lib/module/NativeWebGPUModule.d.ts.map +1 -0
  288. package/lib/typescript/lib/module/Offscreen.d.ts +25 -0
  289. package/lib/typescript/lib/module/Offscreen.d.ts.map +1 -0
  290. package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts +3 -0
  291. package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts.map +1 -0
  292. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts +3 -0
  293. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +1 -0
  294. package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts +2 -0
  295. package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts.map +1 -0
  296. package/lib/typescript/lib/module/external/ModuleProxy.d.ts +7 -0
  297. package/lib/typescript/lib/module/external/ModuleProxy.d.ts.map +1 -0
  298. package/lib/typescript/lib/module/external/index.d.ts +2 -0
  299. package/lib/typescript/lib/module/external/index.d.ts.map +1 -0
  300. package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts +5 -0
  301. package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts.map +1 -0
  302. package/lib/typescript/lib/module/external/reanimated/index.d.ts +3 -0
  303. package/lib/typescript/lib/module/external/reanimated/index.d.ts.map +1 -0
  304. package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts +2 -0
  305. package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -0
  306. package/lib/typescript/lib/module/hooks.d.ts +18 -0
  307. package/lib/typescript/lib/module/hooks.d.ts.map +1 -0
  308. package/lib/typescript/lib/module/index.d.ts +2 -0
  309. package/lib/typescript/lib/module/index.d.ts.map +1 -0
  310. package/lib/typescript/lib/module/main/index.d.ts +6 -0
  311. package/lib/typescript/lib/module/main/index.d.ts.map +1 -0
  312. package/lib/typescript/lib/module/main/index.web.d.ts +5 -0
  313. package/lib/typescript/lib/module/main/index.web.d.ts.map +1 -0
  314. package/lib/typescript/lib/module/types.d.ts +1 -0
  315. package/lib/typescript/lib/module/types.d.ts.map +1 -0
  316. package/lib/typescript/lib/module/utils.d.ts +2 -0
  317. package/lib/typescript/lib/module/utils.d.ts.map +1 -0
  318. package/lib/typescript/src/Canvas.d.ts +35 -0
  319. package/lib/typescript/src/Canvas.d.ts.map +1 -0
  320. package/lib/typescript/src/NativeWebGPUModule.d.ts +7 -0
  321. package/lib/typescript/src/NativeWebGPUModule.d.ts.map +1 -0
  322. package/lib/typescript/src/Offscreen.d.ts +30 -0
  323. package/lib/typescript/src/Offscreen.d.ts.map +1 -0
  324. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts +9 -0
  325. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +1 -0
  326. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +9 -0
  327. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +1 -0
  328. package/lib/typescript/src/WebPolyfillGPUModule.d.ts +2 -0
  329. package/lib/typescript/src/WebPolyfillGPUModule.d.ts.map +1 -0
  330. package/lib/typescript/src/external/ModuleProxy.d.ts +11 -0
  331. package/lib/typescript/src/external/ModuleProxy.d.ts.map +1 -0
  332. package/lib/typescript/src/external/index.d.ts +2 -0
  333. package/lib/typescript/src/external/index.d.ts.map +1 -0
  334. package/lib/typescript/src/external/reanimated/ReanimatedProxy.d.ts +4 -0
  335. package/lib/typescript/src/external/reanimated/ReanimatedProxy.d.ts.map +1 -0
  336. package/lib/typescript/src/external/reanimated/index.d.ts +3 -0
  337. package/lib/typescript/src/external/reanimated/index.d.ts.map +1 -0
  338. package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts +8 -0
  339. package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -0
  340. package/lib/typescript/src/hooks.d.ts +27 -0
  341. package/lib/typescript/src/hooks.d.ts.map +1 -0
  342. package/lib/typescript/src/index.d.ts +18 -0
  343. package/lib/typescript/src/index.d.ts.map +1 -0
  344. package/lib/typescript/src/main/index.d.ts +6 -0
  345. package/lib/typescript/src/main/index.d.ts.map +1 -0
  346. package/lib/typescript/src/main/index.web.d.ts +6 -0
  347. package/lib/typescript/src/main/index.web.d.ts.map +1 -0
  348. package/lib/typescript/src/types.d.ts +19 -0
  349. package/lib/typescript/src/types.d.ts.map +1 -0
  350. package/lib/typescript/src/utils.d.ts +2 -0
  351. package/lib/typescript/src/utils.d.ts.map +1 -0
  352. package/libs/android/arm64-v8a/libwebgpu_dawn.so +0 -0
  353. package/libs/android/armeabi-v7a/libwebgpu_dawn.so +0 -0
  354. package/libs/android/x86/libwebgpu_dawn.so +0 -0
  355. package/libs/android/x86_64/libwebgpu_dawn.so +0 -0
  356. package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +59 -0
  357. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
  358. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
  359. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
  360. package/package.json +139 -0
  361. package/react-native-wgpu.podspec +47 -0
  362. package/src/Canvas.tsx +91 -0
  363. package/src/NativeWebGPUModule.ts +9 -0
  364. package/src/Offscreen.ts +113 -0
  365. package/src/WebGPUViewNativeComponent.ts +11 -0
  366. package/src/WebGPUViewNativeComponent.web.ts +113 -0
  367. package/src/WebPolyfillGPUModule.ts +53 -0
  368. package/src/external/ModuleProxy.ts +30 -0
  369. package/src/external/index.ts +1 -0
  370. package/src/external/reanimated/ReanimatedProxy.ts +19 -0
  371. package/src/external/reanimated/index.ts +2 -0
  372. package/src/external/reanimated/registerWebGPUForReanimated.ts +43 -0
  373. package/src/hooks.tsx +93 -0
  374. package/src/index.tsx +31 -0
  375. package/src/main/index.tsx +40 -0
  376. package/src/main/index.web.tsx +8 -0
  377. package/src/types.ts +20 -0
  378. package/src/utils.ts +4 -0
@@ -0,0 +1,38 @@
1
+ import { contextIdToId } from "./utils";
2
+ const fabric = true;
3
+ function getNativeSurface(contextId) {
4
+ const canvas = document.getElementById(contextIdToId(contextId));
5
+ const {
6
+ height,
7
+ width
8
+ } = canvas.getBoundingClientRect();
9
+ return {
10
+ surface: BigInt(contextId),
11
+ height,
12
+ width,
13
+ clientHeight: height,
14
+ clientWidth: width
15
+ };
16
+ }
17
+ function makeWebGPUCanvasContext(contextId, width, height) {
18
+ const canvas = document.getElementById(contextIdToId(contextId));
19
+ const dpr = window.devicePixelRatio || 1;
20
+ const pixelWidth = (width * dpr).toString();
21
+ const pixelHeight = (height * dpr).toString();
22
+ if (canvas.getAttribute("width") !== pixelWidth || canvas.getAttribute("height") !== pixelHeight) {
23
+ canvas.setAttribute("width", pixelWidth);
24
+ canvas.setAttribute("height", pixelHeight);
25
+ }
26
+ const context = canvas.getContext("webgpu");
27
+ return Object.assign(context, {
28
+ present: () => {}
29
+ });
30
+ }
31
+
32
+ // @ts-expect-error - polyfill for RNWebGPU native module
33
+ window.RNWebGPU = {
34
+ getNativeSurface,
35
+ MakeWebGPUCanvasContext: makeWebGPUCanvasContext,
36
+ fabric
37
+ };
38
+ //# sourceMappingURL=WebPolyfillGPUModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["contextIdToId","fabric","getNativeSurface","contextId","canvas","document","getElementById","height","width","getBoundingClientRect","surface","BigInt","clientHeight","clientWidth","makeWebGPUCanvasContext","dpr","window","devicePixelRatio","pixelWidth","toString","pixelHeight","getAttribute","setAttribute","context","getContext","Object","assign","present","RNWebGPU","MakeWebGPUCanvasContext"],"sourceRoot":"../../src","sources":["WebPolyfillGPUModule.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,SAAS;AAEvC,MAAMC,MAAM,GAAG,IAAI;AAEnB,SAASC,gBAAgBA,CAACC,SAAiB,EAAE;EAC3C,MAAMC,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;EAEtB,MAAM;IAAEI,MAAM;IAAEC;EAAM,CAAC,GAAGJ,MAAM,CAACK,qBAAqB,CAAC,CAAE;EAEzD,OAAO;IACLC,OAAO,EAAEC,MAAM,CAACR,SAAS,CAAC;IAC1BI,MAAM;IACNC,KAAK;IACLI,YAAY,EAAEL,MAAM;IACpBM,WAAW,EAAEL;EACf,CAAC;AACH;AAEA,SAASM,uBAAuBA,CAC9BX,SAAiB,EACjBK,KAAa,EACbD,MAAc,EACd;EACA,MAAMH,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;EAEtB,MAAMY,GAAG,GAAGC,MAAM,CAACC,gBAAgB,IAAI,CAAC;EACxC,MAAMC,UAAU,GAAG,CAACV,KAAK,GAAGO,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAC3C,MAAMC,WAAW,GAAG,CAACb,MAAM,GAAGQ,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAE7C,IACEf,MAAM,CAACiB,YAAY,CAAC,OAAO,CAAC,KAAKH,UAAU,IAC3Cd,MAAM,CAACiB,YAAY,CAAC,QAAQ,CAAC,KAAKD,WAAW,EAC7C;IACAhB,MAAM,CAACkB,YAAY,CAAC,OAAO,EAAEJ,UAAU,CAAC;IACxCd,MAAM,CAACkB,YAAY,CAAC,QAAQ,EAAEF,WAAW,CAAC;EAC5C;EAEA,MAAMG,OAAO,GAAGnB,MAAM,CAACoB,UAAU,CAAC,QAAQ,CAAE;EAC5C,OAAOC,MAAM,CAACC,MAAM,CAACH,OAAO,EAAE;IAC5BI,OAAO,EAAEA,CAAA,KAAM,CAAC;EAClB,CAAC,CAAC;AACJ;;AAEA;AACAX,MAAM,CAACY,QAAQ,GAAG;EAChB1B,gBAAgB;EAChB2B,uBAAuB,EAAEf,uBAAuB;EAChDb;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ // https://github.com/mrousavy/react-native-vision-camera/blob/main/package/src/dependencies/ModuleProxy.ts
2
+
3
+ /**
4
+ * Create a lazily-imported module proxy.
5
+ * This is useful for lazily requiring optional dependencies.
6
+ */
7
+ export const createModuleProxy = getModule => {
8
+ const holder = {
9
+ module: undefined
10
+ };
11
+ const proxy = new Proxy(holder, {
12
+ get: (target, property) => {
13
+ if (target.module == null) {
14
+ // lazy initialize module via require()
15
+ // caller needs to make sure the require() call is wrapped in a try/catch
16
+ target.module = getModule();
17
+ }
18
+ return target.module[property];
19
+ }
20
+ });
21
+ return proxy;
22
+ };
23
+ export class OptionalDependencyNotInstalledError extends Error {
24
+ constructor(name) {
25
+ super(`${name} is not installed!`);
26
+ }
27
+ }
28
+ //# sourceMappingURL=ModuleProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createModuleProxy","getModule","holder","module","undefined","proxy","Proxy","get","target","property","OptionalDependencyNotInstalledError","Error","constructor","name"],"sourceRoot":"../../../src","sources":["external/ModuleProxy.ts"],"mappings":"AAAA;;AAGA;AACA;AACA;AACA;AACA,OAAO,MAAMA,iBAAiB,GAC5BC,SAA2B,IACf;EACZ,MAAMC,MAAuC,GAAG;IAAEC,MAAM,EAAEC;EAAU,CAAC;EAErE,MAAMC,KAAK,GAAG,IAAIC,KAAK,CAACJ,MAAM,EAAE;IAC9BK,GAAG,EAAEA,CAACC,MAAM,EAAEC,QAAQ,KAAK;MACzB,IAAID,MAAM,CAACL,MAAM,IAAI,IAAI,EAAE;QACzB;QACA;QACAK,MAAM,CAACL,MAAM,GAAGF,SAAS,CAAC,CAAY;MACxC;MACA,OAAOO,MAAM,CAACL,MAAM,CAACM,QAAQ,CAA+B;IAC9D;EACF,CAAC,CAAC;EACF,OAAOJ,KAAK;AACd,CAAC;AAED,OAAO,MAAMK,mCAAmC,SAASC,KAAK,CAAC;EAC7DC,WAAWA,CAACC,IAAY,EAAE;IACxB,KAAK,CAAC,GAAGA,IAAI,oBAAoB,CAAC;EACpC;AACF","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./reanimated";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["external/index.ts"],"mappings":"AAAA,cAAc,cAAc","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { OptionalDependencyNotInstalledError, createModuleProxy } from "../ModuleProxy";
2
+ const Reanimated = createModuleProxy(() => {
3
+ try {
4
+ return require("react-native-reanimated");
5
+ } catch (e) {
6
+ throw new OptionalDependencyNotInstalledError("react-native-reanimated");
7
+ }
8
+ });
9
+
10
+ // eslint-disable-next-line import/no-default-export
11
+ export default Reanimated;
12
+ //# sourceMappingURL=ReanimatedProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OptionalDependencyNotInstalledError","createModuleProxy","Reanimated","require","e"],"sourceRoot":"../../../../src","sources":["external/reanimated/ReanimatedProxy.ts"],"mappings":"AAEA,SACEA,mCAAmC,EACnCC,iBAAiB,QACZ,gBAAgB;AAIvB,MAAMC,UAAU,GAAGD,iBAAiB,CAAc,MAAM;EACtD,IAAI;IACF,OAAOE,OAAO,CAAC,yBAAyB,CAAC;EAC3C,CAAC,CAAC,OAAOC,CAAC,EAAE;IACV,MAAM,IAAIJ,mCAAmC,CAAC,yBAAyB,CAAC;EAC1E;AACF,CAAC,CAAC;;AAEF;AACA,eAAeE,UAAU","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export { registerWebGPUForReanimated } from "./registerWebGPUForReanimated";
2
+ export { default as Reanimated } from "./ReanimatedProxy";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["registerWebGPUForReanimated","default","Reanimated"],"sourceRoot":"../../../../src","sources":["external/reanimated/index.ts"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,+BAA+B;AAC3E,SAASC,OAAO,IAAIC,UAAU,QAAQ,mBAAmB","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ // Declare global WebGPU worklet helper functions (installed by native module)
2
+
3
+ let isRegistered = false;
4
+
5
+ /**
6
+ * Register WebGPU objects for Worklets serialization.
7
+ * This allows GPUDevice, GPUCanvasContext, etc. to be passed to worklets.
8
+ *
9
+ * This is called automatically when the module loads if react-native-worklets is installed.
10
+ */
11
+ export const registerWebGPUForReanimated = () => {
12
+ if (isRegistered) {
13
+ return;
14
+ }
15
+ isRegistered = true;
16
+ try {
17
+ const {
18
+ registerCustomSerializable
19
+ } = require("react-native-worklets");
20
+ registerCustomSerializable({
21
+ name: "WebGPU",
22
+ determine: value => {
23
+ "worklet";
24
+
25
+ return __webgpuIsWebGPUObject(value);
26
+ },
27
+ pack: value => {
28
+ "worklet";
29
+
30
+ return __webgpuBox(value);
31
+ },
32
+ unpack: boxed => {
33
+ "worklet";
34
+
35
+ return boxed.unbox();
36
+ }
37
+ });
38
+ } catch {
39
+ // react-native-worklets not installed, skip registration
40
+ }
41
+ };
42
+ //# sourceMappingURL=registerWebGPUForReanimated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isRegistered","registerWebGPUForReanimated","registerCustomSerializable","require","name","determine","value","__webgpuIsWebGPUObject","pack","__webgpuBox","unpack","boxed","unbox"],"sourceRoot":"../../../../src","sources":["external/reanimated/registerWebGPUForReanimated.ts"],"mappings":"AAAA;;AAOA,IAAIA,YAAY,GAAG,KAAK;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,2BAA2B,GAAGA,CAAA,KAAM;EAC/C,IAAID,YAAY,EAAE;IAChB;EACF;EACAA,YAAY,GAAG,IAAI;EAEnB,IAAI;IACF,MAAM;MAAEE;IAA2B,CAAC,GAAGC,OAAO,CAAC,uBAAuB,CAAC;IAEvED,0BAA0B,CAAC;MACzBE,IAAI,EAAE,QAAQ;MACdC,SAAS,EAAGC,KAAa,IAAsB;QAC7C,SAAS;;QACT,OAAOC,sBAAsB,CAACD,KAAK,CAAC;MACtC,CAAC;MACDE,IAAI,EAAGF,KAAa,IAAK;QACvB,SAAS;;QACT,OAAOG,WAAW,CAACH,KAAK,CAAC;MAC3B,CAAC;MACDI,MAAM,EAAGC,KAA8B,IAAK;QAC1C,SAAS;;QACT,OAAOA,KAAK,CAACC,KAAK,CAAC,CAAC;MACtB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ,CAAC","ignoreList":[]}
@@ -0,0 +1,70 @@
1
+ import React, { createContext, useContext, useEffect, useLayoutEffect, useRef, useState } from "react";
2
+ export const warnIfNotHardwareAccelerated = adapter => {
3
+ // Check if adapter is a fallback adapter using the new GPUAdapterInfo API
4
+ // Note: isFallbackAdapter was moved from GPUAdapter to GPUAdapterInfo in Chrome 140
5
+ if (adapter.info && adapter.info.isFallbackAdapter) {
6
+ console.warn("GPUAdapter is not hardware accelerated. This is common on Android emulators. Rendering will be slow. Some features may be unavailable.");
7
+ }
8
+ };
9
+ const DeviceContext = /*#__PURE__*/createContext(null);
10
+ export const GPUDeviceProvider = ({
11
+ children,
12
+ adapterOptions,
13
+ deviceDescriptor
14
+ }) => {
15
+ const state = useDevice(adapterOptions, deviceDescriptor);
16
+ if (!state.device) {
17
+ return null;
18
+ }
19
+ return /*#__PURE__*/React.createElement(DeviceContext.Provider, {
20
+ value: state
21
+ }, children);
22
+ };
23
+ export const useSurface = () => {
24
+ const ref = useRef(null);
25
+ const [surface, setSurface] = useState(null);
26
+ useLayoutEffect(() => {
27
+ const sur = ref.current.getNativeSurface();
28
+ setSurface(sur);
29
+ }, []);
30
+ return {
31
+ ref,
32
+ surface
33
+ };
34
+ };
35
+ export const useMainDevice = () => {
36
+ const ctx = useContext(DeviceContext);
37
+ if (!ctx) {
38
+ throw new Error("No DeviceContext found.");
39
+ }
40
+ return ctx;
41
+ };
42
+ export const useCanvasRef = () => useRef(null);
43
+ export const useDevice = (adapterOptions, deviceDescriptor) => {
44
+ const [state, setState] = useState(null);
45
+ useEffect(() => {
46
+ (async () => {
47
+ if (!state) {
48
+ const adapter = await navigator.gpu.requestAdapter(adapterOptions);
49
+ if (!adapter) {
50
+ throw new Error("No appropriate GPUAdapter found.");
51
+ }
52
+ warnIfNotHardwareAccelerated(adapter);
53
+ const device = await adapter.requestDevice(deviceDescriptor);
54
+ if (!device) {
55
+ throw new Error("No appropriate GPUDevice found.");
56
+ }
57
+ setState({
58
+ adapter,
59
+ device
60
+ });
61
+ return;
62
+ }
63
+ })();
64
+ }, [adapterOptions, deviceDescriptor, state]);
65
+ return {
66
+ adapter: state?.adapter ?? null,
67
+ device: state?.device ?? null
68
+ };
69
+ };
70
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","useContext","useEffect","useLayoutEffect","useRef","useState","warnIfNotHardwareAccelerated","adapter","info","isFallbackAdapter","console","warn","DeviceContext","GPUDeviceProvider","children","adapterOptions","deviceDescriptor","state","useDevice","device","createElement","Provider","value","useSurface","ref","surface","setSurface","sur","current","getNativeSurface","useMainDevice","ctx","Error","useCanvasRef","setState","navigator","gpu","requestAdapter","requestDevice"],"sourceRoot":"../../src","sources":["hooks.tsx"],"mappings":"AAAA,OAAOA,KAAK,IACVC,aAAa,EACbC,UAAU,EACVC,SAAS,EACTC,eAAe,EACfC,MAAM,EACNC,QAAQ,QACH,OAAO;AAKd,OAAO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACnE;EACA;EACA,IAAIA,OAAO,CAACC,IAAI,IAAID,OAAO,CAACC,IAAI,CAACC,iBAAiB,EAAE;IAClDC,OAAO,CAACC,IAAI,CACV,wIACF,CAAC;EACH;AACF,CAAC;AAOD,MAAMC,aAAa,gBAAGZ,aAAa,CAAuB,IAAI,CAAC;AAQ/D,OAAO,MAAMa,iBAAiB,GAAGA,CAAC;EAChCC,QAAQ;EACRC,cAAc;EACdC;AACmB,CAAC,KAAK;EACzB,MAAMC,KAAK,GAAGC,SAAS,CAACH,cAAc,EAAEC,gBAAgB,CAAC;EACzD,IAAI,CAACC,KAAK,CAACE,MAAM,EAAE;IACjB,OAAO,IAAI;EACb;EACA,oBACEpB,KAAA,CAAAqB,aAAA,CAACR,aAAa,CAACS,QAAQ;IAACC,KAAK,EAAEL;EAAM,GAAEH,QAAiC,CAAC;AAE7E,CAAC;AAED,OAAO,MAAMS,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAMC,GAAG,GAAGpB,MAAM,CAAY,IAAI,CAAC;EACnC,MAAM,CAACqB,OAAO,EAAEC,UAAU,CAAC,GAAGrB,QAAQ,CAAsB,IAAI,CAAC;EACjEF,eAAe,CAAC,MAAM;IACpB,MAAMwB,GAAG,GAAGH,GAAG,CAACI,OAAO,CAAEC,gBAAgB,CAAC,CAAC;IAC3CH,UAAU,CAACC,GAAG,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EACN,OAAO;IAAEH,GAAG;IAAEC;EAAQ,CAAC;AACzB,CAAC;AAED,OAAO,MAAMK,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMC,GAAG,GAAG9B,UAAU,CAACW,aAAa,CAAC;EACrC,IAAI,CAACmB,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CAAC,yBAAyB,CAAC;EAC5C;EACA,OAAOD,GAAG;AACZ,CAAC;AAED,OAAO,MAAME,YAAY,GAAGA,CAAA,KAAM7B,MAAM,CAAY,IAAI,CAAC;AAEzD,OAAO,MAAMc,SAAS,GAAGA,CACvBH,cAAyC,EACzCC,gBAAsC,KACnC;EACH,MAAM,CAACC,KAAK,EAAEiB,QAAQ,CAAC,GAAG7B,QAAQ,CAAuB,IAAI,CAAC;EAC9DH,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX,IAAI,CAACe,KAAK,EAAE;QACV,MAAMV,OAAO,GAAG,MAAM4B,SAAS,CAACC,GAAG,CAACC,cAAc,CAACtB,cAAc,CAAC;QAClE,IAAI,CAACR,OAAO,EAAE;UACZ,MAAM,IAAIyB,KAAK,CAAC,kCAAkC,CAAC;QACrD;QACA1B,4BAA4B,CAACC,OAAO,CAAC;QACrC,MAAMY,MAAM,GAAG,MAAMZ,OAAO,CAAC+B,aAAa,CAACtB,gBAAgB,CAAC;QAC5D,IAAI,CAACG,MAAM,EAAE;UACX,MAAM,IAAIa,KAAK,CAAC,iCAAiC,CAAC;QACpD;QACAE,QAAQ,CAAC;UAAE3B,OAAO;UAAEY;QAAO,CAAC,CAAC;QAC7B;MACF;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACJ,cAAc,EAAEC,gBAAgB,EAAEC,KAAK,CAAC,CAAC;EAC7C,OAAO;IAAEV,OAAO,EAAEU,KAAK,EAAEV,OAAO,IAAI,IAAI;IAAEY,MAAM,EAAEF,KAAK,EAAEE,MAAM,IAAI;EAAK,CAAC;AAC3E,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ /// <reference types="@webgpu/types" />
2
+
3
+ export * from "./main";
4
+ export {};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA;;AAIA,cAAc,QAAQ;AAAC","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ import { registerWebGPUForReanimated } from "../external";
2
+ import WebGPUModule from "../NativeWebGPUModule";
3
+ export * from "../Canvas";
4
+ export * from "../Offscreen";
5
+ export * from "../WebGPUViewNativeComponent";
6
+ export * from "../hooks";
7
+ export { default as WebGPUModule } from "../NativeWebGPUModule";
8
+ const _installOk = WebGPUModule.install();
9
+ registerWebGPUForReanimated();
10
+ if (typeof RNWebGPU !== "undefined") {
11
+ if (!navigator) {
12
+ // @ts-expect-error Navigation object is more complex than this, setting it to an empty object to add gpu property
13
+ navigator = {
14
+ gpu: RNWebGPU.gpu,
15
+ userAgent: "react-native"
16
+ };
17
+ } else {
18
+ navigator.gpu = RNWebGPU.gpu;
19
+ if (typeof navigator.userAgent !== "string") {
20
+ try {
21
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
22
+ // @ts-ignore - Hermes navigator may not include a userAgent, align with the polyfill if needed
23
+ navigator.userAgent = "react-native";
24
+ } catch {
25
+ // navigator.userAgent can be read-only; ignore if assignment fails
26
+ }
27
+ }
28
+ }
29
+ global.createImageBitmap = global.createImageBitmap ?? RNWebGPU.createImageBitmap.bind(RNWebGPU);
30
+ } else {
31
+ console.warn(`[react-native-wgpu] install() returned ${_installOk} but RNWebGPU global is not available`);
32
+ }
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["registerWebGPUForReanimated","WebGPUModule","default","_installOk","install","RNWebGPU","navigator","gpu","userAgent","global","createImageBitmap","bind","console","warn"],"sourceRoot":"../../../src","sources":["main/index.tsx"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,aAAa;AACzD,OAAOC,YAAY,MAAM,uBAAuB;AAEhD,cAAc,WAAW;AACzB,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,UAAU;AAExB,SAASC,OAAO,IAAID,YAAY,QAAQ,uBAAuB;AAE/D,MAAME,UAAU,GAAGF,YAAY,CAACG,OAAO,CAAC,CAAC;AAEzCJ,2BAA2B,CAAC,CAAC;AAE7B,IAAI,OAAOK,QAAQ,KAAK,WAAW,EAAE;EACnC,IAAI,CAACC,SAAS,EAAE;IACd;IACAA,SAAS,GAAG;MACVC,GAAG,EAAEF,QAAQ,CAACE,GAAG;MACjBC,SAAS,EAAE;IACb,CAAC;EACH,CAAC,MAAM;IACLF,SAAS,CAACC,GAAG,GAAGF,QAAQ,CAACE,GAAG;IAC5B,IAAI,OAAOD,SAAS,CAACE,SAAS,KAAK,QAAQ,EAAE;MAC3C,IAAI;QACF;QACA;QACAF,SAAS,CAACE,SAAS,GAAG,cAAc;MACtC,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;EACF;EACAC,MAAM,CAACC,iBAAiB,GACtBD,MAAM,CAACC,iBAAiB,IAAIL,QAAQ,CAACK,iBAAiB,CAACC,IAAI,CAACN,QAAQ,CAAC;AACzE,CAAC,MAAM;EACLO,OAAO,CAACC,IAAI,CACV,0CAA0CV,UAAU,uCACtD,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import "../WebPolyfillGPUModule";
2
+ export * from "../Canvas";
3
+ export * from "../Offscreen";
4
+ export * from "../WebGPUViewNativeComponent";
5
+ export * from "../hooks";
6
+
7
+ // We don't need to set all global properties on web, webgpu is already available globally
8
+ //# sourceMappingURL=index.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["main/index.web.tsx"],"mappings":"AAAA,OAAO,yBAAyB;AAEhC,cAAc,WAAW;AACzB,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,UAAU;;AAExB","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ // Only used on the web
2
+ export function contextIdToId(contextId) {
3
+ return "rnwgpu-canvas-" + contextId;
4
+ }
5
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["contextIdToId","contextId"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":"AAAA;AACA,OAAO,SAASA,aAAaA,CAACC,SAAiB,EAAE;EAC/C,OAAO,gBAAgB,GAAGA,SAAS;AACrC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export let presets: string[];
2
+ export let plugins: string[];
3
+ //# sourceMappingURL=babel.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babel.config.d.ts","sourceRoot":"","sources":["../../babel.config.js"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ declare const _default: any[];
2
+ export default _default;
3
+ //# sourceMappingURL=eslint.config.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint.config.d.mts","sourceRoot":"","sources":["../../eslint.config.mjs"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export let preset: string;
2
+ export let modulePathIgnorePatterns: string[];
3
+ export let globalSetup: string;
4
+ export let globalTeardown: string;
5
+ export let transform: {
6
+ '^.+\\.(js|jsx|ts|tsx)$': string;
7
+ };
8
+ export let transformIgnorePatterns: string[];
9
+ //# sourceMappingURL=jest.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../../jest.config.js"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export const __esModule: boolean;
2
+ export function Canvas({ transparent, ref, ...props }: {
3
+ [x: string]: any;
4
+ transparent: any;
5
+ ref: any;
6
+ }): any;
7
+ //# sourceMappingURL=Canvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../commonjs/Canvas.js"],"names":[],"mappings":";AAgBA;;;;QAoCC"}
@@ -0,0 +1,5 @@
1
+ export const __esModule: boolean;
2
+ declare const _default: _reactNative.TurboModule;
3
+ export default _default;
4
+ import _reactNative = require("react-native");
5
+ //# sourceMappingURL=NativeWebGPUModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeWebGPUModule.d.ts","sourceRoot":"","sources":["../../../commonjs/NativeWebGPUModule.js"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ export const __esModule: boolean;
2
+ export class GPUOffscreenCanvas {
3
+ constructor(width: any, height: any);
4
+ width: any;
5
+ height: any;
6
+ context: GPUOffscreenCanvasContext;
7
+ getContext(contextId: any): GPUOffscreenCanvasContext | null;
8
+ getImageData(): any;
9
+ }
10
+ declare class GPUOffscreenCanvasContext {
11
+ constructor(canvas: any);
12
+ __brand: string;
13
+ texture: null;
14
+ device: null;
15
+ canvas: any;
16
+ textureFormat: GPUTextureFormat;
17
+ getConfiguration(): void;
18
+ present(): void;
19
+ getDevice(): never;
20
+ getTexture(): never;
21
+ configure(config: any): undefined;
22
+ unconfigure(): undefined;
23
+ getCurrentTexture(): never;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=Offscreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Offscreen.d.ts","sourceRoot":"","sources":["../../../commonjs/Offscreen.js"],"names":[],"mappings":";AAMA;IACE,qCAIC;IAHC,WAAkB;IAClB,YAAoB;IACpB,mCAAkD;IAEpD,6DAMC;IACD,oBA4BC;CACF;AAED;IAME,yBAGC;IARD,gBAA6B;IAC7B,cAAe;IACf,aAAc;IAIZ,YAAoB;IACpB,gCAA6D;IAE/D,yBAEC;IACD,gBAEC;IACD,mBAKC;IACD,oBAKC;IACD,kCASC;IACD,yBAMC;IACD,2BAKC;CACF"}
@@ -0,0 +1,5 @@
1
+ export const __esModule: boolean;
2
+ declare const _default: _reactNative.HostComponent<object>;
3
+ export default _default;
4
+ import _reactNative = require("react-native");
5
+ //# sourceMappingURL=WebGPUViewNativeComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGPUViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../commonjs/WebGPUViewNativeComponent.js"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export const __esModule: boolean;
2
+ export default WebGPUViewNativeComponent;
3
+ declare function WebGPUViewNativeComponent(props: any): any;
4
+ //# sourceMappingURL=WebGPUViewNativeComponent.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGPUViewNativeComponent.web.d.ts","sourceRoot":"","sources":["../../../commonjs/WebGPUViewNativeComponent.web.js"],"names":[],"mappings":";;AA4CA,4DAiCC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WebPolyfillGPUModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebPolyfillGPUModule.d.ts","sourceRoot":"","sources":["../../../commonjs/WebPolyfillGPUModule.js"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ export const __esModule: boolean;
2
+ /**
3
+ * Create a lazily-imported module proxy.
4
+ * This is useful for lazily requiring optional dependencies.
5
+ */
6
+ export function createModuleProxy(getModule: any): {
7
+ module: undefined;
8
+ };
9
+ export class OptionalDependencyNotInstalledError extends Error {
10
+ constructor(name: any);
11
+ }
12
+ //# sourceMappingURL=ModuleProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleProxy.d.ts","sourceRoot":"","sources":["../../../../commonjs/external/ModuleProxy.js"],"names":[],"mappings":";AAQA;;;GAGG;AACH;;EAeC;AAED;IACE,uBAEC;CACF"}
@@ -0,0 +1,2 @@
1
+ export const __esModule: boolean;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commonjs/external/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export const __esModule: boolean;
2
+ export default Reanimated;
3
+ declare const Reanimated: {
4
+ module: undefined;
5
+ };
6
+ //# sourceMappingURL=ReanimatedProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReanimatedProxy.d.ts","sourceRoot":"","sources":["../../../../../commonjs/external/reanimated/ReanimatedProxy.js"],"names":[],"mappings":";;AAOA;;EAMG"}
@@ -0,0 +1,4 @@
1
+ export const __esModule: boolean;
2
+ export const Reanimated: any;
3
+ export const registerWebGPUForReanimated: () => void;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../commonjs/external/reanimated/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export const __esModule: boolean;
2
+ /**
3
+ * Register WebGPU objects for Worklets serialization.
4
+ * This allows GPUDevice, GPUCanvasContext, etc. to be passed to worklets.
5
+ *
6
+ * This is called automatically when the module loads if react-native-worklets is installed.
7
+ */
8
+ export function registerWebGPUForReanimated(): void;
9
+ //# sourceMappingURL=registerWebGPUForReanimated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerWebGPUForReanimated.d.ts","sourceRoot":"","sources":["../../../../../commonjs/external/reanimated/registerWebGPUForReanimated.js"],"names":[],"mappings":";AAUA;;;;;GAKG;AACH,oDA8BC"}
@@ -0,0 +1,18 @@
1
+ export const __esModule: boolean;
2
+ export function warnIfNotHardwareAccelerated(adapter: any): void;
3
+ export function GPUDeviceProvider({ children, adapterOptions, deviceDescriptor }: {
4
+ children: any;
5
+ adapterOptions: any;
6
+ deviceDescriptor: any;
7
+ }): any;
8
+ export function useSurface(): {
9
+ ref: any;
10
+ surface: any;
11
+ };
12
+ export function useMainDevice(): any;
13
+ export function useCanvasRef(): any;
14
+ export function useDevice(adapterOptions: any, deviceDescriptor: any): {
15
+ adapter: any;
16
+ device: any;
17
+ };
18
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../commonjs/hooks.js"],"names":[],"mappings":";AAQA,iEAMC;AAGD;;;;QAYC;AAED;;;EAWC;AAED,qCAMC;AAED,oCAAmD;AAEnD;;;EA0BC"}
@@ -0,0 +1,2 @@
1
+ export const __esModule: boolean;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../commonjs/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export const __esModule: boolean;
2
+ export const WebGPUModule: any;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commonjs/main/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export const __esModule: boolean;
2
+ //# sourceMappingURL=index.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../commonjs/main/index.web.js"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../commonjs/types.js"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export const __esModule: boolean;
2
+ export function contextIdToId(contextId: any): string;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../commonjs/utils.js"],"names":[],"mappings":";AAOA,sDAEC"}
@@ -0,0 +1,8 @@
1
+ export function Canvas({ transparent, ref, ...props }: {
2
+ [x: string]: any;
3
+ transparent: any;
4
+ ref: any;
5
+ }): React.CElement<import("react-native").ViewProps, View>;
6
+ import { View } from "react-native";
7
+ import React from "react";
8
+ //# sourceMappingURL=Canvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../module/Canvas.js"],"names":[],"mappings":"AAQO;;;;2DAoCN;qBA1CoB,cAAc;kBAD0B,OAAO"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("react-native").TurboModule;
2
+ export default _default;
3
+ //# sourceMappingURL=NativeWebGPUModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeWebGPUModule.d.ts","sourceRoot":"","sources":["../../../module/NativeWebGPUModule.js"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ export class GPUOffscreenCanvas {
2
+ constructor(width: any, height: any);
3
+ width: any;
4
+ height: any;
5
+ context: GPUOffscreenCanvasContext;
6
+ getContext(contextId: any): GPUOffscreenCanvasContext | null;
7
+ getImageData(): any;
8
+ }
9
+ declare class GPUOffscreenCanvasContext {
10
+ constructor(canvas: any);
11
+ __brand: string;
12
+ texture: null;
13
+ device: null;
14
+ canvas: any;
15
+ textureFormat: GPUTextureFormat;
16
+ getConfiguration(): void;
17
+ present(): void;
18
+ getDevice(): never;
19
+ getTexture(): never;
20
+ configure(config: any): undefined;
21
+ unconfigure(): undefined;
22
+ getCurrentTexture(): never;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=Offscreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Offscreen.d.ts","sourceRoot":"","sources":["../../../module/Offscreen.js"],"names":[],"mappings":"AAAA;IACE,qCAIC;IAHC,WAAkB;IAClB,YAAoB;IACpB,mCAAkD;IAEpD,6DAMC;IACD,oBA4BC;CACF;AACD;IAME,yBAGC;IARD,gBAA6B;IAC7B,cAAe;IACf,aAAc;IAIZ,YAAoB;IACpB,gCAA6D;IAE/D,yBAEC;IACD,gBAEC;IACD,mBAKC;IACD,oBAKC;IACD,kCASC;IACD,yBAMC;IACD,2BAKC;CACF"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("react-native").HostComponent<object>;
2
+ export default _default;
3
+ //# sourceMappingURL=WebGPUViewNativeComponent.d.ts.map