react-native-wgpu 0.5.11 → 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 (397) hide show
  1. package/README.md +13 -302
  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/{src → webgpu/src}/Canvas.d.ts +0 -10
  7. package/lib/typescript/webgpu/src/Canvas.d.ts.map +1 -0
  8. package/lib/typescript/webgpu/src/NativeWebGPUModule.d.ts.map +1 -0
  9. package/lib/typescript/webgpu/src/Offscreen.d.ts.map +1 -0
  10. package/lib/typescript/webgpu/src/WebGPUViewNativeComponent.d.ts.map +1 -0
  11. package/lib/typescript/webgpu/src/external/ModuleProxy.d.ts.map +1 -0
  12. package/lib/typescript/webgpu/src/external/index.d.ts.map +1 -0
  13. package/lib/typescript/webgpu/src/external/reanimated/ReanimatedProxy.d.ts.map +1 -0
  14. package/lib/typescript/webgpu/src/external/reanimated/index.d.ts.map +1 -0
  15. package/lib/typescript/webgpu/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -0
  16. package/lib/typescript/webgpu/src/hooks.d.ts.map +1 -0
  17. package/lib/typescript/webgpu/src/index.d.ts +37 -0
  18. package/lib/typescript/webgpu/src/index.d.ts.map +1 -0
  19. package/lib/typescript/webgpu/src/main/index.d.ts.map +1 -0
  20. package/lib/typescript/webgpu/src/types.d.ts +50 -0
  21. package/lib/typescript/webgpu/src/types.d.ts.map +1 -0
  22. package/lib/typescript/{eslint.config.d.mts.map → webgpu-shim/eslint.config.d.mts.map} +1 -1
  23. package/lib/typescript/{lib → webgpu-shim/lib}/commonjs/index.d.ts.map +1 -1
  24. package/lib/typescript/webgpu-shim/lib/module/index.d.ts +2 -0
  25. package/lib/typescript/{lib → webgpu-shim/lib}/module/index.d.ts.map +1 -1
  26. package/lib/typescript/webgpu-shim/src/index.d.ts +2 -0
  27. package/lib/typescript/webgpu-shim/src/index.d.ts.map +1 -0
  28. package/package.json +13 -82
  29. package/src/index.ts +9 -0
  30. package/LICENSE +0 -20
  31. package/android/CMakeLists.txt +0 -108
  32. package/android/build.gradle +0 -138
  33. package/android/cpp/AndroidPlatformContext.h +0 -207
  34. package/android/cpp/cpp-adapter.cpp +0 -71
  35. package/android/src/main/AndroidManifest.xml +0 -3
  36. package/android/src/main/java/com/webgpu/WebGPUAHBView.java +0 -298
  37. package/android/src/main/java/com/webgpu/WebGPUAPI.java +0 -20
  38. package/android/src/main/java/com/webgpu/WebGPUBaseView.java +0 -61
  39. package/android/src/main/java/com/webgpu/WebGPUModule.java +0 -50
  40. package/android/src/main/java/com/webgpu/WebGPUSurfaceView.java +0 -41
  41. package/android/src/main/java/com/webgpu/WebGPUSurfaceViewWithSC.java +0 -79
  42. package/android/src/main/java/com/webgpu/WebGPUTextureView.java +0 -46
  43. package/android/src/main/java/com/webgpu/WebGPUView.java +0 -108
  44. package/android/src/main/java/com/webgpu/WebGPUViewManager.java +0 -38
  45. package/android/src/main/java/com/webgpu/WebGPUViewPackage.java +0 -50
  46. package/android/src/newarch/com/webgpu/WebGPUViewManagerSpec.java +0 -24
  47. package/apple/ApplePlatformContext.h +0 -31
  48. package/apple/ApplePlatformContext.mm +0 -157
  49. package/apple/MetalView.h +0 -13
  50. package/apple/MetalView.mm +0 -50
  51. package/apple/RNWGUIKit.h +0 -16
  52. package/apple/WebGPUModule.h +0 -13
  53. package/apple/WebGPUModule.mm +0 -89
  54. package/apple/WebGPUView.h +0 -12
  55. package/apple/WebGPUView.mm +0 -66
  56. package/cpp/WGPULogger.h +0 -100
  57. package/cpp/dawn_logging.cpp +0 -119
  58. package/cpp/jsi/EnumMapper.h +0 -45
  59. package/cpp/jsi/JSIConverter.h +0 -473
  60. package/cpp/jsi/NativeObject.h +0 -607
  61. package/cpp/jsi/Promise.cpp +0 -44
  62. package/cpp/jsi/Promise.h +0 -35
  63. package/cpp/jsi/RuntimeAwareCache.cpp +0 -7
  64. package/cpp/jsi/RuntimeAwareCache.h +0 -100
  65. package/cpp/jsi/RuntimeLifecycleMonitor.cpp +0 -72
  66. package/cpp/jsi/RuntimeLifecycleMonitor.h +0 -32
  67. package/cpp/rnwgpu/ArrayBuffer.h +0 -73
  68. package/cpp/rnwgpu/PlatformContext.h +0 -46
  69. package/cpp/rnwgpu/RNWebGPUManager.cpp +0 -225
  70. package/cpp/rnwgpu/RNWebGPUManager.h +0 -46
  71. package/cpp/rnwgpu/SurfaceRegistry.h +0 -230
  72. package/cpp/rnwgpu/api/Canvas.h +0 -57
  73. package/cpp/rnwgpu/api/Convertors.h +0 -761
  74. package/cpp/rnwgpu/api/External.h +0 -12
  75. package/cpp/rnwgpu/api/GPU.cpp +0 -127
  76. package/cpp/rnwgpu/api/GPU.h +0 -58
  77. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -191
  78. package/cpp/rnwgpu/api/GPUAdapter.h +0 -59
  79. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  80. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  81. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  82. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  83. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -97
  84. package/cpp/rnwgpu/api/GPUBuffer.h +0 -87
  85. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -67
  86. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -66
  87. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  88. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  89. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  90. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  91. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  92. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  93. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  94. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  95. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  96. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -492
  97. package/cpp/rnwgpu/api/GPUDevice.h +0 -259
  98. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  99. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  100. package/cpp/rnwgpu/api/GPUError.h +0 -35
  101. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  102. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -45
  103. package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
  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 -51
  122. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  123. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  124. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  125. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  126. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  127. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  128. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -71
  129. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  130. package/cpp/rnwgpu/api/ImageBitmap.h +0 -40
  131. package/cpp/rnwgpu/api/RNWebGPU.h +0 -199
  132. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -65
  133. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
  134. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -57
  135. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -98
  136. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -58
  137. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -53
  138. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -57
  139. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -57
  140. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -60
  141. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  142. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  143. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -67
  144. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -59
  145. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  146. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -46
  147. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -46
  148. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -57
  149. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -59
  150. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -68
  151. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -104
  152. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -100
  153. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -39
  154. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -80
  155. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -74
  156. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -63
  157. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  158. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -66
  159. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -82
  160. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -55
  161. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  162. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -55
  163. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -58
  164. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -70
  165. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -62
  166. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -56
  167. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -44
  168. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -46
  169. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -81
  170. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -82
  171. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -102
  172. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -93
  173. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -59
  174. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -104
  175. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -52
  176. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -46
  177. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -111
  178. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -61
  179. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -63
  180. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  181. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -65
  182. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -60
  183. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -60
  184. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -92
  185. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  186. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -92
  187. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -65
  188. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -54
  189. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -63
  190. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -74
  191. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
  192. package/cpp/rnwgpu/async/AsyncDispatcher.h +0 -28
  193. package/cpp/rnwgpu/async/AsyncRunner.cpp +0 -215
  194. package/cpp/rnwgpu/async/AsyncRunner.h +0 -53
  195. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -181
  196. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -55
  197. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.cpp +0 -23
  198. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.h +0 -22
  199. package/cpp/webgpu/webgpu.h +0 -4918
  200. package/cpp/webgpu/webgpu_cpp.h +0 -10294
  201. package/cpp/webgpu/webgpu_cpp_chained_struct.h +0 -57
  202. package/cpp/webgpu/webgpu_cpp_print.h +0 -2755
  203. package/cpp/webgpu/webgpu_enum_class_bitmasks.h +0 -161
  204. package/lib/commonjs/Canvas.js +0 -55
  205. package/lib/commonjs/Canvas.js.map +0 -1
  206. package/lib/commonjs/NativeWebGPUModule.js +0 -10
  207. package/lib/commonjs/NativeWebGPUModule.js.map +0 -1
  208. package/lib/commonjs/Offscreen.js +0 -103
  209. package/lib/commonjs/Offscreen.js.map +0 -1
  210. package/lib/commonjs/WebGPUViewNativeComponent.js +0 -10
  211. package/lib/commonjs/WebGPUViewNativeComponent.js.map +0 -1
  212. package/lib/commonjs/WebGPUViewNativeComponent.web.js +0 -103
  213. package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +0 -1
  214. package/lib/commonjs/WebPolyfillGPUModule.js +0 -40
  215. package/lib/commonjs/WebPolyfillGPUModule.js.map +0 -1
  216. package/lib/commonjs/external/ModuleProxy.js +0 -36
  217. package/lib/commonjs/external/ModuleProxy.js.map +0 -1
  218. package/lib/commonjs/external/index.js +0 -17
  219. package/lib/commonjs/external/index.js.map +0 -1
  220. package/lib/commonjs/external/reanimated/ReanimatedProxy.js +0 -18
  221. package/lib/commonjs/external/reanimated/ReanimatedProxy.js.map +0 -1
  222. package/lib/commonjs/external/reanimated/index.js +0 -21
  223. package/lib/commonjs/external/reanimated/index.js.map +0 -1
  224. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js +0 -49
  225. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
  226. package/lib/commonjs/hooks.js +0 -83
  227. package/lib/commonjs/hooks.js.map +0 -1
  228. package/lib/commonjs/main/index.js +0 -91
  229. package/lib/commonjs/main/index.js.map +0 -1
  230. package/lib/commonjs/main/index.web.js +0 -51
  231. package/lib/commonjs/main/index.web.js.map +0 -1
  232. package/lib/commonjs/types.js +0 -2
  233. package/lib/commonjs/types.js.map +0 -1
  234. package/lib/commonjs/utils.js +0 -11
  235. package/lib/commonjs/utils.js.map +0 -1
  236. package/lib/module/Canvas.js +0 -46
  237. package/lib/module/Canvas.js.map +0 -1
  238. package/lib/module/NativeWebGPUModule.js +0 -4
  239. package/lib/module/NativeWebGPUModule.js.map +0 -1
  240. package/lib/module/Offscreen.js +0 -96
  241. package/lib/module/Offscreen.js.map +0 -1
  242. package/lib/module/WebGPUViewNativeComponent.js +0 -4
  243. package/lib/module/WebGPUViewNativeComponent.js.map +0 -1
  244. package/lib/module/WebGPUViewNativeComponent.web.js +0 -96
  245. package/lib/module/WebGPUViewNativeComponent.web.js.map +0 -1
  246. package/lib/module/WebPolyfillGPUModule.js +0 -38
  247. package/lib/module/WebPolyfillGPUModule.js.map +0 -1
  248. package/lib/module/external/ModuleProxy.js +0 -28
  249. package/lib/module/external/ModuleProxy.js.map +0 -1
  250. package/lib/module/external/index.js +0 -2
  251. package/lib/module/external/index.js.map +0 -1
  252. package/lib/module/external/reanimated/ReanimatedProxy.js +0 -12
  253. package/lib/module/external/reanimated/ReanimatedProxy.js.map +0 -1
  254. package/lib/module/external/reanimated/index.js +0 -3
  255. package/lib/module/external/reanimated/index.js.map +0 -1
  256. package/lib/module/external/reanimated/registerWebGPUForReanimated.js +0 -42
  257. package/lib/module/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
  258. package/lib/module/hooks.js +0 -70
  259. package/lib/module/hooks.js.map +0 -1
  260. package/lib/module/main/index.js +0 -33
  261. package/lib/module/main/index.js.map +0 -1
  262. package/lib/module/main/index.web.js +0 -8
  263. package/lib/module/main/index.web.js.map +0 -1
  264. package/lib/module/types.js +0 -2
  265. package/lib/module/types.js.map +0 -1
  266. package/lib/module/utils.js +0 -5
  267. package/lib/module/utils.js.map +0 -1
  268. package/lib/typescript/babel.config.d.ts +0 -3
  269. package/lib/typescript/babel.config.d.ts.map +0 -1
  270. package/lib/typescript/jest.config.d.ts +0 -9
  271. package/lib/typescript/jest.config.d.ts.map +0 -1
  272. package/lib/typescript/lib/commonjs/Canvas.d.ts +0 -7
  273. package/lib/typescript/lib/commonjs/Canvas.d.ts.map +0 -1
  274. package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts +0 -5
  275. package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts.map +0 -1
  276. package/lib/typescript/lib/commonjs/Offscreen.d.ts +0 -26
  277. package/lib/typescript/lib/commonjs/Offscreen.d.ts.map +0 -1
  278. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts +0 -5
  279. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts.map +0 -1
  280. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts +0 -4
  281. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  282. package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts +0 -2
  283. package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts.map +0 -1
  284. package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts +0 -12
  285. package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts.map +0 -1
  286. package/lib/typescript/lib/commonjs/external/index.d.ts.map +0 -1
  287. package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts +0 -6
  288. package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  289. package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts +0 -4
  290. package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts.map +0 -1
  291. package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts +0 -9
  292. package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  293. package/lib/typescript/lib/commonjs/hooks.d.ts +0 -18
  294. package/lib/typescript/lib/commonjs/hooks.d.ts.map +0 -1
  295. package/lib/typescript/lib/commonjs/index.d.ts +0 -2
  296. package/lib/typescript/lib/commonjs/main/index.d.ts +0 -3
  297. package/lib/typescript/lib/commonjs/main/index.d.ts.map +0 -1
  298. package/lib/typescript/lib/commonjs/main/index.web.d.ts +0 -2
  299. package/lib/typescript/lib/commonjs/main/index.web.d.ts.map +0 -1
  300. package/lib/typescript/lib/commonjs/types.d.ts +0 -1
  301. package/lib/typescript/lib/commonjs/types.d.ts.map +0 -1
  302. package/lib/typescript/lib/commonjs/utils.d.ts +0 -3
  303. package/lib/typescript/lib/commonjs/utils.d.ts.map +0 -1
  304. package/lib/typescript/lib/module/Canvas.d.ts +0 -8
  305. package/lib/typescript/lib/module/Canvas.d.ts.map +0 -1
  306. package/lib/typescript/lib/module/NativeWebGPUModule.d.ts +0 -3
  307. package/lib/typescript/lib/module/NativeWebGPUModule.d.ts.map +0 -1
  308. package/lib/typescript/lib/module/Offscreen.d.ts +0 -25
  309. package/lib/typescript/lib/module/Offscreen.d.ts.map +0 -1
  310. package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts +0 -3
  311. package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts.map +0 -1
  312. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts +0 -3
  313. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  314. package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts +0 -2
  315. package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts.map +0 -1
  316. package/lib/typescript/lib/module/external/ModuleProxy.d.ts +0 -7
  317. package/lib/typescript/lib/module/external/ModuleProxy.d.ts.map +0 -1
  318. package/lib/typescript/lib/module/external/index.d.ts.map +0 -1
  319. package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts +0 -5
  320. package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  321. package/lib/typescript/lib/module/external/reanimated/index.d.ts.map +0 -1
  322. package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts +0 -2
  323. package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  324. package/lib/typescript/lib/module/hooks.d.ts +0 -18
  325. package/lib/typescript/lib/module/hooks.d.ts.map +0 -1
  326. package/lib/typescript/lib/module/index.d.ts +0 -2
  327. package/lib/typescript/lib/module/main/index.d.ts.map +0 -1
  328. package/lib/typescript/lib/module/main/index.web.d.ts +0 -5
  329. package/lib/typescript/lib/module/main/index.web.d.ts.map +0 -1
  330. package/lib/typescript/lib/module/types.d.ts +0 -1
  331. package/lib/typescript/lib/module/types.d.ts.map +0 -1
  332. package/lib/typescript/lib/module/utils.d.ts +0 -2
  333. package/lib/typescript/lib/module/utils.d.ts.map +0 -1
  334. package/lib/typescript/src/Canvas.d.ts.map +0 -1
  335. package/lib/typescript/src/NativeWebGPUModule.d.ts.map +0 -1
  336. package/lib/typescript/src/Offscreen.d.ts.map +0 -1
  337. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +0 -1
  338. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +0 -9
  339. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  340. package/lib/typescript/src/WebPolyfillGPUModule.d.ts +0 -2
  341. package/lib/typescript/src/WebPolyfillGPUModule.d.ts.map +0 -1
  342. package/lib/typescript/src/external/ModuleProxy.d.ts.map +0 -1
  343. package/lib/typescript/src/external/index.d.ts +0 -2
  344. package/lib/typescript/src/external/index.d.ts.map +0 -1
  345. package/lib/typescript/src/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  346. package/lib/typescript/src/external/reanimated/index.d.ts +0 -3
  347. package/lib/typescript/src/external/reanimated/index.d.ts.map +0 -1
  348. package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  349. package/lib/typescript/src/hooks.d.ts.map +0 -1
  350. package/lib/typescript/src/index.d.ts +0 -18
  351. package/lib/typescript/src/index.d.ts.map +0 -1
  352. package/lib/typescript/src/main/index.d.ts +0 -6
  353. package/lib/typescript/src/main/index.d.ts.map +0 -1
  354. package/lib/typescript/src/main/index.web.d.ts +0 -6
  355. package/lib/typescript/src/main/index.web.d.ts.map +0 -1
  356. package/lib/typescript/src/types.d.ts +0 -19
  357. package/lib/typescript/src/types.d.ts.map +0 -1
  358. package/lib/typescript/src/utils.d.ts +0 -2
  359. package/lib/typescript/src/utils.d.ts.map +0 -1
  360. package/libs/android/arm64-v8a/libwebgpu_dawn.so +0 -0
  361. package/libs/android/armeabi-v7a/libwebgpu_dawn.so +0 -0
  362. package/libs/android/x86/libwebgpu_dawn.so +0 -0
  363. package/libs/android/x86_64/libwebgpu_dawn.so +0 -0
  364. package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +0 -59
  365. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
  366. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
  367. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
  368. package/react-native-wgpu.podspec +0 -47
  369. package/src/Canvas.tsx +0 -91
  370. package/src/NativeWebGPUModule.ts +0 -9
  371. package/src/Offscreen.ts +0 -113
  372. package/src/WebGPUViewNativeComponent.ts +0 -11
  373. package/src/WebGPUViewNativeComponent.web.ts +0 -113
  374. package/src/WebPolyfillGPUModule.ts +0 -53
  375. package/src/external/ModuleProxy.ts +0 -30
  376. package/src/external/index.ts +0 -1
  377. package/src/external/reanimated/ReanimatedProxy.ts +0 -19
  378. package/src/external/reanimated/index.ts +0 -2
  379. package/src/external/reanimated/registerWebGPUForReanimated.ts +0 -43
  380. package/src/hooks.tsx +0 -93
  381. package/src/index.tsx +0 -31
  382. package/src/main/index.tsx +0 -40
  383. package/src/main/index.web.tsx +0 -8
  384. package/src/types.ts +0 -20
  385. package/src/utils.ts +0 -4
  386. /package/lib/typescript/{src → webgpu/src}/NativeWebGPUModule.d.ts +0 -0
  387. /package/lib/typescript/{src → webgpu/src}/Offscreen.d.ts +0 -0
  388. /package/lib/typescript/{src → webgpu/src}/WebGPUViewNativeComponent.d.ts +0 -0
  389. /package/lib/typescript/{src → webgpu/src}/external/ModuleProxy.d.ts +0 -0
  390. /package/lib/typescript/{lib/module → webgpu/src}/external/index.d.ts +0 -0
  391. /package/lib/typescript/{src → webgpu/src}/external/reanimated/ReanimatedProxy.d.ts +0 -0
  392. /package/lib/typescript/{lib/module → webgpu/src}/external/reanimated/index.d.ts +0 -0
  393. /package/lib/typescript/{src → webgpu/src}/external/reanimated/registerWebGPUForReanimated.d.ts +0 -0
  394. /package/lib/typescript/{src → webgpu/src}/hooks.d.ts +0 -0
  395. /package/lib/typescript/{lib/module → webgpu/src}/main/index.d.ts +0 -0
  396. /package/lib/typescript/{eslint.config.d.mts → webgpu-shim/eslint.config.d.mts} +0 -0
  397. /package/lib/typescript/{lib/commonjs/external → webgpu-shim/lib/commonjs}/index.d.ts +0 -0
