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,3 +0,0 @@
1
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2
- package="com.webgpu">
3
- </manifest>
@@ -1,298 +0,0 @@
1
- package com.webgpu;
2
-
3
- import android.annotation.SuppressLint;
4
- import android.content.Context;
5
- import android.graphics.Bitmap;
6
- import android.graphics.Canvas;
7
- import android.graphics.Paint;
8
- import android.graphics.PixelFormat;
9
- import android.graphics.Rect;
10
- import android.hardware.HardwareBuffer;
11
- import android.media.Image;
12
- import android.media.ImageReader;
13
- import android.os.Build;
14
- import android.os.Handler;
15
- import android.os.Looper;
16
- import android.view.Surface;
17
- import android.view.View;
18
-
19
- import androidx.annotation.NonNull;
20
- import androidx.annotation.RequiresApi;
21
-
22
- import java.nio.ByteBuffer;
23
-
24
- @RequiresApi(api = Build.VERSION_CODES.Q)
25
- @SuppressLint("ViewConstructor")
26
- public class WebGPUAHBView extends View implements ImageReader.OnImageAvailableListener {
27
-
28
- private static final int MAX_IMAGES = 3;
29
- private static final String TAG = "WebGPUAHBView";
30
-
31
- private final WebGPUAPI mApi;
32
- private ImageReader mImageReader;
33
- private Surface mSurface;
34
- private Image mCurrentImage;
35
- private Bitmap mCachedBitmap;
36
- private final Paint mPaint;
37
- private final Handler mHandler;
38
- private final Object mImageLock = new Object();
39
- private boolean mSurfaceCreated = false;
40
- private int mConfiguredWidth = 0;
41
- private int mConfiguredHeight = 0;
42
-
43
- public WebGPUAHBView(Context context, WebGPUAPI api) {
44
- super(context);
45
- mApi = api;
46
- mPaint = new Paint(Paint.FILTER_BITMAP_FLAG);
47
- mHandler = new Handler(Looper.getMainLooper());
48
-
49
- // Enable hardware acceleration for this view
50
- setLayerType(LAYER_TYPE_HARDWARE, null);
51
-
52
- // Make sure we get drawn
53
- setWillNotDraw(false);
54
- }
55
-
56
- @Override
57
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
58
- super.onSizeChanged(w, h, oldw, oldh);
59
-
60
- if (w > 0 && h > 0) {
61
- // Recreate ImageReader with new dimensions
62
- setupImageReader(w, h);
63
- }
64
- }
65
-
66
- private void setupImageReader(int width, int height) {
67
- // Don't recreate if dimensions haven't changed
68
- if (width == mConfiguredWidth && height == mConfiguredHeight && mImageReader != null) {
69
- return;
70
- }
71
-
72
- // Clean up previous ImageReader
73
- cleanupImageReader();
74
-
75
- try {
76
- // Create ImageReader with HardwareBuffer support
77
- mImageReader = ImageReader.newInstance(
78
- width,
79
- height,
80
- PixelFormat.RGBA_8888,
81
- MAX_IMAGES,
82
- HardwareBuffer.USAGE_GPU_SAMPLED_IMAGE |
83
- HardwareBuffer.USAGE_GPU_COLOR_OUTPUT |
84
- HardwareBuffer.USAGE_COMPOSER_OVERLAY |
85
- HardwareBuffer.USAGE_CPU_READ_RARELY // For fallback to Bitmap if needed
86
- );
87
-
88
- mImageReader.setOnImageAvailableListener(this, mHandler);
89
-
90
- // Get the Surface for WebGPU to render to
91
- mSurface = mImageReader.getSurface();
92
-
93
- mConfiguredWidth = width;
94
- mConfiguredHeight = height;
95
-
96
- // Notify WebGPU about the new surface
97
- if (!mSurfaceCreated) {
98
- mApi.surfaceCreated(mSurface);
99
- mSurfaceCreated = true;
100
- } else {
101
- mApi.surfaceChanged(mSurface);
102
- }
103
-
104
- } catch (Exception e) {
105
- e.printStackTrace();
106
- // Fallback to offscreen if ImageReader creation fails
107
- mApi.surfaceOffscreen();
108
- }
109
- }
110
-
111
- @Override
112
- public void onImageAvailable(ImageReader reader) {
113
- synchronized (mImageLock) {
114
- // Close previous image if exists
115
- if (mCurrentImage != null) {
116
- mCurrentImage.close();
117
- mCurrentImage = null;
118
- }
119
-
120
- try {
121
- // Get the latest image
122
- mCurrentImage = reader.acquireLatestImage();
123
-
124
- if (mCurrentImage != null) {
125
- // Request a redraw on the UI thread
126
- postInvalidateOnAnimation();
127
- }
128
- } catch (Exception e) {
129
- e.printStackTrace();
130
- }
131
- }
132
- }
133
-
134
- @Override
135
- protected void onDraw(Canvas canvas) {
136
- super.onDraw(canvas);
137
-
138
- synchronized (mImageLock) {
139
- if (mCurrentImage == null) {
140
- return;
141
- }
142
-
143
- try {
144
- // Try to use HardwareBuffer directly (most efficient path)
145
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
146
- HardwareBuffer hardwareBuffer = mCurrentImage.getHardwareBuffer();
147
-
148
- if (hardwareBuffer != null) {
149
- // Draw using HardwareBuffer
150
- drawHardwareBuffer(canvas, hardwareBuffer);
151
- return;
152
- }
153
- }
154
-
155
- // Fallback: Convert Image to Bitmap
156
- drawImageAsBitmap(canvas, mCurrentImage);
157
-
158
- } catch (Exception e) {
159
- e.printStackTrace();
160
- }
161
- }
162
- }
163
-
164
- private void drawHardwareBuffer(Canvas canvas, HardwareBuffer hardwareBuffer) {
165
- // On Android Q+, we can create a Bitmap from HardwareBuffer
166
- try {
167
- // Create or reuse bitmap with matching dimensions
168
- if (mCachedBitmap == null ||
169
- mCachedBitmap.getWidth() != hardwareBuffer.getWidth() ||
170
- mCachedBitmap.getHeight() != hardwareBuffer.getHeight()) {
171
-
172
- if (mCachedBitmap != null) {
173
- mCachedBitmap.recycle();
174
- }
175
-
176
- // Create a hardware-backed Bitmap from the HardwareBuffer
177
- mCachedBitmap = Bitmap.wrapHardwareBuffer(hardwareBuffer, null);
178
- } else {
179
- // Reuse existing bitmap and update with new HardwareBuffer content
180
- mCachedBitmap = Bitmap.wrapHardwareBuffer(hardwareBuffer, null);
181
- }
182
-
183
- if (mCachedBitmap != null) {
184
- // Draw the bitmap to canvas
185
- canvas.drawBitmap(mCachedBitmap, 0, 0, mPaint);
186
- }
187
- } catch (Exception e) {
188
- e.printStackTrace();
189
- // Fallback to Image-based rendering
190
- drawImageAsBitmap(canvas, mCurrentImage);
191
- }
192
- }
193
-
194
- private void drawImageAsBitmap(Canvas canvas, Image image) {
195
- // Fallback method: manually convert Image to Bitmap
196
- if (image.getFormat() != PixelFormat.RGBA_8888) {
197
- return;
198
- }
199
-
200
- Image.Plane[] planes = image.getPlanes();
201
- if (planes.length == 0) {
202
- return;
203
- }
204
-
205
- ByteBuffer buffer = planes[0].getBuffer();
206
- int pixelStride = planes[0].getPixelStride();
207
- int rowStride = planes[0].getRowStride();
208
- int rowPadding = rowStride - pixelStride * image.getWidth();
209
-
210
- // Create or reuse bitmap
211
- int bitmapWidth = image.getWidth() + rowPadding / pixelStride;
212
- if (mCachedBitmap == null ||
213
- mCachedBitmap.getWidth() != bitmapWidth ||
214
- mCachedBitmap.getHeight() != image.getHeight()) {
215
-
216
- if (mCachedBitmap != null) {
217
- mCachedBitmap.recycle();
218
- }
219
- mCachedBitmap = Bitmap.createBitmap(
220
- bitmapWidth,
221
- image.getHeight(),
222
- Bitmap.Config.ARGB_8888
223
- );
224
- }
225
-
226
- mCachedBitmap.copyPixelsFromBuffer(buffer);
227
-
228
- // Draw only the valid portion (without padding)
229
- Rect src = new Rect(0, 0, image.getWidth(), image.getHeight());
230
- Rect dst = new Rect(0, 0, getWidth(), getHeight());
231
- canvas.drawBitmap(mCachedBitmap, src, dst, mPaint);
232
- }
233
-
234
- private void cleanupImageReader() {
235
- synchronized (mImageLock) {
236
- if (mCurrentImage != null) {
237
- mCurrentImage.close();
238
- mCurrentImage = null;
239
- }
240
-
241
- if (mImageReader != null) {
242
- mImageReader.close();
243
- mImageReader = null;
244
- }
245
-
246
- if (mSurface != null) {
247
- mSurface.release();
248
- mSurface = null;
249
- }
250
- }
251
- }
252
-
253
- @Override
254
- protected void onDetachedFromWindow() {
255
- super.onDetachedFromWindow();
256
-
257
- // Notify WebGPU that surface is being destroyed
258
- if (mSurfaceCreated) {
259
- mApi.surfaceDestroyed();
260
- mSurfaceCreated = false;
261
- }
262
-
263
- // Clean up resources
264
- cleanupImageReader();
265
-
266
- if (mCachedBitmap != null) {
267
- mCachedBitmap.recycle();
268
- mCachedBitmap = null;
269
- }
270
- }
271
-
272
- @Override
273
- protected void onAttachedToWindow() {
274
- super.onAttachedToWindow();
275
-
276
- // Re-setup if we have valid dimensions
277
- if (getWidth() > 0 && getHeight() > 0) {
278
- setupImageReader(getWidth(), getHeight());
279
- }
280
- }
281
-
282
- @Override
283
- public void setAlpha(float alpha) {
284
- super.setAlpha(alpha);
285
- mPaint.setAlpha((int) (alpha * 255));
286
- invalidate();
287
- }
288
-
289
- @Override
290
- protected void onVisibilityChanged(@NonNull View changedView, int visibility) {
291
- super.onVisibilityChanged(changedView, visibility);
292
-
293
- if (visibility == VISIBLE && mSurface == null && getWidth() > 0 && getHeight() > 0) {
294
- // Re-create surface if needed when becoming visible
295
- setupImageReader(getWidth(), getHeight());
296
- }
297
- }
298
- }
@@ -1,20 +0,0 @@
1
- package com.webgpu;
2
-
3
- import android.view.Surface;
4
-
5
- import com.facebook.proguard.annotations.DoNotStrip;
6
-
7
- public interface WebGPUAPI {
8
-
9
- void surfaceCreated(
10
- Surface surface
11
- );
12
-
13
- void surfaceChanged(
14
- Surface surface
15
- );
16
-
17
- void surfaceDestroyed();
18
-
19
- void surfaceOffscreen();
20
- }
@@ -1,61 +0,0 @@
1
- package com.webgpu;
2
-
3
- import android.content.Context;
4
- import android.view.Surface;
5
- import android.view.View;
6
- import com.facebook.proguard.annotations.DoNotStrip;
7
-
8
- public abstract class WebGPUBaseView extends View {
9
- protected Integer mContextId;
10
-
11
- public WebGPUBaseView(Context context, Integer contextId) {
12
- super(context);
13
- mContextId = contextId;
14
- }
15
-
16
- protected void handleSurfaceCreate(Surface surface) {
17
- float density = getResources().getDisplayMetrics().density;
18
- float scaledWidth = getWidth() / density;
19
- float scaledHeight = getHeight() / density;
20
- onSurfaceCreate(surface, mContextId, scaledWidth, scaledHeight);
21
- }
22
-
23
- protected void handleSurfaceChanged(Surface surface) {
24
- float density = getResources().getDisplayMetrics().density;
25
- float scaledWidth = getWidth() / density;
26
- float scaledHeight = getHeight() / density;
27
- onSurfaceChanged(surface, mContextId, scaledWidth, scaledHeight);
28
- }
29
-
30
- protected void handleSurfaceDestroyed() {
31
- onSurfaceDestroy(mContextId);
32
- }
33
-
34
- @Override
35
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
36
- super.onLayout(changed, left, top, right, bottom);
37
- }
38
-
39
-
40
- @DoNotStrip
41
- private native void onSurfaceCreate(
42
- Surface surface,
43
- int contextId,
44
- float width,
45
- float height
46
- );
47
-
48
- @DoNotStrip
49
- private native void onSurfaceChanged(
50
- Surface surface,
51
- int contextId,
52
- float width,
53
- float height
54
- );
55
-
56
- @DoNotStrip
57
- private native void onSurfaceDestroy(int contextId);
58
-
59
- @DoNotStrip
60
- protected native void switchToOffscreenSurface(int contextId);
61
- }
@@ -1,50 +0,0 @@
1
- package com.webgpu;
2
-
3
- import android.util.Log;
4
-
5
- import androidx.annotation.OptIn;
6
-
7
- import java.util.HashSet;
8
- import java.util.Set;
9
-
10
- import com.facebook.proguard.annotations.DoNotStrip;
11
- import com.facebook.react.bridge.ReactApplicationContext;
12
- import com.facebook.react.bridge.JavaScriptContextHolder;
13
- import com.facebook.react.bridge.ReactMethod;
14
- import com.facebook.react.common.annotations.FrameworkAPI;
15
- import com.facebook.react.module.annotations.ReactModule;
16
- import com.facebook.react.modules.blob.BlobModule;
17
- import com.facebook.react.modules.blob.BlobProvider;
18
- import com.facebook.react.turbomodule.core.CallInvokerHolderImpl;
19
- import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder;
20
-
21
- @ReactModule(name = WebGPUModule.NAME)
22
- public class WebGPUModule extends NativeWebGPUModuleSpec {
23
- static {
24
- System.loadLibrary("react-native-wgpu"); // Load the C++ library
25
- }
26
-
27
- public WebGPUModule(ReactApplicationContext reactContext) {
28
- super(reactContext);
29
- // Initialize the C++ module
30
- initialize();
31
- }
32
-
33
- @OptIn(markerClass = FrameworkAPI.class)
34
- @ReactMethod(isBlockingSynchronousMethod = true)
35
- public boolean install() {
36
- ReactApplicationContext context = getReactApplicationContext();
37
- JavaScriptContextHolder jsContext = context.getJavaScriptContextHolder();
38
- CallInvokerHolder callInvokerHolder = context.getCatalystInstance().getJSCallInvokerHolder();
39
- BlobModule blobModule = getReactApplicationContext().getNativeModule(BlobModule.class);
40
- if (blobModule == null) {
41
- throw new RuntimeException("React Native's BlobModule was not found!");
42
- }
43
- initializeNative(jsContext.get(), (CallInvokerHolderImpl) callInvokerHolder, blobModule);
44
- return true;
45
- }
46
-
47
- @OptIn(markerClass = FrameworkAPI.class)
48
- @DoNotStrip
49
- private native void initializeNative(long jsRuntime, CallInvokerHolderImpl jsInvoker, BlobModule blobModule);
50
- }
@@ -1,41 +0,0 @@
1
- package com.webgpu;
2
-
3
- import android.annotation.SuppressLint;
4
- import android.content.Context;
5
- import android.view.SurfaceHolder;
6
- import android.view.SurfaceView;
7
-
8
- import androidx.annotation.NonNull;
9
-
10
- @SuppressLint("ViewConstructor")
11
- public class WebGPUSurfaceView extends SurfaceView implements SurfaceHolder.Callback {
12
-
13
- WebGPUAPI mApi;
14
-
15
- public WebGPUSurfaceView(Context context, WebGPUAPI api) {
16
- super(context);
17
- mApi = api;
18
- getHolder().addCallback(this);
19
- }
20
-
21
- @Override
22
- protected void onDetachedFromWindow() {
23
- super.onDetachedFromWindow();
24
- mApi.surfaceDestroyed();
25
- }
26
-
27
- @Override
28
- public void surfaceCreated(@NonNull SurfaceHolder holder) {
29
- mApi.surfaceCreated(holder.getSurface());
30
- }
31
-
32
- @Override
33
- public void surfaceChanged(@NonNull SurfaceHolder holder, int format, int width, int height) {
34
- mApi.surfaceChanged(holder.getSurface());
35
- }
36
-
37
- @Override
38
- public void surfaceDestroyed(@NonNull SurfaceHolder holder) {
39
- mApi.surfaceOffscreen();
40
- }
41
- }
@@ -1,79 +0,0 @@
1
- package com.webgpu;
2
-
3
- import android.annotation.SuppressLint;
4
- import android.content.Context;
5
- import android.graphics.PixelFormat;
6
- import android.os.Build;
7
- import android.view.Surface;
8
- import android.view.SurfaceControl;
9
- import android.view.SurfaceHolder;
10
- import android.view.SurfaceView;
11
-
12
- import androidx.annotation.NonNull;
13
- import androidx.annotation.RequiresApi;
14
-
15
-
16
- @SuppressLint("ViewConstructor")
17
- @RequiresApi(api = Build.VERSION_CODES.Q)
18
- public class WebGPUSurfaceViewWithSC extends SurfaceView implements SurfaceHolder.Callback {
19
-
20
- WebGPUAPI mApi;
21
- SurfaceControl mSurfaceControl;
22
- Surface mSurface;
23
-
24
- public WebGPUSurfaceViewWithSC(Context context, WebGPUAPI api) {
25
- super(context);
26
- mApi = api;
27
- getHolder().addCallback(this);
28
- }
29
-
30
- @Override
31
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
32
- super.onLayout(changed, left, top, right, bottom);
33
-
34
- }
35
-
36
- @Override
37
- protected void onDetachedFromWindow() {
38
- super.onDetachedFromWindow();
39
- }
40
-
41
- @Override
42
- public void surfaceCreated(@NonNull SurfaceHolder holder) {
43
- if (mSurfaceControl != null) {
44
- SurfaceControl.Transaction tr = new SurfaceControl.Transaction();
45
- tr.setVisibility(mSurfaceControl, true);
46
- tr.reparent(mSurfaceControl, getSurfaceControl());
47
- tr.apply();
48
- } else {
49
- SurfaceControl.Builder scb = new SurfaceControl.Builder();
50
- scb.setName("WebGPUView");
51
- scb.setOpaque(true);
52
- scb.setBufferSize(getWidth(), getHeight());
53
- scb.setParent(getSurfaceControl());
54
- scb.setFormat(PixelFormat.RGBA_8888);
55
- mSurfaceControl = scb.build();
56
- mSurface = new Surface(mSurfaceControl);
57
- mApi.surfaceCreated(mSurface);
58
- }
59
- SurfaceControl.Transaction tr = new SurfaceControl.Transaction();
60
- tr.setVisibility(mSurfaceControl, true);
61
- tr.apply();
62
- }
63
-
64
- @Override
65
- public void surfaceChanged(@NonNull SurfaceHolder holder, int format, int width, int height) {
66
- mApi.surfaceChanged(mSurface);
67
- SurfaceControl.Transaction tr = new SurfaceControl.Transaction();
68
- tr.setVisibility(mSurfaceControl, true);
69
- tr.setBufferSize(mSurfaceControl, getWidth(), getHeight());
70
- tr.apply();
71
- }
72
-
73
- @Override
74
- public void surfaceDestroyed(@NonNull SurfaceHolder holder) {
75
- SurfaceControl.Transaction tr = new SurfaceControl.Transaction();
76
- tr.reparent(mSurfaceControl, null);
77
- tr.apply();
78
- }
79
- }
@@ -1,46 +0,0 @@
1
- package com.webgpu;
2
-
3
- import android.annotation.SuppressLint;
4
- import android.content.Context;
5
- import android.graphics.SurfaceTexture;
6
- import android.view.Surface;
7
- import android.view.TextureView;
8
- import androidx.annotation.NonNull;
9
-
10
- import org.w3c.dom.Text;
11
-
12
- @SuppressLint("ViewConstructor")
13
- public class WebGPUTextureView extends TextureView implements TextureView.SurfaceTextureListener {
14
-
15
- WebGPUAPI mApi;
16
-
17
- public WebGPUTextureView(Context context, WebGPUAPI api) {
18
- super(context);
19
- mApi = api;
20
- setOpaque(false);
21
- setSurfaceTextureListener(this);
22
- }
23
-
24
- @Override
25
- public void onSurfaceTextureAvailable(@NonNull SurfaceTexture surfaceTexture, int width, int height) {
26
- Surface surface = new Surface(surfaceTexture);
27
- mApi.surfaceCreated(surface);
28
- }
29
-
30
- @Override
31
- public void onSurfaceTextureSizeChanged(@NonNull SurfaceTexture surfaceTexture, int width, int height) {
32
- Surface surface = new Surface(surfaceTexture);
33
- mApi.surfaceChanged(surface);
34
- }
35
-
36
- @Override
37
- public boolean onSurfaceTextureDestroyed(@NonNull SurfaceTexture surfaceTexture) {
38
- mApi.surfaceDestroyed();
39
- return true;
40
- }
41
-
42
- @Override
43
- public void onSurfaceTextureUpdated(@NonNull SurfaceTexture surfaceTexture) {
44
- // No implementation needed
45
- }
46
- }
@@ -1,108 +0,0 @@
1
- package com.webgpu;
2
-
3
- import android.content.Context;
4
- import android.os.Build;
5
- import android.view.Surface;
6
- import android.view.View;
7
-
8
- import com.facebook.proguard.annotations.DoNotStrip;
9
- import com.facebook.react.uimanager.ThemedReactContext;
10
- import com.facebook.react.views.view.ReactViewGroup;
11
-
12
- public class WebGPUView extends ReactViewGroup implements WebGPUAPI {
13
-
14
-
15
- private int mContextId;
16
- private boolean mTransparent = false;
17
- private WebGPUModule mModule;
18
- private View mView = null;
19
-
20
- WebGPUView(Context context) {
21
- super(context);
22
- }
23
-
24
- public void setContextId(int contextId) {
25
- if (mModule == null) {
26
- Context context = getContext();
27
- if (context instanceof ThemedReactContext) {
28
- mModule = ((ThemedReactContext) context).getReactApplicationContext().getNativeModule(WebGPUModule.class);
29
- }
30
- }
31
- mContextId = contextId;
32
- }
33
-
34
- public void setTransparent(boolean value) {
35
- Context ctx = getContext();
36
- if (value != mTransparent || mView == null) {
37
- if (mView != null) {
38
- removeView(mView);
39
- }
40
- mTransparent = value;
41
- if (mTransparent) {
42
- // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
43
- // mView = new WebGPUAHBView(ctx, this);
44
- // } else {
45
- mView = new WebGPUTextureView(ctx, this);
46
- // }
47
- } else {
48
- mView = new WebGPUSurfaceView(ctx, this);
49
- }
50
- addView(mView);
51
- }
52
- }
53
-
54
- @Override
55
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
56
- super.onLayout(changed, left, top, right, bottom);
57
- mView.layout(0, 0, this.getMeasuredWidth(), this.getMeasuredHeight());
58
- }
59
-
60
- @Override
61
- public void surfaceCreated(Surface surface) {
62
- float density = getResources().getDisplayMetrics().density;
63
- float width = getWidth() / density;
64
- float height = getHeight() / density;
65
- onSurfaceCreate(surface, mContextId, width, height);
66
- }
67
-
68
- @Override
69
- public void surfaceChanged(Surface surface) {
70
- float density = getResources().getDisplayMetrics().density;
71
- float width = getWidth() / density;
72
- float height = getHeight() / density;
73
- onSurfaceChanged(surface, mContextId, width, height);
74
- }
75
-
76
- @Override
77
- public void surfaceDestroyed() {
78
- onSurfaceDestroy(mContextId);
79
- }
80
-
81
- @Override
82
- public void surfaceOffscreen() {
83
- switchToOffscreenSurface(mContextId);
84
- }
85
-
86
- @DoNotStrip
87
- private native void onSurfaceCreate(
88
- Surface surface,
89
- int contextId,
90
- float width,
91
- float height
92
- );
93
-
94
- @DoNotStrip
95
- private native void onSurfaceChanged(
96
- Surface surface,
97
- int contextId,
98
- float width,
99
- float height
100
- );
101
-
102
- @DoNotStrip
103
- private native void onSurfaceDestroy(int contextId);
104
-
105
- @DoNotStrip
106
- private native void switchToOffscreenSurface(int contextId);
107
-
108
- }