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
package/package.json CHANGED
@@ -1,46 +1,27 @@
1
1
  {
2
2
  "name": "react-native-wgpu",
3
- "version": "0.5.11",
4
- "description": "React Native WebGPU",
3
+ "version": "0.5.14",
4
+ "description": "Shim that re-exports react-native-webgpu under its previous package name",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
7
- "types": "lib/typescript/src/index.d.ts",
8
7
  "react-native": "src/index",
9
8
  "source": "src/index",
10
9
  "files": [
11
10
  "src/**",
12
11
  "lib/**",
13
- "!**/__tests__/**",
14
- "android/build.gradle",
15
- "android/CMakeLists.txt",
16
- "android/cpp/**",
17
- "android/src/**",
18
- "cpp/**/*.{h,cpp}",
19
- "apple/**",
20
- "libs/**",
21
- "*.podspec"
12
+ "!**/__tests__/**"
22
13
  ],
23
- "dawn": "chromium/7770",
24
14
  "scripts": {
25
- "test": "NODE_OPTIONS='--experimental-require-module' jest -i",
26
- "test:ref": "REFERENCE=true NODE_OPTIONS='--experimental-require-module' jest -i",
27
15
  "lint": "eslint . --ext .ts,.tsx --max-warnings 0 --cache --fix",
28
16
  "tsc": "tsc --noEmit",
29
- "build": "bob build",
30
- "build-dawn": "tsx scripts/build/dawn.ts",
31
- "clean-dawn": "rimraf ./libs && rimraf ../../externals/dawn/out",
32
- "clang-format": "yarn clang-format-ios && yarn clang-format-android && yarn clang-format-common",
33
- "clang-format-ios": "find apple/ -iname \"*.h\" -o -iname \"*.mm\" -o -iname \"*.cpp\" | xargs clang-format -i",
34
- "clang-format-android": "find android/cpp/ -iname \"*.h\" -o -iname \"*.m\" -o -iname \"*.cpp\" | xargs clang-format -i",
35
- "clang-format-common": "find cpp/rnwgpu -iname \"*.h\" -o -iname \"*.m\" -o -iname \"*.cpp\" | xargs clang-format -i",
36
- "cpplint": "cpplint --linelength=230 --filter=-legal/copyright,-whitespace/indent,-whitespace/comments,-whitespace/ending_newline,-build/include_order,-runtime/references,-readability/todo,-whitespace/blank_line,-whitespace/todo,-runtime/int,-build/c++11,-whitespace/parens --exclude=example --exclude=android/.cxx --exclude=cpp/webgpu --exclude=cpp/dawn --exclude=ios --exclude=android/build --exclude=node_modules --recursive .",
37
- "install-dawn": "tsx scripts/install-dawn.ts",
38
- "codegen": "tsx scripts/codegen/codegen.ts && yarn clang-format"
17
+ "build": "bob build"
39
18
  },
40
19
  "keywords": [
41
20
  "react-native",
42
21
  "ios",
43
- "android"
22
+ "android",
23
+ "webgpu",
24
+ "shim"
44
25
  ],
45
26
  "repository": {
46
27
  "type": "git",
@@ -55,59 +36,22 @@
55
36
  "publishConfig": {
56
37
  "registry": "https://registry.npmjs.org/"
57
38
  },
39
+ "dependencies": {
40
+ "react-native-webgpu": "*"
41
+ },
58
42
  "devDependencies": {
59
- "@types/jest": "^29.5.12",
60
- "@types/lodash": "^4.17.5",
61
43
  "@types/node": "^20.14.7",
62
- "@types/pixelmatch": "5.2.4",
63
- "@types/pngjs": "^6.0.5",
64
44
  "@types/react": "^18.2.44",
65
- "@types/seedrandom": "^3.0.8",
66
- "@types/ws": "^8.5.10",
67
45
  "@webgpu/types": "0.1.65",
68
- "baseline-browser-mapping": "^2.9.14",
69
- "clang-format": "^1.8.0",
70
- "del-cli": "^5.1.0",
71
46
  "eslint": "9.35.0",
72
47
  "eslint-config-react-native-wcandillon": "4.0.1",
73
- "eslint-plugin-import": "2.32.0",
74
- "eslint-plugin-jest": "^28.8.2",
75
- "eslint-plugin-prettier": "^5.2.1",
76
- "jest": "^29.7.0",
77
- "lodash": "^4.17.21",
78
- "pixelmatch": "5.3.0",
79
- "pngjs": "^7.0.0",
80
48
  "prettier": "^3.0.3",
81
- "puppeteer": "24.24.1",
82
- "react": "19.1.0",
83
- "react-native": "0.81.4",
84
49
  "react-native-builder-bob": "^0.23.2",
85
- "react-native-reanimated": "^4.2.1",
86
- "react-native-web": "^0.21.2",
87
- "react-native-worklets": "^0.7.0",
88
- "rimraf": "^5.0.7",
89
- "seedrandom": "^3.0.5",
90
- "teapot": "^1.0.0",
91
- "ts-morph": "^22.0.0",
92
- "tsx": "^4.20.5",
93
- "typescript": "^5.2.2",
94
- "wgpu-matrix": "^3.0.2",
95
- "ws": "^8.18.0",
96
- "yargs": "^17.7.2"
50
+ "typescript": "^5.2.2"
97
51
  },
98
52
  "peerDependencies": {
99
53
  "react": "*",
100
- "react-native": "*",
101
- "react-native-reanimated": ">=4.2.1",
102
- "react-native-worklets": ">=0.7.2"
103
- },
104
- "peerDependenciesMeta": {
105
- "react-native-reanimated": {
106
- "optional": true
107
- },
108
- "react-native-worklets": {
109
- "optional": true
110
- }
54
+ "react-native": ">=0.81.0"
111
55
  },
112
56
  "react-native-builder-bob": {
113
57
  "source": "src",
@@ -122,18 +66,5 @@
122
66
  }
123
67
  ]
124
68
  ]
