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.
- package/README.md +13 -302
- package/lib/commonjs/index.js +7 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +4 -4
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/{src → webgpu/src}/Canvas.d.ts +0 -10
- package/lib/typescript/webgpu/src/Canvas.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/NativeWebGPUModule.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/Offscreen.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/WebGPUViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/external/ModuleProxy.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/external/index.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/external/reanimated/ReanimatedProxy.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/external/reanimated/index.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/hooks.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/index.d.ts +37 -0
- package/lib/typescript/webgpu/src/index.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/main/index.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/types.d.ts +50 -0
- package/lib/typescript/webgpu/src/types.d.ts.map +1 -0
- package/lib/typescript/{eslint.config.d.mts.map → webgpu-shim/eslint.config.d.mts.map} +1 -1
- package/lib/typescript/{lib → webgpu-shim/lib}/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/webgpu-shim/lib/module/index.d.ts +2 -0
- package/lib/typescript/{lib → webgpu-shim/lib}/module/index.d.ts.map +1 -1
- package/lib/typescript/webgpu-shim/src/index.d.ts +2 -0
- package/lib/typescript/webgpu-shim/src/index.d.ts.map +1 -0
- package/package.json +13 -82
- package/src/index.ts +9 -0
- package/LICENSE +0 -20
- package/android/CMakeLists.txt +0 -108
- package/android/build.gradle +0 -138
- package/android/cpp/AndroidPlatformContext.h +0 -207
- package/android/cpp/cpp-adapter.cpp +0 -71
- package/android/src/main/AndroidManifest.xml +0 -3
- package/android/src/main/java/com/webgpu/WebGPUAHBView.java +0 -298
- package/android/src/main/java/com/webgpu/WebGPUAPI.java +0 -20
- package/android/src/main/java/com/webgpu/WebGPUBaseView.java +0 -61
- package/android/src/main/java/com/webgpu/WebGPUModule.java +0 -50
- package/android/src/main/java/com/webgpu/WebGPUSurfaceView.java +0 -41
- package/android/src/main/java/com/webgpu/WebGPUSurfaceViewWithSC.java +0 -79
- package/android/src/main/java/com/webgpu/WebGPUTextureView.java +0 -46
- package/android/src/main/java/com/webgpu/WebGPUView.java +0 -108
- package/android/src/main/java/com/webgpu/WebGPUViewManager.java +0 -38
- package/android/src/main/java/com/webgpu/WebGPUViewPackage.java +0 -50
- package/android/src/newarch/com/webgpu/WebGPUViewManagerSpec.java +0 -24
- package/apple/ApplePlatformContext.h +0 -31
- package/apple/ApplePlatformContext.mm +0 -157
- package/apple/MetalView.h +0 -13
- package/apple/MetalView.mm +0 -50
- package/apple/RNWGUIKit.h +0 -16
- package/apple/WebGPUModule.h +0 -13
- package/apple/WebGPUModule.mm +0 -89
- package/apple/WebGPUView.h +0 -12
- package/apple/WebGPUView.mm +0 -66
- package/cpp/WGPULogger.h +0 -100
- package/cpp/dawn_logging.cpp +0 -119
- package/cpp/jsi/EnumMapper.h +0 -45
- package/cpp/jsi/JSIConverter.h +0 -473
- package/cpp/jsi/NativeObject.h +0 -607
- package/cpp/jsi/Promise.cpp +0 -44
- package/cpp/jsi/Promise.h +0 -35
- package/cpp/jsi/RuntimeAwareCache.cpp +0 -7
- package/cpp/jsi/RuntimeAwareCache.h +0 -100
- package/cpp/jsi/RuntimeLifecycleMonitor.cpp +0 -72
- package/cpp/jsi/RuntimeLifecycleMonitor.h +0 -32
- package/cpp/rnwgpu/ArrayBuffer.h +0 -73
- package/cpp/rnwgpu/PlatformContext.h +0 -46
- package/cpp/rnwgpu/RNWebGPUManager.cpp +0 -225
- package/cpp/rnwgpu/RNWebGPUManager.h +0 -46
- package/cpp/rnwgpu/SurfaceRegistry.h +0 -230
- package/cpp/rnwgpu/api/Canvas.h +0 -57
- package/cpp/rnwgpu/api/Convertors.h +0 -761
- package/cpp/rnwgpu/api/External.h +0 -12
- package/cpp/rnwgpu/api/GPU.cpp +0 -127
- package/cpp/rnwgpu/api/GPU.h +0 -58
- package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -191
- package/cpp/rnwgpu/api/GPUAdapter.h +0 -59
- package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
- package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
- package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
- package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
- package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -97
- package/cpp/rnwgpu/api/GPUBuffer.h +0 -87
- package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -67
- package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -66
- package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
- package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
- package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
- package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
- package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
- package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
- package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
- package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
- package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
- package/cpp/rnwgpu/api/GPUDevice.cpp +0 -492
- package/cpp/rnwgpu/api/GPUDevice.h +0 -259
- package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
- package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
- package/cpp/rnwgpu/api/GPUError.h +0 -35
- package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
- package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -45
- package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
- package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
- package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
- package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
- package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
- package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
- package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
- package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
- package/cpp/rnwgpu/api/GPUQueue.cpp +0 -169
- package/cpp/rnwgpu/api/GPUQueue.h +0 -81
- package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
- package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
- package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
- package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
- package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
- package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
- package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
- package/cpp/rnwgpu/api/GPUSampler.h +0 -44
- package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -51
- package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
- package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
- package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
- package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
- package/cpp/rnwgpu/api/GPUTexture.h +0 -162
- package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
- package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -71
- package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
- package/cpp/rnwgpu/api/ImageBitmap.h +0 -40
- package/cpp/rnwgpu/api/RNWebGPU.h +0 -199
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -65
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -57
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -98
- package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -58
- package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -53
- package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -57
- package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -57
- package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -60
- package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
- package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
- package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -67
- package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -59
- package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
- package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -46
- package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -46
- package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -57
- package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -59
- package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -68
- package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -104
- package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -100
- package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -39
- package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -80
- package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -74
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -63
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -66
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -82
- package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -55
- package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
- package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -55
- package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -58
- package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -70
- package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -62
- package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -56
- package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -44
- package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -46
- package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -81
- package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -82
- package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -102
- package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -93
- package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -59
- package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -104
- package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -52
- package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -46
- package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -111
- package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -61
- package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -63
- package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
- package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -65
- package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -60
- package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -60
- package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -92
- package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
- package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -92
- package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -65
- package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -54
- package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -63
- package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -74
- package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
- package/cpp/rnwgpu/async/AsyncDispatcher.h +0 -28
- package/cpp/rnwgpu/async/AsyncRunner.cpp +0 -215
- package/cpp/rnwgpu/async/AsyncRunner.h +0 -53
- package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -181
- package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -55
- package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.cpp +0 -23
- package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.h +0 -22
- package/cpp/webgpu/webgpu.h +0 -4918
- package/cpp/webgpu/webgpu_cpp.h +0 -10294
- package/cpp/webgpu/webgpu_cpp_chained_struct.h +0 -57
- package/cpp/webgpu/webgpu_cpp_print.h +0 -2755
- package/cpp/webgpu/webgpu_enum_class_bitmasks.h +0 -161
- package/lib/commonjs/Canvas.js +0 -55
- package/lib/commonjs/Canvas.js.map +0 -1
- package/lib/commonjs/NativeWebGPUModule.js +0 -10
- package/lib/commonjs/NativeWebGPUModule.js.map +0 -1
- package/lib/commonjs/Offscreen.js +0 -103
- package/lib/commonjs/Offscreen.js.map +0 -1
- package/lib/commonjs/WebGPUViewNativeComponent.js +0 -10
- package/lib/commonjs/WebGPUViewNativeComponent.js.map +0 -1
- package/lib/commonjs/WebGPUViewNativeComponent.web.js +0 -103
- package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +0 -1
- package/lib/commonjs/WebPolyfillGPUModule.js +0 -40
- package/lib/commonjs/WebPolyfillGPUModule.js.map +0 -1
- package/lib/commonjs/external/ModuleProxy.js +0 -36
- package/lib/commonjs/external/ModuleProxy.js.map +0 -1
- package/lib/commonjs/external/index.js +0 -17
- package/lib/commonjs/external/index.js.map +0 -1
- package/lib/commonjs/external/reanimated/ReanimatedProxy.js +0 -18
- package/lib/commonjs/external/reanimated/ReanimatedProxy.js.map +0 -1
- package/lib/commonjs/external/reanimated/index.js +0 -21
- package/lib/commonjs/external/reanimated/index.js.map +0 -1
- package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js +0 -49
- package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
- package/lib/commonjs/hooks.js +0 -83
- package/lib/commonjs/hooks.js.map +0 -1
- package/lib/commonjs/main/index.js +0 -91
- package/lib/commonjs/main/index.js.map +0 -1
- package/lib/commonjs/main/index.web.js +0 -51
- package/lib/commonjs/main/index.web.js.map +0 -1
- package/lib/commonjs/types.js +0 -2
- package/lib/commonjs/types.js.map +0 -1
- package/lib/commonjs/utils.js +0 -11
- package/lib/commonjs/utils.js.map +0 -1
- package/lib/module/Canvas.js +0 -46
- package/lib/module/Canvas.js.map +0 -1
- package/lib/module/NativeWebGPUModule.js +0 -4
- package/lib/module/NativeWebGPUModule.js.map +0 -1
- package/lib/module/Offscreen.js +0 -96
- package/lib/module/Offscreen.js.map +0 -1
- package/lib/module/WebGPUViewNativeComponent.js +0 -4
- package/lib/module/WebGPUViewNativeComponent.js.map +0 -1
- package/lib/module/WebGPUViewNativeComponent.web.js +0 -96
- package/lib/module/WebGPUViewNativeComponent.web.js.map +0 -1
- package/lib/module/WebPolyfillGPUModule.js +0 -38
- package/lib/module/WebPolyfillGPUModule.js.map +0 -1
- package/lib/module/external/ModuleProxy.js +0 -28
- package/lib/module/external/ModuleProxy.js.map +0 -1
- package/lib/module/external/index.js +0 -2
- package/lib/module/external/index.js.map +0 -1
- package/lib/module/external/reanimated/ReanimatedProxy.js +0 -12
- package/lib/module/external/reanimated/ReanimatedProxy.js.map +0 -1
- package/lib/module/external/reanimated/index.js +0 -3
- package/lib/module/external/reanimated/index.js.map +0 -1
- package/lib/module/external/reanimated/registerWebGPUForReanimated.js +0 -42
- package/lib/module/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
- package/lib/module/hooks.js +0 -70
- package/lib/module/hooks.js.map +0 -1
- package/lib/module/main/index.js +0 -33
- package/lib/module/main/index.js.map +0 -1
- package/lib/module/main/index.web.js +0 -8
- package/lib/module/main/index.web.js.map +0 -1
- package/lib/module/types.js +0 -2
- package/lib/module/types.js.map +0 -1
- package/lib/module/utils.js +0 -5
- package/lib/module/utils.js.map +0 -1
- package/lib/typescript/babel.config.d.ts +0 -3
- package/lib/typescript/babel.config.d.ts.map +0 -1
- package/lib/typescript/jest.config.d.ts +0 -9
- package/lib/typescript/jest.config.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/Canvas.d.ts +0 -7
- package/lib/typescript/lib/commonjs/Canvas.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts +0 -5
- package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/Offscreen.d.ts +0 -26
- package/lib/typescript/lib/commonjs/Offscreen.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts +0 -5
- package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts +0 -4
- package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts +0 -2
- package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts +0 -12
- package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/external/index.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts +0 -6
- package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts +0 -4
- package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts +0 -9
- package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/hooks.d.ts +0 -18
- package/lib/typescript/lib/commonjs/hooks.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/index.d.ts +0 -2
- package/lib/typescript/lib/commonjs/main/index.d.ts +0 -3
- package/lib/typescript/lib/commonjs/main/index.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/main/index.web.d.ts +0 -2
- package/lib/typescript/lib/commonjs/main/index.web.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/types.d.ts +0 -1
- package/lib/typescript/lib/commonjs/types.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/utils.d.ts +0 -3
- package/lib/typescript/lib/commonjs/utils.d.ts.map +0 -1
- package/lib/typescript/lib/module/Canvas.d.ts +0 -8
- package/lib/typescript/lib/module/Canvas.d.ts.map +0 -1
- package/lib/typescript/lib/module/NativeWebGPUModule.d.ts +0 -3
- package/lib/typescript/lib/module/NativeWebGPUModule.d.ts.map +0 -1
- package/lib/typescript/lib/module/Offscreen.d.ts +0 -25
- package/lib/typescript/lib/module/Offscreen.d.ts.map +0 -1
- package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts +0 -3
- package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts.map +0 -1
- package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts +0 -3
- package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +0 -1
- package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts +0 -2
- package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts.map +0 -1
- package/lib/typescript/lib/module/external/ModuleProxy.d.ts +0 -7
- package/lib/typescript/lib/module/external/ModuleProxy.d.ts.map +0 -1
- package/lib/typescript/lib/module/external/index.d.ts.map +0 -1
- package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts +0 -5
- package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
- package/lib/typescript/lib/module/external/reanimated/index.d.ts.map +0 -1
- package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts +0 -2
- package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
- package/lib/typescript/lib/module/hooks.d.ts +0 -18
- package/lib/typescript/lib/module/hooks.d.ts.map +0 -1
- package/lib/typescript/lib/module/index.d.ts +0 -2
- package/lib/typescript/lib/module/main/index.d.ts.map +0 -1
- package/lib/typescript/lib/module/main/index.web.d.ts +0 -5
- package/lib/typescript/lib/module/main/index.web.d.ts.map +0 -1
- package/lib/typescript/lib/module/types.d.ts +0 -1
- package/lib/typescript/lib/module/types.d.ts.map +0 -1
- package/lib/typescript/lib/module/utils.d.ts +0 -2
- package/lib/typescript/lib/module/utils.d.ts.map +0 -1
- package/lib/typescript/src/Canvas.d.ts.map +0 -1
- package/lib/typescript/src/NativeWebGPUModule.d.ts.map +0 -1
- package/lib/typescript/src/Offscreen.d.ts.map +0 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +0 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +0 -9
- package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +0 -1
- package/lib/typescript/src/WebPolyfillGPUModule.d.ts +0 -2
- package/lib/typescript/src/WebPolyfillGPUModule.d.ts.map +0 -1
- package/lib/typescript/src/external/ModuleProxy.d.ts.map +0 -1
- package/lib/typescript/src/external/index.d.ts +0 -2
- package/lib/typescript/src/external/index.d.ts.map +0 -1
- package/lib/typescript/src/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
- package/lib/typescript/src/external/reanimated/index.d.ts +0 -3
- package/lib/typescript/src/external/reanimated/index.d.ts.map +0 -1
- package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
- package/lib/typescript/src/hooks.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts +0 -18
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/lib/typescript/src/main/index.d.ts +0 -6
- package/lib/typescript/src/main/index.d.ts.map +0 -1
- package/lib/typescript/src/main/index.web.d.ts +0 -6
- package/lib/typescript/src/main/index.web.d.ts.map +0 -1
- package/lib/typescript/src/types.d.ts +0 -19
- package/lib/typescript/src/types.d.ts.map +0 -1
- package/lib/typescript/src/utils.d.ts +0 -2
- package/lib/typescript/src/utils.d.ts.map +0 -1
- package/libs/android/arm64-v8a/libwebgpu_dawn.so +0 -0
- package/libs/android/armeabi-v7a/libwebgpu_dawn.so +0 -0
- package/libs/android/x86/libwebgpu_dawn.so +0 -0
- package/libs/android/x86_64/libwebgpu_dawn.so +0 -0
- package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +0 -59
- package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
- package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
- package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
- package/react-native-wgpu.podspec +0 -47
- package/src/Canvas.tsx +0 -91
- package/src/NativeWebGPUModule.ts +0 -9
- package/src/Offscreen.ts +0 -113
- package/src/WebGPUViewNativeComponent.ts +0 -11
- package/src/WebGPUViewNativeComponent.web.ts +0 -113
- package/src/WebPolyfillGPUModule.ts +0 -53
- package/src/external/ModuleProxy.ts +0 -30
- package/src/external/index.ts +0 -1
- package/src/external/reanimated/ReanimatedProxy.ts +0 -19
- package/src/external/reanimated/index.ts +0 -2
- package/src/external/reanimated/registerWebGPUForReanimated.ts +0 -43
- package/src/hooks.tsx +0 -93
- package/src/index.tsx +0 -31
- package/src/main/index.tsx +0 -40
- package/src/main/index.web.tsx +0 -8
- package/src/types.ts +0 -20
- package/src/utils.ts +0 -4
- /package/lib/typescript/{src → webgpu/src}/NativeWebGPUModule.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/Offscreen.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/WebGPUViewNativeComponent.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/external/ModuleProxy.d.ts +0 -0
- /package/lib/typescript/{lib/module → webgpu/src}/external/index.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/external/reanimated/ReanimatedProxy.d.ts +0 -0
- /package/lib/typescript/{lib/module → webgpu/src}/external/reanimated/index.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/external/reanimated/registerWebGPUForReanimated.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/hooks.d.ts +0 -0
- /package/lib/typescript/{lib/module → webgpu/src}/main/index.d.ts +0 -0
- /package/lib/typescript/{eslint.config.d.mts → webgpu-shim/eslint.config.d.mts} +0 -0
- /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.
|
|
4
|
-
"description": "
|
|
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
|
-
"
|
|
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.
|
package/android/CMakeLists.txt
DELETED
|
@@ -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()
|
package/android/build.gradle
DELETED
|
@@ -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 ®istry = 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 ®istry = 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 ®istry = 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 ®istry = rnwgpu::SurfaceRegistry::getInstance();
|
|
70
|
-
registry.removeSurfaceInfo(contextId);
|
|
71
|
-
}
|