@@ -1,38 +0,0 @@
1
- package com.webgpu;
2
-
3
- import androidx.annotation.NonNull;
4
- import androidx.annotation.Nullable;
5
-
6
- import com.facebook.react.module.annotations.ReactModule;
7
- import com.facebook.react.uimanager.ThemedReactContext;
8
- import com.facebook.react.uimanager.annotations.ReactProp;
9
-
10
- @ReactModule(name = WebGPUViewManager.NAME)
11
- public class WebGPUViewManager extends WebGPUViewManagerSpec<WebGPUView> {
12
-
13
- public static final String NAME = "WebGPUView";
14
-
15
- @NonNull
16
- @Override
17
- public String getName() {
18
- return NAME;
19
- }
20
-
21
- @NonNull
22
- @Override
23
- public WebGPUView createViewInstance(@NonNull ThemedReactContext context) {
24
- return new WebGPUView(context);
25
- }
26
-
27
- @Override
28
- @ReactProp(name = "transparent")
29
- public void setTransparent(WebGPUView view, boolean value) {
30
- view.setTransparent(value);
31
- }
32
-
33
- @Override
34
- @ReactProp(name = "contextId")
35
- public void setContextId(WebGPUView view, int value) {
36
- view.setContextId(value);
37
- }
38
- }
@@ -1,50 +0,0 @@
1
-
2
- package com.webgpu;
3
-
4
- import com.facebook.react.TurboReactPackage;
5
- import com.facebook.react.bridge.NativeModule;
6
- import com.facebook.react.bridge.ReactApplicationContext;
7
- import com.facebook.react.module.annotations.ReactModule;
8
- import com.facebook.react.module.model.ReactModuleInfo;
9
- import com.facebook.react.module.model.ReactModuleInfoProvider;
10
- import com.facebook.react.uimanager.ViewManager;
11
-
12
- import java.util.Collections;
13
- import java.util.HashMap;
14
- import java.util.List;
15
- import java.util.Map;
16
-
17
- public class WebGPUViewPackage extends TurboReactPackage {
18
- @Override
19
- public NativeModule getModule(String name, ReactApplicationContext reactContext) {
20
- if (name.equals(WebGPUModule.NAME)) {
21
- return new WebGPUModule(reactContext);
22
- }
23
- return null;
24
- }
25
-
26
- @Override
27
- public ReactModuleInfoProvider getReactModuleInfoProvider() {
28
- return () -> {
29
- Map<String, ReactModuleInfo> map = new HashMap<>();
30
- map.put(
31
- WebGPUModule.NAME,
32
- new ReactModuleInfo(
33
- WebGPUModule.NAME,
34
- WebGPUModule.class.getName(),
35
- false,
36
- false,
37
- false,
38
- false,
39
- true // isTurboModule
40
- )
41
- );
42
- return map;
43
- };
44
- }
45
-
46
- @Override
47
- public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
48
- return Collections.singletonList(new WebGPUViewManager());
49
- }
50
- }
@@ -1,24 +0,0 @@
1
- package com.webgpu;
2
-
3
- import android.view.View;
4
-
5
- import androidx.annotation.Nullable;
6
-
7
- import com.facebook.react.uimanager.SimpleViewManager;
8
- import com.facebook.react.uimanager.ViewManagerDelegate;
9
- import com.facebook.react.viewmanagers.WebGPUViewManagerDelegate;
10
- import com.facebook.react.viewmanagers.WebGPUViewManagerInterface;
11
-
12
- public abstract class WebGPUViewManagerSpec<T extends View> extends SimpleViewManager<T> implements WebGPUViewManagerInterface<T> {
13
- private final ViewManagerDelegate<T> mDelegate;
14
-
15
- public WebGPUViewManagerSpec() {
16
- mDelegate = new WebGPUViewManagerDelegate(this);
17
- }
18
-
19
- @Nullable
20
- @Override
21
- protected ViewManagerDelegate<T> getDelegate() {
22
- return mDelegate;
23
- }
24
- }
@@ -1,31 +0,0 @@
1
- #pragma once
2
-
3
- #include "PlatformContext.h"
4
- #include <string>
5
-
6
- namespace rnwgpu {
7
-
8
- class ApplePlatformContext : public PlatformContext {
9
- public:
10
- ApplePlatformContext();
11
- ~ApplePlatformContext() = default;
12
-
13
- wgpu::Surface makeSurface(wgpu::Instance instance, void *surface, int width,
14
- int height) override;
15
-
16
- ImageData createImageBitmap(std::string blobId, double offset,
17
- double size) override;
18
-
19
- void
20
- createImageBitmapAsync(std::string blobId, double offset, double size,
21
- std::function<void(ImageData)> onSuccess,
22
- std::function<void(std::string)> onError) override;
23
-
24
- ImageData createImageBitmapFromData(std::span<const uint8_t> data) override;
25
-
26
- void createImageBitmapFromDataAsync(
27
- std::span<const uint8_t> data, std::function<void(ImageData)> onSuccess,
28
- std::function<void(std::string)> onError) override;
29
- };
30
-
31
- } // namespace rnwgpu
@@ -1,157 +0,0 @@
1
- #include "ApplePlatformContext.h"
2
-
3
- #include <TargetConditionals.h>
4
-
5
- #import <React/RCTBlobManager.h>
6
- #import <React/RCTBridge+Private.h>
7
- #import <ReactCommon/RCTTurboModule.h>
8
-
9
- #include "RNWebGPUManager.h"
10
- #include "WebGPUModule.h"
11
-
12
- namespace rnwgpu {
13
-
14
- void checkIfUsingSimulatorWithAPIValidation() {
15
- #if TARGET_OS_SIMULATOR
16
- NSDictionary *environment = [[NSProcessInfo processInfo] environment];
17
- NSString *metalDeviceWrapperType = environment[@"METAL_DEVICE_WRAPPER_TYPE"];
18
-
19
- if ([metalDeviceWrapperType isEqualToString:@"1"]) {
20
- throw std::runtime_error(
21
- "To use React Native WebGPU project on the iOS simulator, you need to "
22
- "disable the Metal validation API. In 'Edit Scheme,' uncheck 'Metal "
23
- "Validation.'");
24
- }
25
- #endif
26
- }
27
-
28
- ApplePlatformContext::ApplePlatformContext() {
29
- checkIfUsingSimulatorWithAPIValidation();
30
- }
31
-
32
- wgpu::Surface ApplePlatformContext::makeSurface(wgpu::Instance instance,
33
- void *surface, int width,
34
- int height) {
35
- wgpu::SurfaceSourceMetalLayer metalSurfaceDesc;
36
- metalSurfaceDesc.layer = surface;
37
- wgpu::SurfaceDescriptor surfaceDescriptor;
38
- surfaceDescriptor.nextInChain = &metalSurfaceDesc;
39
- return instance.CreateSurface(&surfaceDescriptor);
40
- }
41
-
42
- static std::span<const uint8_t> nsDataToSpan(NSData *data) {
43
- return {static_cast<const uint8_t *>(data.bytes), data.length};
44
- }
45
-
46
- ImageData ApplePlatformContext::createImageBitmap(std::string blobId,
47
- double offset, double size) {
48
- RCTBlobManager *blobManager =
49
- [[RCTBridge currentBridge] moduleForClass:RCTBlobManager.class];
50
- NSData *blobData =
51
- [blobManager resolve:[NSString stringWithUTF8String:blobId.c_str()]
52
- offset:(long)offset
53
- size:(long)size];
54
-
55
- if (!blobData) {
56
- throw std::runtime_error("Couldn't retrieve blob data");
57
- }
58
-
59
- return createImageBitmapFromData(nsDataToSpan(blobData));
60
- }
61
-
62
- void ApplePlatformContext::createImageBitmapAsync(
63
- std::string blobId, double offset, double size,
64
- std::function<void(ImageData)> onSuccess,
65
- std::function<void(std::string)> onError) {
66
- // Resolve blob on current thread (requires RCTBridge access)
67
- RCTBlobManager *blobManager =
68
- [[RCTBridge currentBridge] moduleForClass:RCTBlobManager.class];
69
- NSData *blobData =
70
- [blobManager resolve:[NSString stringWithUTF8String:blobId.c_str()]
71
- offset:(long)offset
72
- size:(long)size];
73
-
74
- if (!blobData) {
75
- onError("Couldn't retrieve blob data");
76
- return;
77
- }
78
-
79
- // blobData is alive during this synchronous call;
80
- // createImageBitmapFromDataAsync copies the span before dispatching
81
- createImageBitmapFromDataAsync(nsDataToSpan(blobData), std::move(onSuccess),
82
- std::move(onError));
83
- }
84
-
85
- ImageData
86
- ApplePlatformContext::createImageBitmapFromData(std::span<const uint8_t> data) {
87
- // This avoids a copy by assuming the UIImage/NSImage constructors
88
- // decode `nsData` eagerly before the memory for the wrapped `data`
89
- // is freed.
90
- //
91
- // Since we get the `CGImageRef` from `image` and then throw
92
- // it away, that's a fairly safe assumption.
93
- NSData *nsData =
94
- [NSData dataWithBytesNoCopy:const_cast<uint8_t *>(data.data())
95
- length:data.size()
96
- freeWhenDone:NO];
97
-
98
- #if !TARGET_OS_OSX
99
- UIImage *image = [UIImage imageWithData:nsData];
100
- #else
101
- NSImage *image = [[NSImage alloc] initWithData:nsData];
102
- #endif
103
- if (!image) {
104
- throw std::runtime_error("Couldn't decode image");
105
- }
106
-
107
- #if !TARGET_OS_OSX
108
- CGImageRef cgImage = image.CGImage;
109
- #else
110
- CGImageRef cgImage = [image CGImageForProposedRect:NULL
111
- context:NULL
112
- hints:NULL];
113
- #endif
114
- size_t width = CGImageGetWidth(cgImage);
115
- size_t height = CGImageGetHeight(cgImage);
116
- size_t bitsPerComponent = 8;
117
- size_t bytesPerRow = width * 4;
118
-
119
- ImageData result;
120
- result.width = static_cast<int>(width);
121
- result.height = static_cast<int>(height);
122
- result.data.resize(height * bytesPerRow);
123
- result.format = wgpu::TextureFormat::RGBA8Unorm;
124
-
125
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
126
- CGContextRef context = CGBitmapContextCreate(
127
- result.data.data(), width, height, bitsPerComponent, bytesPerRow,
128
- colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
129
-
130
- CGContextDrawImage(context, CGRectMake(0, 0, width, height), cgImage);
131
-
132
- CGContextRelease(context);
133
- CGColorSpaceRelease(colorSpace);
134
-
135
- return result;
136
- }
137
-
138
- void ApplePlatformContext::createImageBitmapFromDataAsync(
139
- std::span<const uint8_t> data, std::function<void(ImageData)> onSuccess,
140
- std::function<void(std::string)> onError) {
141
- // Copy span data into shared_ptr so the dispatch_async block owns the memory
142
- auto ownedData =
143
- std::make_shared<std::vector<uint8_t>>(data.begin(), data.end());
144
-
145
- dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{
146
- @autoreleasepool {
147
- try {
148
- auto result = createImageBitmapFromData(*ownedData);
149
- onSuccess(std::move(result));
150
- } catch (const std::exception &e) {
151
- onError(e.what());
152
- }
153
- }
154
- });
155
- }
156
-
157
- } // namespace rnwgpu
package/apple/MetalView.h DELETED
@@ -1,13 +0,0 @@
1
- #pragma once
2
-
3
- #import "RNWGUIKit.h"
4
- #import "WebGPUModule.h"
5
-
6
- @interface MetalView : RNWGPlatformView
7
-
8
- @property NSNumber *contextId;
9
-
10
- - (void)configure;
11
- - (void)update;
12
-
13
- @end
@@ -1,50 +0,0 @@
1
- #import "MetalView.h"
2
- #import "webgpu/webgpu_cpp.h"
3
-
4
- @implementation MetalView {
5
- BOOL _isConfigured;
6
- }
7
-
8
- #if !TARGET_OS_OSX
9
- + (Class)layerClass {
10
- return [CAMetalLayer class];
11
- }
12
- #else // !TARGET_OS_OSX
13
- - (instancetype)init {
14
- self = [super init];
15
- if (self) {
16
- self.wantsLayer = true;
17
- self.layer = [CAMetalLayer layer];
18
- }
19
- return self;
20
- }
21
- #endif // !TARGET_OS_OSX
22
-
23
- - (void)configure {
24
- auto size = self.frame.size;
25
- std::shared_ptr<rnwgpu::RNWebGPUManager> manager = [WebGPUModule getManager];
26
- void *nativeSurface = (__bridge void *)self.layer;
27
- auto &registry = rnwgpu::SurfaceRegistry::getInstance();
28
- auto gpu = manager->_gpu;
29
- auto surface = manager->_platformContext->makeSurface(
30
- gpu, nativeSurface, size.width, size.height);
31
- registry
32
- .getSurfaceInfoOrCreate([_contextId intValue], gpu, size.width,
33
- size.height)
34
- ->switchToOnscreen(nativeSurface, surface);
35
- }
36
-
37
- - (void)update {
38
- auto size = self.frame.size;
39
- auto &registry = rnwgpu::SurfaceRegistry::getInstance();
40
- registry.getSurfaceInfo([_contextId intValue])
41
- ->resize(size.width, size.height);
42
- }
43
-
44
- - (void)dealloc {
45
- auto &registry = rnwgpu::SurfaceRegistry::getInstance();
46
- // Remove the surface info from the registry
47
- registry.removeSurfaceInfo([_contextId intValue]);
48
- }
49
-
50
- @end
package/apple/RNWGUIKit.h DELETED
@@ -1,16 +0,0 @@
1
- #ifndef PACKAGES_WEBGPU_APPLE_RNWGUIKIT_H_
2
- #define PACKAGES_WEBGPU_APPLE_RNWGUIKIT_H_
3
-
4
- #if !TARGET_OS_OSX
5
- #import <UIKit/UIKit.h>
6
- #else
7
- #import <Appkit/Appkit.h>
8
- #endif
9
-
10
- #if !TARGET_OS_OSX
11
- typedef UIView RNWGPlatformView;
12
- #else
13
- typedef NSView RNWGPlatformView;
14
- #endif
15
-
16
- #endif // PACKAGES_WEBGPU_APPLE_RNWGUIKIT_H_
@@ -1,13 +0,0 @@
1
- #pragma once
2
-
3
- #import "RNWebGPUManager.h"
4
- #import <RNWgpuViewSpec/RNWgpuViewSpec.h>
5
- #import <React/RCTCallInvokerModule.h>
6
- #import <React/RCTEventEmitter.h>
7
-
8
- @interface WebGPUModule
9
- : RCTEventEmitter <NativeWebGPUModuleSpec, RCTCallInvokerModule>
10
-
11
- + (std::shared_ptr<rnwgpu::RNWebGPUManager>)getManager;
12
-
13
- @end
@@ -1,89 +0,0 @@
1
- #import "WebGPUModule.h"
2
- #include "ApplePlatformContext.h"
3
- #import "GPUCanvasContext.h"
4
-
5
- #import <React/RCTBridge+Private.h>
6
- #import <React/RCTCallInvoker.h>
7
- #import <React/RCTLog.h>
8
- #import <ReactCommon/RCTTurboModule.h>
9
- #import <jsi/jsi.h>
10
- #import <memory>
11
-
12
- namespace jsi = facebook::jsi;
13
- namespace react = facebook::react;
14
-
15
- // Category to declare the runtime property on RCTBridge/RCTBridgeProxy.
16
- // In Bridgeless mode, self.bridge is an RCTBridgeProxy which implements
17
- // -(void *)runtime. In Legacy mode, self.bridge is the real RCTBridge
18
- // (backed by RCTCxxBridge) which also implements it.
19
- @interface RCTBridge (JSIRuntime)
20
- - (void *)runtime;
21
- @end
22
-
23
- @implementation WebGPUModule
24
-
25
- RCT_EXPORT_MODULE(WebGPUModule)
26
-
27
- static std::shared_ptr<rnwgpu::RNWebGPUManager> webgpuManager;
28
-
29
- // Synthesize callInvoker so RCTTurboModuleManager injects the JS CallInvoker.
30
- // When the module conforms to RCTCallInvokerModule, the TurboModule infra
31
- // calls setCallInvoker: during module initialization.
32
- @synthesize callInvoker = _callInvoker;
33
-
34
- + (std::shared_ptr<rnwgpu::RNWebGPUManager>)getManager {
35
- return webgpuManager;
36
- }
37
-
38
- #pragma Setup and invalidation
39
-
40
- + (BOOL)requiresMainQueueSetup {
41
- return YES;
42
- }
43
-
44
- - (void)invalidate {
45
- webgpuManager = nil;
46
- }
47
-
48
- - (std::shared_ptr<rnwgpu::RNWebGPUManager>)getManager {
49
- return webgpuManager;
50
- }
51
-
52
- RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install) {
53
- if (webgpuManager != nil) {
54
- // Already initialized, ignore call.
55
- return @true;
56
- }
57
-
58
- // self.bridge works in both Legacy (RCTBridge) and Bridgeless
59
- // (RCTBridgeProxy).
60
- jsi::Runtime *runtime = (jsi::Runtime *)self.bridge.runtime;
61
- if (!runtime) {
62
- NSLog(@"Failed to install react-native-wgpu: jsi::Runtime* was null! "
63
- @"(self.bridge=%@)",
64
- self.bridge);
65
- return [NSNumber numberWithBool:NO];
66
- }
67
-
68
- // _callInvoker is injected by RCTTurboModuleManager because we conform to
69
- // RCTCallInvokerModule. Works in both Legacy and Bridgeless.
70
- std::shared_ptr<react::CallInvoker> jsInvoker = _callInvoker.callInvoker;
71
- if (!jsInvoker) {
72
- NSLog(@"Failed to install react-native-wgpu: react::CallInvoker was "
73
- @"null!");
74
- return [NSNumber numberWithBool:NO];
75
- }
76
-
77
- std::shared_ptr<rnwgpu::PlatformContext> platformContext =
78
- std::make_shared<rnwgpu::ApplePlatformContext>();
79
- webgpuManager = std::make_shared<rnwgpu::RNWebGPUManager>(runtime, jsInvoker,
80
- platformContext);
81
- return @true;
82
- }
83
-
84
- - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
85
- (const facebook::react::ObjCTurboModule::InitParams &)params {
86
- return std::make_shared<facebook::react::NativeWebGPUModuleSpecJSI>(params);
87
- }
88
-
89
- @end
@@ -1,12 +0,0 @@
1
- #pragma once
2
-
3
- #import "MetalView.h"
4
- #import <React/RCTViewComponentView.h>
5
- #import <UIKit/UIKit.h>
6
-
7
- NS_ASSUME_NONNULL_BEGIN
8
-
9
- @interface WebGPUView : RCTViewComponentView
10
- @end
11
-
12
- NS_ASSUME_NONNULL_END
@@ -1,66 +0,0 @@
1
- #import "WebGPUView.h"
2
-
3
- #import <react/renderer/components/RNWgpuViewSpec/ComponentDescriptors.h>
4
- #import <react/renderer/components/RNWgpuViewSpec/EventEmitters.h>
5
- #import <react/renderer/components/RNWgpuViewSpec/Props.h>
6
- #import <react/renderer/components/RNWgpuViewSpec/RCTComponentViewHelpers.h>
7
-
8
- #import "MetalView.h"
9
- #import "RCTFabricComponentsPlugins.h"
10
- #import "Utils.h"
11
-
12
- using namespace facebook::react;
13
-
14
- @implementation WebGPUView
15
-
16
- + (ComponentDescriptorProvider)componentDescriptorProvider {
17
- return concreteComponentDescriptorProvider<WebGPUViewComponentDescriptor>();
18
- }
19
-
20
- - (void)prepareForRecycle {
21
- [super prepareForRecycle];
22
- /*
23
- It's important to destroy the Metal Layer before releasing a view
24
- to the recycled pool to prevent displaying outdated content from
25
- the last usage in the new context.
26
- */
27
- self.contentView = nil;
28
- }
29
-
30
- - (MetalView *)getContentView {
31
- if (!self.contentView) {
32
- self.contentView = [MetalView new];
33
- }
34
- return (MetalView *)self.contentView;
35
- }
36
-
37
- - (void)updateProps:(const Props::Shared &)props
38
- oldProps:(const Props::Shared &)oldProps {
39
- const auto &oldViewProps =
40
- *std::static_pointer_cast<const WebGPUViewProps>(_props);
41
- const auto &newViewProps =
42
- *std::static_pointer_cast<const WebGPUViewProps>(props);
43
-
44
- if (newViewProps.contextId != oldViewProps.contextId) {
45
- /*
46
- The context is set only once during mounting the component
47
- and never changes because it isn't available for users to modify.
48
- */
49
- MetalView *metalView = [MetalView new];
50
- self.contentView = metalView;
51
- [metalView setContextId:@(newViewProps.contextId)];
52
- [metalView configure];
53
- }
54
-
55
- [super updateProps:props oldProps:oldProps];
56
- }
57
-
58
- - (void)updateLayoutMetrics:(const LayoutMetrics &)layoutMetrics
59
- oldLayoutMetrics:(const LayoutMetrics &)oldLayoutMetrics {
60
- [super updateLayoutMetrics:layoutMetrics oldLayoutMetrics:oldLayoutMetrics];
61
- [(MetalView *)self.contentView update];
62
- }
63
-
64
- Class<RCTComponentViewProtocol> WebGPUViewCls(void) { return WebGPUView.class; }
65
-
66
- @end
package/cpp/WGPULogger.h DELETED
@@ -1,100 +0,0 @@
1
- //
2
- // Created by Christian Falch on 26/08/2021.
3
- //
4
-
5
- #pragma once
6
-
7
- #include <cstdio>
8
- #include <jsi/jsi.h>
9
- #include <string>
10
-
11
- #if defined(ANDROID) || defined(__ANDROID__)
12
- #include <android/log.h>
13
- #endif
14
-
15
- #ifdef __APPLE__
16
- #include <syslog.h>
17
- #endif
18
-
19
- namespace rnwgpu {
20
-
21
- namespace jsi = facebook::jsi;
22
-
23
- class Logger {
24
- public:
25
- /**
26
- * Logs message to console
27
- * @param message Message to be written out
28
- */
29
- static void logToConsole(std::string message) {
30
- #ifdef DEBUG
31
- #if defined(ANDROID) || defined(__ANDROID__)
32
- __android_log_write(ANDROID_LOG_INFO, "WebGPU", message.c_str());
33
- #endif
34
-
35
- #ifdef __APPLE__
36
- syslog(LOG_ERR, "%s\n", message.c_str());
37
- #endif
38
- #else
39
- // In release mode, do nothing
40
- (void)message;
41
- #endif
42
- }
43
-
44
- /**
45
- * Logs to console
46
- * @param fmt Format string
47
- * @param ... Arguments to format string
48
- */
49
- static void logToConsole(const char *fmt, ...) {
50
- #ifdef DEBUG
51
- va_list args;
52
- va_start(args, fmt);
53
-
54
- static char buffer[512];
55
- vsnprintf(buffer, sizeof(buffer), fmt, args);
56
- #if defined(ANDROID) || defined(__ANDROID__)
57
- __android_log_write(ANDROID_LOG_INFO, "WebGPU", buffer);
58
- #endif
59
- #ifdef __APPLE__
60
- syslog(LOG_ERR, "WebGPU: %s\n", buffer);
61
- #endif
62
- va_end(args);
63
- #else
64
- // In release mode, do nothing
65
- (void)fmt;
66
- #endif
67
- }
68
-
69
- static void logToJavascriptConsole(jsi::Runtime &runtime,
70
- const std::string &message) {
71
- auto console = Logger::getJavascriptConsole(runtime).asObject(runtime);
72
- auto log = console.getPropertyAsFunction(runtime, "log");
73
- log.call(runtime, jsi::String::createFromUtf8(runtime, message));
74
- }
75
-
76
- static void warnToJavascriptConsole(jsi::Runtime &runtime,
77
- const std::string &message) {
78
- auto console = Logger::getJavascriptConsole(runtime).asObject(runtime);
79
- auto warn = console.getPropertyAsFunction(runtime, "warn");
80
- warn.call(runtime, jsi::String::createFromUtf8(runtime, message));
81
- }
82
-
83
- static void errorToJavascriptConsole(jsi::Runtime &runtime,
84
- const std::string &message) {
85
- auto console = Logger::getJavascriptConsole(runtime).asObject(runtime);
86
- auto warn = console.getPropertyAsFunction(runtime, "error");
87
- warn.call(runtime, jsi::String::createFromUtf8(runtime, message));
88
- }
89
-
90
- private:
91
- static jsi::Value getJavascriptConsole(jsi::Runtime &runtime) {
92
- auto console = runtime.global().getProperty(runtime, "console");
93
- if (console.isUndefined() || console.isNull()) {
94
- throw jsi::JSError(runtime, "Could not find console object.");
95
- return jsi::Value::undefined();
96
- }
97
- return console;
98
- }
99
- };
100
- } // namespace rnwgpu