125
- },
126
- "codegenConfig": {
127
- "name": "RNWgpuViewSpec",
128
- "type": "all",
129
- "jsSrcsDir": "src",
130
- "android": {
131
- "javaPackageName": "com.webgpu"
132
- },
133
- "ios": {
134
- "componentProvider": {
135
- "WebGPUView": "WebGPUView"
136
- }
137
- }
138
69
  }
139
- }
70
+ }
package/src/index.ts ADDED
@@ -0,0 +1,9 @@
1
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
2
+ console.warn(
3
+ "[react-native-wgpu] This package has been renamed to 'react-native-webgpu'. " +
4
+ "The 'react-native-wgpu' shim is deprecated and will be removed in a future release. " +
5
+ "Please install 'react-native-webgpu' and update your imports.",
6
+ );
7
+ }
8
+
9
+ export * from "react-native-webgpu";
package/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 William Candillon
4
- Permission is hereby granted, free of charge, to any person obtaining a copy
5
- of this software and associated documentation files (the "Software"), to deal
6
- in the Software without restriction, including without limitation the rights
7
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the Software is
9
- furnished to do so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in all
12
- copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- SOFTWARE.
@@ -1,108 +0,0 @@
1
- cmake_minimum_required(VERSION 3.4.1)
2
- project(RNWGPU)
3
-
4
- set (CMAKE_VERBOSE_MAKEFILE ON)
5
- set (CMAKE_CXX_STANDARD 20)
6
- set (CMAKE_CXX_STANDARD_REQUIRED True)
7
-
8
- set (PACKAGE_NAME "react-native-wgpu")
9
-
10
- #link_directories(../libs/android/${ANDROID_ABI}/)
11
-
12
- if(CMAKE_BUILD_TYPE STREQUAL "Debug")
13
- add_definitions(-DDEBUG=1)
14
- endif()
15
-
16
- if(RNF_ENABLE_LOGS)
17
- add_definitions(-DRNF_ENABLE_LOGS=1)
18
- else()
19
- add_definitions(-DRNF_ENABLE_LOGS=0)
20
- endif()
21
-
22
- set (WEBGPU_LIBS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../libs/android/${ANDROID_ABI}")
23
-
24
- find_package(ReactAndroid REQUIRED CONFIG)
25
- find_package(fbjni REQUIRED CONFIG)
26
-
27
- add_library(${PACKAGE_NAME} SHARED
28
- ./cpp/cpp-adapter.cpp
29
- ../cpp/rnwgpu/api/GPU.cpp
30
- ../cpp/rnwgpu/api/GPUAdapter.cpp
31
- ../cpp/rnwgpu/api/GPUSupportedLimits.cpp
32
- ../cpp/rnwgpu/api/GPUShaderModule.cpp
33
- ../cpp/rnwgpu/api/GPUDeviceLostInfo.cpp
34
- ../cpp/rnwgpu/api/GPUDevice.cpp
35
- ../cpp/rnwgpu/api/GPUBuffer.cpp
36
- ../cpp/rnwgpu/api/GPUQueue.cpp
37
- ../cpp/rnwgpu/api/GPUCommandEncoder.cpp
38
- ../cpp/rnwgpu/api/GPUQuerySet.cpp
39
- ../cpp/rnwgpu/api/GPUTexture.cpp
40
- ../cpp/rnwgpu/api/GPURenderBundleEncoder.cpp
41
- ../cpp/rnwgpu/api/GPURenderPassEncoder.cpp
42
- ../cpp/rnwgpu/api/GPURenderPipeline.cpp
43
- ../cpp/rnwgpu/api/GPUBindGroup.cpp
44
- ../cpp/rnwgpu/api/GPUComputePassEncoder.cpp
45
- ../cpp/rnwgpu/api/GPUComputePipeline.cpp
46
- ../cpp/rnwgpu/api/GPUCanvasContext.cpp
47
- ../cpp/rnwgpu/RNWebGPUManager.cpp
48
- ../cpp/jsi/Promise.cpp
49
- ../cpp/jsi/RuntimeLifecycleMonitor.cpp
50
- ../cpp/jsi/RuntimeAwareCache.cpp
51
- ../cpp/rnwgpu/async/AsyncRunner.cpp
52
- ../cpp/rnwgpu/async/AsyncTaskHandle.cpp
53
- ../cpp/rnwgpu/async/JSIMicrotaskDispatcher.cpp
54
- )
55
-
56
- target_include_directories(
57
- ${PACKAGE_NAME}
58
- PRIVATE
59
-
60
- "${NODE_MODULES_DIR}/react-native/ReactCommon/callinvoker"
61
- "${NODE_MODULES_DIR}/react-native/ReactCommon/jsi"
62
- "${NODE_MODULES_DIR}/react-native/ReactCommon"
63
- "${NODE_MODULES_DIR}/react-native/ReactCommon/react/nativemodule/core"
64
- "${NODE_MODULES_DIR}/react-native/ReactCommon/runtimeexecutor"
65
- "${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/jni"
66
- "${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni"
67
- "${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/jni/react/turbomodule"
68
-
69
- ../cpp
70
- ../cpp/rnwgpu
71
- ../cpp/rnwgpu/api
72
- ../cpp/rnwgpu/api/descriptors
73
- ../cpp/jsi
74
- ../cpp/webgpu
75
- ../cpp/platform
76
-
77
- ${libfbjni_include_DIRS}
78
- )
79
-
80
- add_library(webgpu_dawn SHARED IMPORTED)
81
- set_property(TARGET webgpu_dawn PROPERTY IMPORTED_LOCATION "${WEBGPU_LIBS_PATH}/libwebgpu_dawn.so")
82
-
83
- # Link
84
- if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
85
- target_link_libraries(
86
- ${PACKAGE_NAME}
87
- ${FBJNI_LIBRARY}
88
- log
89
- jnigraphics
90
- android
91
- fbjni::fbjni
92
- ReactAndroid::jsi
93
- ReactAndroid::reactnative
94
- webgpu_dawn
95
- )
96
- else()
97
- target_link_libraries(
98
- ${PACKAGE_NAME}
99
- ${FBJNI_LIBRARY}
100
- log
101
- jnigraphics
102
- android
103
- fbjni::fbjni
104
- ReactAndroid::jsi
105
- ReactAndroid::reactnativejni
106
- webgpu_dawn
107
- )
108
- endif()
@@ -1,138 +0,0 @@
1
- import java.nio.file.Paths
2
-
3
- buildscript {
4
- repositories {
5
- google()
6
- mavenCentral()
7
- }
8
-
9
- dependencies {
10
- classpath "com.android.tools.build:gradle:7.2.1"
11
- }
12
- }
13
-
14
- def reactNativeArchitectures() {
15
- def value = rootProject.getProperties().get("reactNativeArchitectures")
16
- return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
17
- }
18
-
19
- apply plugin: "com.android.library"
20
- apply plugin: "com.facebook.react"
21
-
22
- static def findNodeModules(baseDir) {
23
- // Check if we are building the example app:
24
- // Check if ../FabricExample/node_modules exists
25
- def exampleAppPath = Paths.get(baseDir.toString(), "..", "FabricExample")
26
- def exampleNodeModulesPath = Paths.get(exampleAppPath.toString(), "node_modules")
27
- if (exampleNodeModulesPath.toFile().exists()) {
28
- return exampleNodeModulesPath.toAbsolutePath()
29
- }
30
-
31
- def basePath = baseDir.toPath().normalize()
32
- // Node's module resolution algorithm searches up to the root directory,
33
- // after which the base path will be null
34
- while (basePath) {
35
- def nodeModulesPath = Paths.get(basePath.toString(), "node_modules")
36
- def reactNativePath = Paths.get(nodeModulesPath.toString(), "react-native")
37
- if (nodeModulesPath.toFile().exists() && reactNativePath.toFile().exists()) {
38
- return nodeModulesPath.toString()
39
- }
40
- basePath = basePath.getParent()
41
- }
42
-
43
- throw new GradleException("react-native-wgpu: Failed to find node_modules/ path!")
44
- }
45
-
46
- def nodeModules = findNodeModules(projectDir)
47
-
48
- def getExtOrDefault(name) {
49
- return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["Wgpu_" + name]
50
- }
51
-
52
- def getExtOrIntegerDefault(name) {
53
- return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["Wgpu_" + name]).toInteger()
54
- }
55
-
56
- def supportsNamespace() {
57
- def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
58
- def major = parsed[0].toInteger()
59
- def minor = parsed[1].toInteger()
60
-
61
- // Namespace support was added in 7.3.0
62
- return (major == 7 && minor >= 3) || major >= 8
63
- }
64
-
65
- android {
66
- compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
67
-
68
- defaultConfig {
69
- minSdkVersion getExtOrIntegerDefault("minSdkVersion")
70
- targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
71
- buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", "true"
72
- externalNativeBuild {
73
- cmake {
74
- cppFlags "-fexceptions", "-frtti", "-DONANDROID"
75
- abiFilters (*reactNativeArchitectures())
76
- arguments '-DANDROID_STL=c++_shared',
77
- "-DNODE_MODULES_DIR=${nodeModules}",
78
- "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON"
79
- }
80
- }
81
- }
82
-
83
- packagingOptions {
84
- excludes = [
85
- "**/libjsi.so",
86
- "**/libreactnativejni.so",
87
- ]
88
- }
89
-
90
- buildFeatures {
91
- buildConfig true
92
- prefab true
93
- }
94
-
95
- buildTypes {
96
- release {
97
- minifyEnabled false
98
- }
99
- }
100
-
101
- lintOptions {
102
- disable "GradleCompatible"
103
- }
104
-
105
- compileOptions {
106
- sourceCompatibility JavaVersion.VERSION_1_8
107
- targetCompatibility JavaVersion.VERSION_1_8
108
- }
109
-
110
- sourceSets {
111
- main {
112
- java.srcDirs += [
113
- "src/newarch",
114
- // This is needed to build Kotlin project with NewArch enabled
115
- "${project.buildDir}/generated/source/codegen/java"
116
- ]
117
- }
118
- }
119
-
120
- externalNativeBuild {
121
- cmake {
122
- path file('CMakeLists.txt')
123
- }
124
- }
125
- }
126
-
127
- repositories {
128
- mavenCentral()
129
- google()
130
- }
131
-
132
-
133
- dependencies {
134
- // For < 0.71, this will be from the local maven repo
135
- // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
136
- //noinspection GradleDynamicVersion
137
- implementation "com.facebook.react:react-native:+"
138
- }
@@ -1,207 +0,0 @@
1
- #pragma once
2
-
3
- #include <android/bitmap.h>
4
- #include <jni.h>
5
-
6
- #include <functional>
7
- #include <memory>
8
- #include <string>
9
- #include <thread>
10
- #include <vector>
11
-
12
- #include "webgpu/webgpu_cpp.h"
13
-
14
- #include "PlatformContext.h"
15
- #include "RNWebGPUManager.h"
16
-
17
- namespace rnwgpu {
18
-
19
- namespace jsi = facebook::jsi;
20
- namespace jni = facebook::jni;
21
-
22
- class AndroidPlatformContext : public PlatformContext {
23
- private:
24
- jobject _blobModule;
25
-
26
- std::vector<uint8_t> resolveBlob(JNIEnv *env, const std::string &blobId,
27
- double offset, double size) {
28
- if (!_blobModule) {
29
- throw std::runtime_error("BlobModule instance is null");
30
- }
31
-
32
- jclass blobModuleClass = env->GetObjectClass(_blobModule);
33
- if (!blobModuleClass) {
34
- throw std::runtime_error("Couldn't find BlobModule class");
35
- }
36
-
37
- jmethodID resolveMethod = env->GetMethodID(blobModuleClass, "resolve",
38
- "(Ljava/lang/String;II)[B");
39
- env->DeleteLocalRef(blobModuleClass);
40
-
41
- if (!resolveMethod) {
42
- throw std::runtime_error("Couldn't find resolve method in BlobModule");
43
- }
44
-
45
- jstring jBlobId = env->NewStringUTF(blobId.c_str());
46
- jbyteArray blobData = (jbyteArray)env->CallObjectMethod(
47
- _blobModule, resolveMethod, jBlobId, static_cast<jint>(offset),
48
- static_cast<jint>(size));
49
- env->DeleteLocalRef(jBlobId);
50
-
51
- if (!blobData) {
52
- throw std::runtime_error("Couldn't retrieve blob data");
53
- }
54
-
55
- jsize len = env->GetArrayLength(blobData);
56
- std::vector<uint8_t> data(len);
57
- env->GetByteArrayRegion(blobData, 0, len,
58
- reinterpret_cast<jbyte *>(data.data()));
59
- env->DeleteLocalRef(blobData);
60
- return data;
61
- }
62
-
63
- public:
64
- explicit AndroidPlatformContext(jobject blobModule)
65
- : _blobModule(blobModule) {}
66
- ~AndroidPlatformContext() {
67
- if (_blobModule) {
68
- JNIEnv *env = facebook::jni::Environment::current();
69
- env->DeleteGlobalRef(_blobModule);
70
- _blobModule = nullptr;
71
- }
72
- }
73
-
74
- wgpu::Surface makeSurface(wgpu::Instance instance, void *window, int width,
75
- int height) override {
76
- wgpu::SurfaceSourceAndroidNativeWindow androidSurfaceDesc;
77
- androidSurfaceDesc.window = reinterpret_cast<ANativeWindow *>(window);
78
- wgpu::SurfaceDescriptor surfaceDescriptor;
79
- surfaceDescriptor.nextInChain = &androidSurfaceDesc;
80
- return instance.CreateSurface(&surfaceDescriptor);
81
- }
82
-
83
- ImageData createImageBitmap(std::string blobId, double offset,
84
- double size) override {
85
- jni::Environment::ensureCurrentThreadIsAttached();
86
-
87
- JNIEnv *env = facebook::jni::Environment::current();
88
- if (!env) {
89
- throw std::runtime_error("Couldn't get JNI environment");
90
- }
91
-
92
- auto data = resolveBlob(env, blobId, offset, size);
93
- return createImageBitmapFromData(data);
94
- }
95
-
96
- void
97
- createImageBitmapAsync(std::string blobId, double offset, double size,
98
- std::function<void(ImageData)> onSuccess,
99
- std::function<void(std::string)> onError) override {
100
- std::thread([this, blobId = std::move(blobId), offset, size,
101
- onSuccess = std::move(onSuccess),
102
- onError = std::move(onError)]() {
103
- jni::Environment::ensureCurrentThreadIsAttached();
104
- try {
105
- JNIEnv *env = facebook::jni::Environment::current();
106
- if (!env) {
107
- throw std::runtime_error("Couldn't get JNI environment");
108
- }
109
- auto data = resolveBlob(env, blobId, offset, size);
110
- auto result = createImageBitmapFromData(data);
111
- onSuccess(std::move(result));
112
- } catch (const std::exception &e) {
113
- onError(e.what());
114
- }
115
- }).detach();
116
- }
117
-
118
- ImageData createImageBitmapFromData(std::span<const uint8_t> data) override {
119
- jni::Environment::ensureCurrentThreadIsAttached();
120
-
121
- JNIEnv *env = facebook::jni::Environment::current();
122
- if (!env) {
123
- throw std::runtime_error("Couldn't get JNI environment");
124
- }
125
-
126
- // Create jbyteArray from the raw bytes
127
- jbyteArray byteArray = env->NewByteArray(static_cast<jsize>(data.size()));
128
- if (!byteArray) {
129
- throw std::runtime_error("Couldn't allocate byte array");
130
- }
131
- env->SetByteArrayRegion(byteArray, 0, static_cast<jsize>(data.size()),
132
- reinterpret_cast<const jbyte *>(data.data()));
133
-
134
- // Decode via BitmapFactory
135
- jclass bitmapFactoryClass =
136
- env->FindClass("android/graphics/BitmapFactory");
137
- if (!bitmapFactoryClass) {
138
- env->DeleteLocalRef(byteArray);
139
- throw std::runtime_error("Couldn't find BitmapFactory class");
140
- }
141
- jmethodID decodeByteArrayMethod =
142
- env->GetStaticMethodID(bitmapFactoryClass, "decodeByteArray",
143
- "([BII)Landroid/graphics/Bitmap;");
144
- if (!decodeByteArrayMethod) {
145
- env->DeleteLocalRef(byteArray);
146
- env->DeleteLocalRef(bitmapFactoryClass);
147
- throw std::runtime_error("Couldn't find decodeByteArray method");
148
- }
149
- jint length = static_cast<jint>(data.size());
150
- jobject bitmap = env->CallStaticObjectMethod(
151
- bitmapFactoryClass, decodeByteArrayMethod, byteArray, 0, length);
152
- env->DeleteLocalRef(bitmapFactoryClass);
153
-
154
- if (!bitmap) {
155
- env->DeleteLocalRef(byteArray);
156
- throw std::runtime_error("Couldn't decode image");
157
- }
158
-
159
- AndroidBitmapInfo bitmapInfo;
160
- if (AndroidBitmap_getInfo(env, bitmap, &bitmapInfo) !=
161
- ANDROID_BITMAP_RESULT_SUCCESS) {
162
- env->DeleteLocalRef(byteArray);
163
- env->DeleteLocalRef(bitmap);
164
- throw std::runtime_error("Couldn't get bitmap info");
165
- }
166
-
167
- void *bitmapPixels;
168
- if (AndroidBitmap_lockPixels(env, bitmap, &bitmapPixels) !=
169
- ANDROID_BITMAP_RESULT_SUCCESS) {
170
- env->DeleteLocalRef(byteArray);
171
- env->DeleteLocalRef(bitmap);
172
- throw std::runtime_error("Couldn't lock bitmap pixels");
173
- }
174
-
175
- ImageData result;
176
- result.width = static_cast<int>(bitmapInfo.width);
177
- result.height = static_cast<int>(bitmapInfo.height);
178
- result.data.resize(bitmapInfo.height * bitmapInfo.stride);
179
- memcpy(result.data.data(), bitmapPixels, result.data.size());
180
-
181
- AndroidBitmap_unlockPixels(env, bitmap);
182
-
183
- env->DeleteLocalRef(byteArray);
184
- env->DeleteLocalRef(bitmap);
185
-
186
- return result;
187
- }
188
-
189
- void createImageBitmapFromDataAsync(
190
- std::span<const uint8_t> data, std::function<void(ImageData)> onSuccess,
191
- std::function<void(std::string)> onError) override {
192
- std::thread([this,
193
- ownedData = std::vector<uint8_t>(data.begin(), data.end()),
194
- onSuccess = std::move(onSuccess),
195
- onError = std::move(onError)]() mutable {
196
- jni::Environment::ensureCurrentThreadIsAttached();
197
- try {
198
- auto result = createImageBitmapFromData(ownedData);
199
- onSuccess(std::move(result));
200
- } catch (const std::exception &e) {
201
- onError(e.what());
202
- }
203
- }).detach();
204
- }
205
- };
206
-
207
- } // namespace rnwgpu
@@ -1,71 +0,0 @@
1
- #include <memory>
2
- #include <unordered_map>
3
-
4
- #include <fbjni/fbjni.h>
5
- #include <jni.h>
6
- #include <jsi/jsi.h>
7
-
8
- #include <ReactCommon/CallInvokerHolder.h>
9
- #include <android/native_window_jni.h>
10
- #include <webgpu/webgpu_cpp.h>
11
-
12
- #include "AndroidPlatformContext.h"
13
- #include "GPUCanvasContext.h"
14
- #include "RNWebGPUManager.h"
15
-
16
- #define LOG_TAG "WebGPUModule"
17
-
18
- std::shared_ptr<rnwgpu::RNWebGPUManager> manager;
19
-
20
- extern "C" JNIEXPORT void JNICALL Java_com_webgpu_WebGPUModule_initializeNative(
21
- JNIEnv *env, jobject /* this */, jlong jsRuntime,
22
- jobject jsCallInvokerHolder, jobject blobModule) {
23
- auto runtime = reinterpret_cast<facebook::jsi::Runtime *>(jsRuntime);
24
- jobject globalBlobModule = env->NewGlobalRef(blobModule);
25
- auto jsCallInvoker{
26
- facebook::jni::alias_ref<facebook::react::CallInvokerHolder::javaobject>{
27
- reinterpret_cast<facebook::react::CallInvokerHolder::javaobject>(
28
- jsCallInvokerHolder)} -> cthis()
29
- ->getCallInvoker()};
30
- auto platformContext =
31
- std::make_shared<rnwgpu::AndroidPlatformContext>(globalBlobModule);
32
- manager = std::make_shared<rnwgpu::RNWebGPUManager>(runtime, jsCallInvoker,
33
- platformContext);
34
- }
35
-
36
- extern "C" JNIEXPORT void JNICALL Java_com_webgpu_WebGPUView_onSurfaceChanged(
37
- JNIEnv *env, jobject thiz, jobject surface, jint contextId, jfloat width,
38
- jfloat height) {
39
- auto &registry = rnwgpu::SurfaceRegistry::getInstance();
40
- registry.getSurfaceInfo(contextId)->resize(static_cast<int>(width),
41
- static_cast<int>(height));
42
- }
43
-
44
- extern "C" JNIEXPORT void JNICALL Java_com_webgpu_WebGPUView_onSurfaceCreate(
45
- JNIEnv *env, jobject thiz, jobject jSurface, jint contextId, jfloat width,
46
- jfloat height) {
47
- auto window = ANativeWindow_fromSurface(env, jSurface);
48
- // ANativeWindow_acquire(window);
49
- auto &registry = rnwgpu::SurfaceRegistry::getInstance();
50
- auto gpu = manager->_gpu;
51
- auto surface = manager->_platformContext->makeSurface(
52
- gpu, window, static_cast<int>(width), static_cast<int>(height));
53
- registry
54
- .getSurfaceInfoOrCreate(contextId, gpu, static_cast<int>(width),
55
- static_cast<int>(height))
56
- ->switchToOnscreen(window, surface);
57
- }
58
-
59
- extern "C" JNIEXPORT void JNICALL
60
- Java_com_webgpu_WebGPUView_switchToOffscreenSurface(JNIEnv *env, jobject thiz,
61
- jint contextId) {
62
- auto &registry = rnwgpu::SurfaceRegistry::getInstance();
63
- auto nativeSurface = registry.getSurfaceInfo(contextId)->switchToOffscreen();
64
- // ANativeWindow_release(reinterpret_cast<ANativeWindow *>(nativeSurface));
65
- }
66
-
67
- extern "C" JNIEXPORT void JNICALL Java_com_webgpu_WebGPUView_onSurfaceDestroy(
68
- JNIEnv *env, jobject thiz, jint contextId) {
69
- auto &registry = rnwgpu::SurfaceRegistry::getInstance();
70
- registry.removeSurfaceInfo(contextId);
71
- }