react-native-wgpu 0.5.13 → 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 -386
- 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/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.map +1 -0
- package/lib/typescript/webgpu/src/main/index.d.ts.map +1 -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 +12 -81
- package/src/index.ts +9 -0
- package/LICENSE +0 -20
- package/android/CMakeLists.txt +0 -110
- package/android/build.gradle +0 -138
- package/android/cpp/AndroidPlatformContext.h +0 -328
- 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 -44
- package/apple/ApplePlatformContext.mm +0 -302
- package/apple/AppleVideoPlayer.h +0 -31
- package/apple/AppleVideoPlayer.mm +0 -314
- 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 -117
- package/cpp/rnwgpu/PlatformContext.h +0 -127
- package/cpp/rnwgpu/RNWebGPUManager.cpp +0 -237
- 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 -783
- package/cpp/rnwgpu/api/External.h +0 -12
- package/cpp/rnwgpu/api/GPU.cpp +0 -154
- package/cpp/rnwgpu/api/GPU.h +0 -58
- package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -267
- 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 -545
- package/cpp/rnwgpu/api/GPUDevice.h +0 -265
- 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.cpp +0 -335
- package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -90
- package/cpp/rnwgpu/api/GPUFeatures.h +0 -206
- 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 -50
- package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
- package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -80
- package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -71
- 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 -48
- package/cpp/rnwgpu/api/RNWebGPU.h +0 -241
- package/cpp/rnwgpu/api/RnFeatures.h +0 -53
- package/cpp/rnwgpu/api/VideoFrame.h +0 -76
- package/cpp/rnwgpu/api/VideoPlayer.h +0 -69
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -65
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -81
- 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/GPUDawnTogglesDescriptor.h +0 -57
- package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -104
- package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -115
- package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -39
- package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -82
- 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/GPUSharedTextureMemoryDescriptor.h +0 -62
- 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 -1979
- 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 -4979
- package/cpp/webgpu/webgpu_cpp.h +0 -10059
- package/cpp/webgpu/webgpu_cpp_chained_struct.h +0 -57
- package/cpp/webgpu/webgpu_cpp_print.h +0 -2844
- 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.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.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 -76
- 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 -91
- package/src/main/index.tsx +0 -40
- package/src/main/index.web.tsx +0 -8
- package/src/types.ts +0 -102
- package/src/utils.ts +0 -4
- /package/lib/typescript/{src → webgpu/src}/Canvas.d.ts +0 -0
- /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/{src → webgpu/src}/index.d.ts +0 -0
- /package/lib/typescript/{lib/module → webgpu/src}/main/index.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/types.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
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { contextIdToId } from "./utils";
|
|
2
|
-
|
|
3
|
-
const fabric = true;
|
|
4
|
-
|
|
5
|
-
function getNativeSurface(contextId: number) {
|
|
6
|
-
const canvas = document.getElementById(
|
|
7
|
-
contextIdToId(contextId),
|
|
8
|
-
) as HTMLCanvasElement;
|
|
9
|
-
|
|
10
|
-
const { height, width } = canvas.getBoundingClientRect()!;
|
|
11
|
-
|
|
12
|
-
return {
|
|
13
|
-
surface: BigInt(contextId),
|
|
14
|
-
height,
|
|
15
|
-
width,
|
|
16
|
-
clientHeight: height,
|
|
17
|
-
clientWidth: width,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function makeWebGPUCanvasContext(
|
|
22
|
-
contextId: number,
|
|
23
|
-
width: number,
|
|
24
|
-
height: number,
|
|
25
|
-
) {
|
|
26
|
-
const canvas = document.getElementById(
|
|
27
|
-
contextIdToId(contextId),
|
|
28
|
-
) as HTMLCanvasElement;
|
|
29
|
-
|
|
30
|
-
const dpr = window.devicePixelRatio || 1;
|
|
31
|
-
const pixelWidth = (width * dpr).toString();
|
|
32
|
-
const pixelHeight = (height * dpr).toString();
|
|
33
|
-
|
|
34
|
-
if (
|
|
35
|
-
canvas.getAttribute("width") !== pixelWidth ||
|
|
36
|
-
canvas.getAttribute("height") !== pixelHeight
|
|
37
|
-
) {
|
|
38
|
-
canvas.setAttribute("width", pixelWidth);
|
|
39
|
-
canvas.setAttribute("height", pixelHeight);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const context = canvas.getContext("webgpu")!;
|
|
43
|
-
return Object.assign(context, {
|
|
44
|
-
present: () => {},
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// @ts-expect-error - polyfill for RNWebGPU native module
|
|
49
|
-
window.RNWebGPU = {
|
|
50
|
-
getNativeSurface,
|
|
51
|
-
MakeWebGPUCanvasContext: makeWebGPUCanvasContext,
|
|
52
|
-
fabric,
|
|
53
|
-
};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
// https://github.com/mrousavy/react-native-vision-camera/blob/main/package/src/dependencies/ModuleProxy.ts
|
|
2
|
-
type ImportType = ReturnType<typeof require>;
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Create a lazily-imported module proxy.
|
|
6
|
-
* This is useful for lazily requiring optional dependencies.
|
|
7
|
-
*/
|
|
8
|
-
export const createModuleProxy = <TModule>(
|
|
9
|
-
getModule: () => ImportType,
|
|
10
|
-
): TModule => {
|
|
11
|
-
const holder: { module: TModule | undefined } = { module: undefined };
|
|
12
|
-
|
|
13
|
-
const proxy = new Proxy(holder, {
|
|
14
|
-
get: (target, property) => {
|
|
15
|
-
if (target.module == null) {
|
|
16
|
-
// lazy initialize module via require()
|
|
17
|
-
// caller needs to make sure the require() call is wrapped in a try/catch
|
|
18
|
-
target.module = getModule() as TModule;
|
|
19
|
-
}
|
|
20
|
-
return target.module[property as keyof typeof holder.module];
|
|
21
|
-
},
|
|
22
|
-
});
|
|
23
|
-
return proxy as unknown as TModule;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export class OptionalDependencyNotInstalledError extends Error {
|
|
27
|
-
constructor(name: string) {
|
|
28
|
-
super(`${name} is not installed!`);
|
|
29
|
-
}
|
|
30
|
-
}
|
package/src/external/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./reanimated";
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type * as ReanimatedT from "react-native-reanimated";
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
OptionalDependencyNotInstalledError,
|
|
5
|
-
createModuleProxy,
|
|
6
|
-
} from "../ModuleProxy";
|
|
7
|
-
|
|
8
|
-
type TReanimated = typeof ReanimatedT;
|
|
9
|
-
|
|
10
|
-
const Reanimated = createModuleProxy<TReanimated>(() => {
|
|
11
|
-
try {
|
|
12
|
-
return require("react-native-reanimated");
|
|
13
|
-
} catch (e) {
|
|
14
|
-
throw new OptionalDependencyNotInstalledError("react-native-reanimated");
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
// eslint-disable-next-line import/no-default-export
|
|
19
|
-
export default Reanimated;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
// Declare global WebGPU worklet helper functions (installed by native module)
|
|
2
|
-
declare function __webgpuIsWebGPUObject(obj: unknown): boolean;
|
|
3
|
-
declare function __webgpuBox(obj: object): {
|
|
4
|
-
unbox: () => object;
|
|
5
|
-
__boxedWebGPU: true;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
let isRegistered = false;
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Register WebGPU objects for Worklets serialization.
|
|
12
|
-
* This allows GPUDevice, GPUCanvasContext, etc. to be passed to worklets.
|
|
13
|
-
*
|
|
14
|
-
* This is called automatically when the module loads if react-native-worklets is installed.
|
|
15
|
-
*/
|
|
16
|
-
export const registerWebGPUForReanimated = () => {
|
|
17
|
-
if (isRegistered) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
isRegistered = true;
|
|
21
|
-
|
|
22
|
-
try {
|
|
23
|
-
const { registerCustomSerializable } = require("react-native-worklets");
|
|
24
|
-
|
|
25
|
-
registerCustomSerializable({
|
|
26
|
-
name: "WebGPU",
|
|
27
|
-
determine: (value: object): value is object => {
|
|
28
|
-
"worklet";
|
|
29
|
-
return __webgpuIsWebGPUObject(value);
|
|
30
|
-
},
|
|
31
|
-
pack: (value: object) => {
|
|
32
|
-
"worklet";
|
|
33
|
-
return __webgpuBox(value);
|
|
34
|
-
},
|
|
35
|
-
unpack: (boxed: { unbox: () => object }) => {
|
|
36
|
-
"worklet";
|
|
37
|
-
return boxed.unbox();
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
} catch {
|
|
41
|
-
// react-native-worklets not installed, skip registration
|
|
42
|
-
}
|
|
43
|
-
};
|
package/src/hooks.tsx
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
createContext,
|
|
3
|
-
useContext,
|
|
4
|
-
useEffect,
|
|
5
|
-
useLayoutEffect,
|
|
6
|
-
useRef,
|
|
7
|
-
useState,
|
|
8
|
-
} from "react";
|
|
9
|
-
import type { ReactNode } from "react";
|
|
10
|
-
|
|
11
|
-
import type { CanvasRef, NativeCanvas } from "./Canvas";
|
|
12
|
-
|
|
13
|
-
export const warnIfNotHardwareAccelerated = (adapter: GPUAdapter) => {
|
|
14
|
-
// Check if adapter is a fallback adapter using the new GPUAdapterInfo API
|
|
15
|
-
// Note: isFallbackAdapter was moved from GPUAdapter to GPUAdapterInfo in Chrome 140
|
|
16
|
-
if (adapter.info && adapter.info.isFallbackAdapter) {
|
|
17
|
-
console.warn(
|
|
18
|
-
"GPUAdapter is not hardware accelerated. This is common on Android emulators. Rendering will be slow. Some features may be unavailable.",
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
interface DeviceContext {
|
|
24
|
-
device: GPUDevice | null;
|
|
25
|
-
adapter: GPUAdapter | null;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const DeviceContext = createContext<DeviceContext | null>(null);
|
|
29
|
-
|
|
30
|
-
interface DeviceProviderProps {
|
|
31
|
-
children?: ReactNode | ReactNode[];
|
|
32
|
-
adapterOptions?: GPURequestAdapterOptions;
|
|
33
|
-
deviceDescriptor?: GPUDeviceDescriptor;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export const GPUDeviceProvider = ({
|
|
37
|
-
children,
|
|
38
|
-
adapterOptions,
|
|
39
|
-
deviceDescriptor,
|
|
40
|
-
}: DeviceProviderProps) => {
|
|
41
|
-
const state = useDevice(adapterOptions, deviceDescriptor);
|
|
42
|
-
if (!state.device) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
return (
|
|
46
|
-
<DeviceContext.Provider value={state}>{children}</DeviceContext.Provider>
|
|
47
|
-
);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export const useSurface = () => {
|
|
51
|
-
const ref = useRef<CanvasRef>(null);
|
|
52
|
-
const [surface, setSurface] = useState<NativeCanvas | null>(null);
|
|
53
|
-
useLayoutEffect(() => {
|
|
54
|
-
const sur = ref.current!.getNativeSurface();
|
|
55
|
-
setSurface(sur);
|
|
56
|
-
}, []);
|
|
57
|
-
return { ref, surface };
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
export const useMainDevice = () => {
|
|
61
|
-
const ctx = useContext(DeviceContext);
|
|
62
|
-
if (!ctx) {
|
|
63
|
-
throw new Error("No DeviceContext found.");
|
|
64
|
-
}
|
|
65
|
-
return ctx;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
export const useCanvasRef = () => useRef<CanvasRef>(null);
|
|
69
|
-
|
|
70
|
-
export const useDevice = (
|
|
71
|
-
adapterOptions?: GPURequestAdapterOptions,
|
|
72
|
-
deviceDescriptor?: GPUDeviceDescriptor,
|
|
73
|
-
) => {
|
|
74
|
-
const [state, setState] = useState<DeviceContext | null>(null);
|
|
75
|
-
useEffect(() => {
|
|
76
|
-
(async () => {
|
|
77
|
-
if (!state) {
|
|
78
|
-
const adapter = await navigator.gpu.requestAdapter(adapterOptions);
|
|
79
|
-
if (!adapter) {
|
|
80
|
-
throw new Error("No appropriate GPUAdapter found.");
|
|
81
|
-
}
|
|
82
|
-
warnIfNotHardwareAccelerated(adapter);
|
|
83
|
-
const device = await adapter.requestDevice(deviceDescriptor);
|
|
84
|
-
if (!device) {
|
|
85
|
-
throw new Error("No appropriate GPUDevice found.");
|
|
86
|
-
}
|
|
87
|
-
setState({ adapter, device });
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
})();
|
|
91
|
-
}, [adapterOptions, deviceDescriptor, state]);
|
|
92
|
-
return { adapter: state?.adapter ?? null, device: state?.device ?? null };
|
|
93
|
-
};
|
package/src/index.tsx
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/// <reference types="@webgpu/types" />
|
|
2
|
-
import type {
|
|
3
|
-
GPUDawnTogglesDescriptor,
|
|
4
|
-
GPUSharedTextureMemory,
|
|
5
|
-
GPUSharedTextureMemoryDescriptor,
|
|
6
|
-
NativeCanvas,
|
|
7
|
-
RNCanvasContext,
|
|
8
|
-
VideoPlayer,
|
|
9
|
-
NativeVideoFrame,
|
|
10
|
-
NativeVideoPixelFormat,
|
|
11
|
-
} from "./types";
|
|
12
|
-
|
|
13
|
-
export * from "./main";
|
|
14
|
-
export type {
|
|
15
|
-
NativeVideoFrame,
|
|
16
|
-
VideoPlayer,
|
|
17
|
-
NativeVideoPixelFormat,
|
|
18
|
-
CreateVideoPlayerOptions,
|
|
19
|
-
GPUSharedTextureMemory,
|
|
20
|
-
GPUSharedTextureMemoryDescriptor,
|
|
21
|
-
GPUDawnTogglesDescriptor,
|
|
22
|
-
} from "./types";
|
|
23
|
-
|
|
24
|
-
declare global {
|
|
25
|
-
interface Navigator {
|
|
26
|
-
gpu: GPU;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
var navigator: Navigator;
|
|
30
|
-
|
|
31
|
-
var RNWebGPU: {
|
|
32
|
-
gpu: GPU;
|
|
33
|
-
fabric: boolean;
|
|
34
|
-
getNativeSurface: (contextId: number) => NativeCanvas;
|
|
35
|
-
MakeWebGPUCanvasContext: (
|
|
36
|
-
contextId: number,
|
|
37
|
-
width: number,
|
|
38
|
-
height: number,
|
|
39
|
-
) => RNCanvasContext;
|
|
40
|
-
DecodeToUTF8: (buffer: NodeJS.ArrayBufferView | ArrayBuffer) => string;
|
|
41
|
-
createImageBitmap: typeof createImageBitmap;
|
|
42
|
-
loadVideoFrame: (path: string) => NativeVideoFrame;
|
|
43
|
-
createTestVideoFrame: (width: number, height: number) => NativeVideoFrame;
|
|
44
|
-
// Wrap a NativeBuffer.pointer (CVPixelBufferRef on iOS / AHardwareBuffer*
|
|
45
|
-
// on Android) into a NativeVideoFrame. Matches the shape used by libraries
|
|
46
|
-
// that emit NativeBuffer (e.g. react-native-vision-camera).
|
|
47
|
-
createVideoFrameFromNativeBuffer: (pointer: bigint) => NativeVideoFrame;
|
|
48
|
-
createVideoPlayer: (
|
|
49
|
-
path: string,
|
|
50
|
-
pixelFormat?: NativeVideoPixelFormat,
|
|
51
|
-
) => VideoPlayer;
|
|
52
|
-
writeTestVideoFile: () => string;
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
interface GPUDevice {
|
|
56
|
-
importSharedTextureMemory(
|
|
57
|
-
descriptor: GPUSharedTextureMemoryDescriptor,
|
|
58
|
-
): GPUSharedTextureMemory;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Non-standard, Dawn-only. Lets callers set Dawn device-stage toggles at
|
|
62
|
-
// device creation: adapter.requestDevice({ dawnToggles: { ... } }).
|
|
63
|
-
interface GPUDeviceDescriptor {
|
|
64
|
-
dawnToggles?: GPUDawnTogglesDescriptor;
|
|
65
|
-
}
|
|
66
|
-
// Non-spec extension: camera frames arrive in the sensor's native
|
|
67
|
-
// orientation, which differs between iOS and Android. `rotation` (degrees,
|
|
68
|
-
// one of 0/90/180/270) and `mirrored` (horizontal flip) are baked into the
|
|
69
|
-
// sampling transform by Dawn, so the shader sees an upright frame. Maps
|
|
70
|
-
// directly onto VisionCamera's `frame.orientation` / `frame.isMirrored`.
|
|
71
|
-
interface GPUExternalTextureDescriptor {
|
|
72
|
-
rotation?: 0 | 90 | 180 | 270;
|
|
73
|
-
mirrored?: boolean;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// Non-spec extension: a GPUExternalTexture imported from a native surface
|
|
77
|
-
// holds an open shared-memory access window on that surface until this
|
|
78
|
-
// wrapper is destroyed. Call destroy() right after the queue.submit() that
|
|
79
|
-
// sampled it (never before) to release the surface back to its producer
|
|
80
|
-
// immediately, instead of waiting for garbage collection. Forgetting to call
|
|
81
|
-
// it is not fatal (GC still cleans up), but it can starve a producer's buffer
|
|
82
|
-
// pool (e.g. a camera/video player) and pile up GPU resources.
|
|
83
|
-
interface GPUExternalTexture {
|
|
84
|
-
destroy(): void;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Extend createImageBitmap to accept ArrayBuffer/TypedArray (encoded image bytes)
|
|
88
|
-
function createImageBitmap(
|
|
89
|
-
image: ArrayBuffer | ArrayBufferView,
|
|
90
|
-
): Promise<ImageBitmap>;
|
|
91
|
-
}
|
package/src/main/index.tsx
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { registerWebGPUForReanimated } from "../external";
|
|
2
|
-
import WebGPUModule from "../NativeWebGPUModule";
|
|
3
|
-
|
|
4
|
-
export * from "../Canvas";
|
|
5
|
-
export * from "../Offscreen";
|
|
6
|
-
export * from "../WebGPUViewNativeComponent";
|
|
7
|
-
export * from "../hooks";
|
|
8
|
-
|
|
9
|
-
export { default as WebGPUModule } from "../NativeWebGPUModule";
|
|
10
|
-
|
|
11
|
-
const _installOk = WebGPUModule.install();
|
|
12
|
-
|
|
13
|
-
registerWebGPUForReanimated();
|
|
14
|
-
|
|
15
|
-
if (typeof RNWebGPU !== "undefined") {
|
|
16
|
-
if (!navigator) {
|
|
17
|
-
// @ts-expect-error Navigation object is more complex than this, setting it to an empty object to add gpu property
|
|
18
|
-
navigator = {
|
|
19
|
-
gpu: RNWebGPU.gpu,
|
|
20
|
-
userAgent: "react-native",
|
|
21
|
-
};
|
|
22
|
-
} else {
|
|
23
|
-
navigator.gpu = RNWebGPU.gpu;
|
|
24
|
-
if (typeof navigator.userAgent !== "string") {
|
|
25
|
-
try {
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
27
|
-
// @ts-ignore - Hermes navigator may not include a userAgent, align with the polyfill if needed
|
|
28
|
-
navigator.userAgent = "react-native";
|
|
29
|
-
} catch {
|
|
30
|
-
// navigator.userAgent can be read-only; ignore if assignment fails
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
global.createImageBitmap =
|
|
35
|
-
global.createImageBitmap ?? RNWebGPU.createImageBitmap.bind(RNWebGPU);
|
|
36
|
-
} else {
|
|
37
|
-
console.warn(
|
|
38
|
-
`[react-native-wgpu] install() returned ${_installOk} but RNWebGPU global is not available`,
|
|
39
|
-
);
|
|
40
|
-
}
|
package/src/main/index.web.tsx
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import "../WebPolyfillGPUModule";
|
|
2
|
-
|
|
3
|
-
export * from "../Canvas";
|
|
4
|
-
export * from "../Offscreen";
|
|
5
|
-
export * from "../WebGPUViewNativeComponent";
|
|
6
|
-
export * from "../hooks";
|
|
7
|
-
|
|
8
|
-
// We don't need to set all global properties on web, webgpu is already available globally
|
package/src/types.ts
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
type SurfacePointer = bigint;
|
|
2
|
-
|
|
3
|
-
export interface NativeCanvas {
|
|
4
|
-
surface: SurfacePointer;
|
|
5
|
-
width: number;
|
|
6
|
-
height: number;
|
|
7
|
-
clientWidth: number;
|
|
8
|
-
clientHeight: number;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export type RNCanvasContext = GPUCanvasContext & {
|
|
12
|
-
present: () => void;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export interface CanvasRef {
|
|
16
|
-
getContextId: () => number;
|
|
17
|
-
getContext(contextName: "webgpu"): RNCanvasContext | null;
|
|
18
|
-
getNativeSurface: () => NativeCanvas;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// Pixel layout of a NativeVideoFrame. NOT the WebCodecs `VideoPixelFormat`
|
|
22
|
-
// enum — these are the two native surface layouts we support, lower-cased to
|
|
23
|
-
// avoid being mistaken for the spec values ("NV12", "BGRA", …).
|
|
24
|
-
export type NativeVideoPixelFormat = "bgra8" | "nv12";
|
|
25
|
-
|
|
26
|
-
// A native, GPU-shareable handle to a single video frame.
|
|
27
|
-
//
|
|
28
|
-
// NOT the WebCodecs `VideoFrame`: there is no `close()`/`format`/`timestamp`,
|
|
29
|
-
// the surface is referenced by a raw native pointer, and disposal is
|
|
30
|
-
// `release()`. Named with a `Native` prefix so it doesn't shadow the global
|
|
31
|
-
// WebCodecs type or imply spec semantics it doesn't have.
|
|
32
|
-
//
|
|
33
|
-
// - handle is the raw pointer (IOSurfaceRef on Apple, AHardwareBuffer* on
|
|
34
|
-
// Android) encoded as a BigInt. Pass it to
|
|
35
|
-
// GPUDevice.importSharedTextureMemory.
|
|
36
|
-
// - pixelFormat describes the surface layout: 'bgra8' for a sampled
|
|
37
|
-
// GPUTexture; 'nv12' (biplanar Y + CbCr) for the importExternalTexture
|
|
38
|
-
// path.
|
|
39
|
-
// - release() drops the underlying backing object (a CVPixelBuffer on Apple).
|
|
40
|
-
// The frame is also released when the JS wrapper is garbage-collected; call
|
|
41
|
-
// release() eagerly when you know you're done.
|
|
42
|
-
export interface NativeVideoFrame {
|
|
43
|
-
readonly handle: bigint;
|
|
44
|
-
readonly width: number;
|
|
45
|
-
readonly height: number;
|
|
46
|
-
readonly pixelFormat: NativeVideoPixelFormat;
|
|
47
|
-
release(): void;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// A handle to a decoded video stream. Poll copyLatestFrame() each render tick
|
|
51
|
-
// to obtain the most recently decoded frame as an IOSurface/AHardwareBuffer
|
|
52
|
-
// (returns null between frames so callers can skip the import work).
|
|
53
|
-
export interface VideoPlayer {
|
|
54
|
-
copyLatestFrame(): NativeVideoFrame | null;
|
|
55
|
-
play(): void;
|
|
56
|
-
pause(): void;
|
|
57
|
-
release(): void;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export interface CreateVideoPlayerOptions {
|
|
61
|
-
// 'bgra8' (default): emit a single-plane BGRA surface, suitable for
|
|
62
|
-
// SharedTextureMemory and a regular sampled GPUTexture.
|
|
63
|
-
// 'nv12': emit biplanar Y + CbCr surfaces, suitable for
|
|
64
|
-
// GPUDevice.importExternalTexture.
|
|
65
|
-
pixelFormat?: NativeVideoPixelFormat;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export interface GPUSharedTextureMemoryDescriptor {
|
|
69
|
-
// Raw native handle (IOSurfaceRef on Apple, AHardwareBuffer* on Android),
|
|
70
|
-
// encoded as a BigInt. The caller is responsible for keeping the underlying
|
|
71
|
-
// object alive for as long as the shared memory (and any textures derived
|
|
72
|
-
// from it) are in use. Using NativeVideoFrame.handle handles this
|
|
73
|
-
// automatically.
|
|
74
|
-
handle: bigint;
|
|
75
|
-
label?: string;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Non-standard, Dawn-only device toggles. Mirrors Dawn's DawnTogglesDescriptor
|
|
79
|
-
// and is chained onto the native device descriptor at requestDevice time.
|
|
80
|
-
// Pass it via the (augmented) GPUDeviceDescriptor: adapter.requestDevice({
|
|
81
|
-
// dawnToggles: { enabledToggles: ["dump_shaders"] } }). Toggle names are open
|
|
82
|
-
// strings (see Dawn's Toggles.cpp); these flags are Dawn-specific and
|
|
83
|
-
// non-portable.
|
|
84
|
-
export interface GPUDawnTogglesDescriptor {
|
|
85
|
-
enabledToggles?: string[];
|
|
86
|
-
disabledToggles?: string[];
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// A piece of shared GPU memory backed by a native surface. Use createTexture()
|
|
90
|
-
// to obtain a regular GPUTexture that aliases the surface's pixels. The
|
|
91
|
-
// returned texture must be bracketed by beginAccess/endAccess around any
|
|
92
|
-
// command-buffer submission that uses it.
|
|
93
|
-
export interface GPUSharedTextureMemory {
|
|
94
|
-
readonly __brand: "GPUSharedTextureMemory";
|
|
95
|
-
label: string;
|
|
96
|
-
createTexture(descriptor?: GPUTextureDescriptor): GPUTexture;
|
|
97
|
-
// `initialized` declares whether the surface already holds meaningful pixels
|
|
98
|
-
// (true for an incoming video/camera frame, false if the next pass will fully
|
|
99
|
-
// overwrite it).
|
|
100
|
-
beginAccess(texture: GPUTexture, initialized: boolean): boolean;
|
|
101
|
-
endAccess(texture: GPUTexture): boolean;
|
|
102
|
-
}
|
package/src/utils.ts
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/lib/typescript/{src → webgpu/src}/external/reanimated/registerWebGPUForReanimated.d.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|