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,162 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <algorithm>
|
|
4
|
-
#include <memory>
|
|
5
|
-
#include <string>
|
|
6
|
-
|
|
7
|
-
#include "Unions.h"
|
|
8
|
-
|
|
9
|
-
#include "NativeObject.h"
|
|
10
|
-
|
|
11
|
-
#include "webgpu/webgpu_cpp.h"
|
|
12
|
-
|
|
13
|
-
#include "GPUTextureView.h"
|
|
14
|
-
#include "GPUTextureViewDescriptor.h"
|
|
15
|
-
|
|
16
|
-
namespace rnwgpu {
|
|
17
|
-
|
|
18
|
-
namespace jsi = facebook::jsi;
|
|
19
|
-
|
|
20
|
-
class GPUTexture : public NativeObject<GPUTexture> {
|
|
21
|
-
public:
|
|
22
|
-
static constexpr const char *CLASS_NAME = "GPUTexture";
|
|
23
|
-
|
|
24
|
-
explicit GPUTexture(wgpu::Texture instance, std::string label,
|
|
25
|
-
bool reportsMemoryPressure = true)
|
|
26
|
-
: NativeObject(CLASS_NAME), _instance(instance), _label(label),
|
|
27
|
-
_reportsMemoryPressure(reportsMemoryPressure) {}
|
|
28
|
-
|
|
29
|
-
public:
|
|
30
|
-
std::string getBrand() { return CLASS_NAME; }
|
|
31
|
-
|
|
32
|
-
std::shared_ptr<GPUTextureView> createView(
|
|
33
|
-
std::optional<std::shared_ptr<GPUTextureViewDescriptor>> descriptor);
|
|
34
|
-
void destroy();
|
|
35
|
-
|
|
36
|
-
uint32_t getWidth();
|
|
37
|
-
uint32_t getHeight();
|
|
38
|
-
uint32_t getDepthOrArrayLayers();
|
|
39
|
-
uint32_t getMipLevelCount();
|
|
40
|
-
uint32_t getSampleCount();
|
|
41
|
-
wgpu::TextureDimension getDimension();
|
|
42
|
-
wgpu::TextureFormat getFormat();
|
|
43
|
-
double getUsage();
|
|
44
|
-
|
|
45
|
-
std::string getLabel() { return _label; }
|
|
46
|
-
void setLabel(const std::string &label) {
|
|
47
|
-
_label = label;
|
|
48
|
-
_instance.SetLabel(_label.c_str());
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
52
|
-
installGetter(runtime, prototype, "__brand", &GPUTexture::getBrand);
|
|
53
|
-
installMethod(runtime, prototype, "createView", &GPUTexture::createView);
|
|
54
|
-
installMethod(runtime, prototype, "destroy", &GPUTexture::destroy);
|
|
55
|
-
installGetter(runtime, prototype, "width", &GPUTexture::getWidth);
|
|
56
|
-
installGetter(runtime, prototype, "height", &GPUTexture::getHeight);
|
|
57
|
-
installGetter(runtime, prototype, "depthOrArrayLayers",
|
|
58
|
-
&GPUTexture::getDepthOrArrayLayers);
|
|
59
|
-
installGetter(runtime, prototype, "mipLevelCount",
|
|
60
|
-
&GPUTexture::getMipLevelCount);
|
|
61
|
-
installGetter(runtime, prototype, "sampleCount",
|
|
62
|
-
&GPUTexture::getSampleCount);
|
|
63
|
-
installGetter(runtime, prototype, "dimension", &GPUTexture::getDimension);
|
|
64
|
-
installGetter(runtime, prototype, "format", &GPUTexture::getFormat);
|
|
65
|
-
installGetter(runtime, prototype, "usage", &GPUTexture::getUsage);
|
|
66
|
-
installGetterSetter(runtime, prototype, "label", &GPUTexture::getLabel,
|
|
67
|
-
&GPUTexture::setLabel);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
inline const wgpu::Texture get() { return _instance; }
|
|
71
|
-
|
|
72
|
-
size_t getMemoryPressure() override {
|
|
73
|
-
if (!_reportsMemoryPressure) {
|
|
74
|
-
return sizeof(GPUTexture);
|
|
75
|
-
}
|
|
76
|
-
// Calculate approximate memory usage based on texture properties
|
|
77
|
-
uint32_t width = getWidth();
|
|
78
|
-
uint32_t height = getHeight();
|
|
79
|
-
uint32_t depthOrArrayLayers = getDepthOrArrayLayers();
|
|
80
|
-
uint32_t mipLevelCount = getMipLevelCount();
|
|
81
|
-
uint32_t sampleCount = getSampleCount();
|
|
82
|
-
|
|
83
|
-
// Estimate bytes per pixel based on format
|
|
84
|
-
// This is a simplified estimate - actual values depend on the specific
|
|
85
|
-
// format
|
|
86
|
-
size_t bytesPerPixel = 4; // Default to RGBA8 format
|
|
87
|
-
wgpu::TextureFormat format = getFormat();
|
|
88
|
-
switch (format) {
|
|
89
|
-
case wgpu::TextureFormat::R8Unorm:
|
|
90
|
-
case wgpu::TextureFormat::R8Snorm:
|
|
91
|
-
case wgpu::TextureFormat::R8Uint:
|
|
92
|
-
case wgpu::TextureFormat::R8Sint:
|
|
93
|
-
case wgpu::TextureFormat::Stencil8:
|
|
94
|
-
bytesPerPixel = 1;
|
|
95
|
-
break;
|
|
96
|
-
case wgpu::TextureFormat::R16Uint:
|
|
97
|
-
case wgpu::TextureFormat::R16Sint:
|
|
98
|
-
case wgpu::TextureFormat::R16Float:
|
|
99
|
-
case wgpu::TextureFormat::RG8Unorm:
|
|
100
|
-
case wgpu::TextureFormat::RG8Snorm:
|
|
101
|
-
case wgpu::TextureFormat::RG8Uint:
|
|
102
|
-
case wgpu::TextureFormat::RG8Sint:
|
|
103
|
-
case wgpu::TextureFormat::Depth16Unorm:
|
|
104
|
-
bytesPerPixel = 2;
|
|
105
|
-
break;
|
|
106
|
-
case wgpu::TextureFormat::RGBA8Unorm:
|
|
107
|
-
case wgpu::TextureFormat::RGBA8UnormSrgb:
|
|
108
|
-
case wgpu::TextureFormat::RGBA8Snorm:
|
|
109
|
-
case wgpu::TextureFormat::RGBA8Uint:
|
|
110
|
-
case wgpu::TextureFormat::RGBA8Sint:
|
|
111
|
-
case wgpu::TextureFormat::BGRA8Unorm:
|
|
112
|
-
case wgpu::TextureFormat::BGRA8UnormSrgb:
|
|
113
|
-
case wgpu::TextureFormat::RGB10A2Unorm:
|
|
114
|
-
case wgpu::TextureFormat::R32Float:
|
|
115
|
-
case wgpu::TextureFormat::R32Uint:
|
|
116
|
-
case wgpu::TextureFormat::R32Sint:
|
|
117
|
-
case wgpu::TextureFormat::RG16Uint:
|
|
118
|
-
case wgpu::TextureFormat::RG16Sint:
|
|
119
|
-
case wgpu::TextureFormat::RG16Float:
|
|
120
|
-
case wgpu::TextureFormat::Depth24Plus:
|
|
121
|
-
case wgpu::TextureFormat::Depth24PlusStencil8:
|
|
122
|
-
case wgpu::TextureFormat::Depth32Float:
|
|
123
|
-
bytesPerPixel = 4;
|
|
124
|
-
break;
|
|
125
|
-
case wgpu::TextureFormat::RG32Float:
|
|
126
|
-
case wgpu::TextureFormat::RG32Uint:
|
|
127
|
-
case wgpu::TextureFormat::RG32Sint:
|
|
128
|
-
case wgpu::TextureFormat::RGBA16Uint:
|
|
129
|
-
case wgpu::TextureFormat::RGBA16Sint:
|
|
130
|
-
case wgpu::TextureFormat::RGBA16Float:
|
|
131
|
-
case wgpu::TextureFormat::Depth32FloatStencil8:
|
|
132
|
-
bytesPerPixel = 8;
|
|
133
|
-
break;
|
|
134
|
-
case wgpu::TextureFormat::RGBA32Float:
|
|
135
|
-
case wgpu::TextureFormat::RGBA32Uint:
|
|
136
|
-
case wgpu::TextureFormat::RGBA32Sint:
|
|
137
|
-
bytesPerPixel = 16;
|
|
138
|
-
break;
|
|
139
|
-
default:
|
|
140
|
-
bytesPerPixel = 4; // Safe default
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
// Calculate total memory for all mip levels
|
|
145
|
-
size_t totalMemory = 0;
|
|
146
|
-
for (uint32_t mip = 0; mip < mipLevelCount; ++mip) {
|
|
147
|
-
uint32_t mipWidth = std::max(1u, width >> mip);
|
|
148
|
-
uint32_t mipHeight = std::max(1u, height >> mip);
|
|
149
|
-
totalMemory += static_cast<size_t>(mipWidth) * mipHeight *
|
|
150
|
-
depthOrArrayLayers * bytesPerPixel * sampleCount;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return totalMemory;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
private:
|
|
157
|
-
wgpu::Texture _instance;
|
|
158
|
-
std::string _label;
|
|
159
|
-
bool _reportsMemoryPressure = true;
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
} // namespace rnwgpu
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <string>
|
|
4
|
-
|
|
5
|
-
#include "Unions.h"
|
|
6
|
-
|
|
7
|
-
#include "NativeObject.h"
|
|
8
|
-
|
|
9
|
-
#include "webgpu/webgpu_cpp.h"
|
|
10
|
-
|
|
11
|
-
namespace rnwgpu {
|
|
12
|
-
|
|
13
|
-
namespace jsi = facebook::jsi;
|
|
14
|
-
|
|
15
|
-
class GPUTextureView : public NativeObject<GPUTextureView> {
|
|
16
|
-
public:
|
|
17
|
-
static constexpr const char *CLASS_NAME = "GPUTextureView";
|
|
18
|
-
|
|
19
|
-
explicit GPUTextureView(wgpu::TextureView instance, std::string label)
|
|
20
|
-
: NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
|
|
21
|
-
|
|
22
|
-
public:
|
|
23
|
-
std::string getBrand() { return CLASS_NAME; }
|
|
24
|
-
|
|
25
|
-
std::string getLabel() { return _label; }
|
|
26
|
-
void setLabel(const std::string &label) {
|
|
27
|
-
_label = label;
|
|
28
|
-
_instance.SetLabel(_label.c_str());
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
32
|
-
installGetter(runtime, prototype, "__brand", &GPUTextureView::getBrand);
|
|
33
|
-
installGetterSetter(runtime, prototype, "label", &GPUTextureView::getLabel,
|
|
34
|
-
&GPUTextureView::setLabel);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
inline const wgpu::TextureView get() { return _instance; }
|
|
38
|
-
|
|
39
|
-
private:
|
|
40
|
-
wgpu::TextureView _instance;
|
|
41
|
-
std::string _label;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
} // namespace rnwgpu
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
#include <string>
|
|
5
|
-
#include <variant>
|
|
6
|
-
|
|
7
|
-
#include "JSIConverter.h"
|
|
8
|
-
#include "NativeObject.h"
|
|
9
|
-
|
|
10
|
-
#include "GPUInternalError.h"
|
|
11
|
-
#include "GPUOutOfMemoryError.h"
|
|
12
|
-
#include "GPUValidationError.h"
|
|
13
|
-
|
|
14
|
-
namespace rnwgpu {
|
|
15
|
-
|
|
16
|
-
namespace jsi = facebook::jsi;
|
|
17
|
-
|
|
18
|
-
using GPUErrorVariant = std::variant<std::shared_ptr<GPUValidationError>,
|
|
19
|
-
std::shared_ptr<GPUOutOfMemoryError>,
|
|
20
|
-
std::shared_ptr<GPUInternalError>>;
|
|
21
|
-
|
|
22
|
-
class GPUUncapturedErrorEvent : public NativeObject<GPUUncapturedErrorEvent> {
|
|
23
|
-
public:
|
|
24
|
-
static constexpr const char *CLASS_NAME = "GPUUncapturedErrorEvent";
|
|
25
|
-
|
|
26
|
-
explicit GPUUncapturedErrorEvent(GPUErrorVariant error)
|
|
27
|
-
: NativeObject(CLASS_NAME), _error(std::move(error)) {}
|
|
28
|
-
|
|
29
|
-
public:
|
|
30
|
-
std::string getBrand() { return CLASS_NAME; }
|
|
31
|
-
std::string getType() { return "uncapturederror"; }
|
|
32
|
-
|
|
33
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
34
|
-
installGetter(runtime, prototype, "__brand",
|
|
35
|
-
&GPUUncapturedErrorEvent::getBrand);
|
|
36
|
-
installGetter(runtime, prototype, "type",
|
|
37
|
-
&GPUUncapturedErrorEvent::getType);
|
|
38
|
-
|
|
39
|
-
// Custom getter for error that handles the variant conversion
|
|
40
|
-
auto errorGetter = jsi::Function::createFromHostFunction(
|
|
41
|
-
runtime, jsi::PropNameID::forUtf8(runtime, "get_error"), 0,
|
|
42
|
-
[](jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args,
|
|
43
|
-
size_t count) -> jsi::Value {
|
|
44
|
-
auto native = GPUUncapturedErrorEvent::fromValue(rt, thisVal);
|
|
45
|
-
return std::visit(
|
|
46
|
-
[&rt](auto &&err) -> jsi::Value {
|
|
47
|
-
using T = std::decay_t<decltype(err)>;
|
|
48
|
-
return JSIConverter<T>::toJSI(rt, err);
|
|
49
|
-
},
|
|
50
|
-
native->_error);
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
auto objectCtor = runtime.global().getPropertyAsObject(runtime, "Object");
|
|
54
|
-
auto defineProperty =
|
|
55
|
-
objectCtor.getPropertyAsFunction(runtime, "defineProperty");
|
|
56
|
-
|
|
57
|
-
jsi::Object descriptor(runtime);
|
|
58
|
-
descriptor.setProperty(runtime, "get", errorGetter);
|
|
59
|
-
descriptor.setProperty(runtime, "enumerable", true);
|
|
60
|
-
descriptor.setProperty(runtime, "configurable", true);
|
|
61
|
-
|
|
62
|
-
defineProperty.call(runtime, prototype,
|
|
63
|
-
jsi::String::createFromUtf8(runtime, "error"),
|
|
64
|
-
descriptor);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
private:
|
|
68
|
-
GPUErrorVariant _error;
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
} // namespace rnwgpu
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <string>
|
|
4
|
-
|
|
5
|
-
#include "NativeObject.h"
|
|
6
|
-
|
|
7
|
-
namespace rnwgpu {
|
|
8
|
-
|
|
9
|
-
namespace jsi = facebook::jsi;
|
|
10
|
-
|
|
11
|
-
class GPUValidationError : public NativeObject<GPUValidationError> {
|
|
12
|
-
public:
|
|
13
|
-
static constexpr const char *CLASS_NAME = "GPUValidationError";
|
|
14
|
-
|
|
15
|
-
explicit GPUValidationError(std::string message)
|
|
16
|
-
: NativeObject(CLASS_NAME), _message(std::move(message)) {}
|
|
17
|
-
|
|
18
|
-
public:
|
|
19
|
-
std::string getBrand() { return CLASS_NAME; }
|
|
20
|
-
std::string getMessage() { return _message; }
|
|
21
|
-
|
|
22
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
23
|
-
installGetter(runtime, prototype, "__brand", &GPUValidationError::getBrand);
|
|
24
|
-
installGetter(runtime, prototype, "message",
|
|
25
|
-
&GPUValidationError::getMessage);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
private:
|
|
29
|
-
std::string _message;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
} // namespace rnwgpu
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
|
|
5
|
-
#include "webgpu/webgpu_cpp.h"
|
|
6
|
-
|
|
7
|
-
#include "NativeObject.h"
|
|
8
|
-
#include "PlatformContext.h"
|
|
9
|
-
|
|
10
|
-
namespace rnwgpu {
|
|
11
|
-
|
|
12
|
-
namespace jsi = facebook::jsi;
|
|
13
|
-
|
|
14
|
-
class ImageBitmap : public NativeObject<ImageBitmap> {
|
|
15
|
-
public:
|
|
16
|
-
static constexpr const char *CLASS_NAME = "ImageBitmap";
|
|
17
|
-
|
|
18
|
-
explicit ImageBitmap(ImageData &imageData)
|
|
19
|
-
: NativeObject(CLASS_NAME), _imageData(imageData) {}
|
|
20
|
-
|
|
21
|
-
size_t getWidth() { return _imageData.width; }
|
|
22
|
-
|
|
23
|
-
size_t getHeight() { return _imageData.height; }
|
|
24
|
-
|
|
25
|
-
void *getData() { return _imageData.data.data(); }
|
|
26
|
-
|
|
27
|
-
size_t getSize() { return _imageData.data.size(); }
|
|
28
|
-
|
|
29
|
-
void close() {
|
|
30
|
-
_imageData.data.clear();
|
|
31
|
-
_imageData.data.shrink_to_fit();
|
|
32
|
-
_imageData.width = 0;
|
|
33
|
-
_imageData.height = 0;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
37
|
-
installGetter(runtime, prototype, "width", &ImageBitmap::getWidth);
|
|
38
|
-
installGetter(runtime, prototype, "height", &ImageBitmap::getHeight);
|
|
39
|
-
installMethod(runtime, prototype, "close", &ImageBitmap::close);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
size_t getMemoryPressure() override { return getSize(); }
|
|
43
|
-
|
|
44
|
-
private:
|
|
45
|
-
ImageData _imageData;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
} // namespace rnwgpu
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
#include <string>
|
|
5
|
-
|
|
6
|
-
#include "NativeObject.h"
|
|
7
|
-
|
|
8
|
-
#include "ArrayBuffer.h"
|
|
9
|
-
#include "Canvas.h"
|
|
10
|
-
#include "GPU.h"
|
|
11
|
-
#include "GPUCanvasContext.h"
|
|
12
|
-
#include "ImageBitmap.h"
|
|
13
|
-
#include "PlatformContext.h"
|
|
14
|
-
#include "VideoFrame.h"
|
|
15
|
-
#include "VideoPlayer.h"
|
|
16
|
-
|
|
17
|
-
#include <ReactCommon/CallInvoker.h>
|
|
18
|
-
|
|
19
|
-
#include "JSIConverter.h"
|
|
20
|
-
#include "Promise.h"
|
|
21
|
-
|
|
22
|
-
namespace rnwgpu {
|
|
23
|
-
|
|
24
|
-
namespace jsi = facebook::jsi;
|
|
25
|
-
|
|
26
|
-
struct Blob {
|
|
27
|
-
std::string blobId;
|
|
28
|
-
double size;
|
|
29
|
-
double offset;
|
|
30
|
-
std::string type;
|
|
31
|
-
std::string name;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
// JSIConverter specialization must be declared before use
|
|
35
|
-
template <> struct JSIConverter<std::shared_ptr<Blob>> {
|
|
36
|
-
static std::shared_ptr<Blob>
|
|
37
|
-
fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
|
|
38
|
-
if (!outOfBounds && arg.isObject()) {
|
|
39
|
-
auto result = std::make_unique<Blob>();
|
|
40
|
-
auto val = arg.asObject(runtime);
|
|
41
|
-
if (val.hasProperty(runtime, "_data")) {
|
|
42
|
-
auto value = val.getPropertyAsObject(runtime, "_data");
|
|
43
|
-
result->blobId = JSIConverter<std::string>::fromJSI(
|
|
44
|
-
runtime, value.getProperty(runtime, "blobId"), false);
|
|
45
|
-
result->size = JSIConverter<double>::fromJSI(
|
|
46
|
-
runtime, value.getProperty(runtime, "size"), false);
|
|
47
|
-
result->offset = JSIConverter<double>::fromJSI(
|
|
48
|
-
runtime, value.getProperty(runtime, "offset"), false);
|
|
49
|
-
}
|
|
50
|
-
return result;
|
|
51
|
-
} else {
|
|
52
|
-
throw std::runtime_error("Invalid Blob::fromJSI()");
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
static jsi::Value toJSI(jsi::Runtime &runtime, std::shared_ptr<Blob> arg) {
|
|
56
|
-
throw std::runtime_error("Invalid Blob::toJSI()");
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
class RNWebGPU : public NativeObject<RNWebGPU> {
|
|
61
|
-
public:
|
|
62
|
-
static constexpr const char *CLASS_NAME = "RNWebGPU";
|
|
63
|
-
|
|
64
|
-
explicit RNWebGPU(std::shared_ptr<GPU> gpu,
|
|
65
|
-
std::shared_ptr<PlatformContext> platformContext,
|
|
66
|
-
std::shared_ptr<facebook::react::CallInvoker> callInvoker)
|
|
67
|
-
: NativeObject(CLASS_NAME), _gpu(gpu), _platformContext(platformContext),
|
|
68
|
-
_callInvoker(callInvoker) {}
|
|
69
|
-
|
|
70
|
-
std::shared_ptr<GPU> getGPU() { return _gpu; }
|
|
71
|
-
|
|
72
|
-
bool getFabric() { return true; }
|
|
73
|
-
|
|
74
|
-
std::shared_ptr<GPUCanvasContext>
|
|
75
|
-
MakeWebGPUCanvasContext(int contextId, float width, float height) {
|
|
76
|
-
auto ctx =
|
|
77
|
-
std::make_shared<GPUCanvasContext>(_gpu, contextId, width, height);
|
|
78
|
-
return ctx;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
jsi::Value createImageBitmap(jsi::Runtime &runtime,
|
|
82
|
-
const jsi::Value & /*thisVal*/,
|
|
83
|
-
const jsi::Value *args, size_t count) {
|
|
84
|
-
if (count < 1) {
|
|
85
|
-
throw jsi::JSError(runtime,
|
|
86
|
-
"createImageBitmap requires a Blob or ArrayBuffer "
|
|
87
|
-
"argument");
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
auto platformContext = _platformContext;
|
|
91
|
-
auto callInvoker = _callInvoker;
|
|
92
|
-
|
|
93
|
-
// Check if the argument is an ArrayBuffer or ArrayBufferView
|
|
94
|
-
// (TypedArray / DataView). Only a real buffer source is run through the
|
|
95
|
-
// ArrayBuffer converter, which validates byteOffset/byteLength against the
|
|
96
|
-
// backing buffer and throws on an out-of-bounds (or spoofed) view. Anything
|
|
97
|
-
// else (e.g. a Blob) is left to the fall-through path below, so its errors
|
|
98
|
-
// are not misreported as bounds errors here.
|
|
99
|
-
if (args[0].isObject()) {
|
|
100
|
-
auto obj = args[0].getObject(runtime);
|
|
101
|
-
|
|
102
|
-
bool isBufferSource = obj.isArrayBuffer(runtime);
|
|
103
|
-
if (!isBufferSource && obj.hasProperty(runtime, "buffer")) {
|
|
104
|
-
auto bufferProp = obj.getProperty(runtime, "buffer");
|
|
105
|
-
isBufferSource = bufferProp.isObject() &&
|
|
106
|
-
bufferProp.getObject(runtime).isArrayBuffer(runtime);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
if (isBufferSource) {
|
|
110
|
-
// Bounds violations propagate out of fromJSI so the call rejects
|
|
111
|
-
// rather than reading out of bounds below.
|
|
112
|
-
auto buffer = JSIConverter<std::shared_ptr<ArrayBuffer>>::fromJSI(
|
|
113
|
-
runtime, args[0], false);
|
|
114
|
-
std::span<const uint8_t> data{buffer->data(), buffer->size()};
|
|
115
|
-
|
|
116
|
-
// Copy bytes on the JS thread: the ArrayBuffer pointer is into
|
|
117
|
-
// JS-owned memory that can be GC'd
|
|
118
|
-
std::vector<uint8_t> dataCopy(data.begin(), data.end());
|
|
119
|
-
|
|
120
|
-
return Promise::createPromise(
|
|
121
|
-
runtime,
|
|
122
|
-
[platformContext, callInvoker, dataCopy = std::move(dataCopy)](
|
|
123
|
-
jsi::Runtime & /*runtime*/,
|
|
124
|
-
std::shared_ptr<Promise> promise) mutable {
|
|
125
|
-
platformContext->createImageBitmapFromDataAsync(
|
|
126
|
-
dataCopy,
|
|
127
|
-
[callInvoker, promise](ImageData imageData) {
|
|
128
|
-
auto imageBitmap = std::make_shared<ImageBitmap>(imageData);
|
|
129
|
-
callInvoker->invokeAsync([promise, imageBitmap]() {
|
|
130
|
-
promise->resolve(
|
|
131
|
-
JSIConverter<std::shared_ptr<ImageBitmap>>::toJSI(
|
|
132
|
-
promise->runtime, imageBitmap));
|
|
133
|
-
});
|
|
134
|
-
},
|
|
135
|
-
[callInvoker, promise](std::string error) {
|
|
136
|
-
callInvoker->invokeAsync(
|
|
137
|
-
[promise, error]() { promise->reject(error); });
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// Fall through to existing Blob path
|
|
144
|
-
auto blob =
|
|
145
|
-
JSIConverter<std::shared_ptr<Blob>>::fromJSI(runtime, args[0], false);
|
|
146
|
-
std::string blobId = blob->blobId;
|
|
147
|
-
double offset = blob->offset;
|
|
148
|
-
double size = blob->size;
|
|
149
|
-
|
|
150
|
-
return Promise::createPromise(
|
|
151
|
-
runtime,
|
|
152
|
-
[platformContext, callInvoker, blobId, offset,
|
|
153
|
-
size](jsi::Runtime & /*runtime*/, std::shared_ptr<Promise> promise) {
|
|
154
|
-
platformContext->createImageBitmapAsync(
|
|
155
|
-
blobId, offset, size,
|
|
156
|
-
[callInvoker, promise](ImageData imageData) {
|
|
157
|
-
auto imageBitmap = std::make_shared<ImageBitmap>(imageData);
|
|
158
|
-
callInvoker->invokeAsync([promise, imageBitmap]() {
|
|
159
|
-
promise->resolve(
|
|
160
|
-
JSIConverter<std::shared_ptr<ImageBitmap>>::toJSI(
|
|
161
|
-
promise->runtime, imageBitmap));
|
|
162
|
-
});
|
|
163
|
-
},
|
|
164
|
-
[callInvoker, promise](std::string error) {
|
|
165
|
-
callInvoker->invokeAsync(
|
|
166
|
-
[promise, error]() { promise->reject(error); });
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
std::shared_ptr<VideoFrame> loadVideoFrame(std::string path) {
|
|
172
|
-
auto frame = _platformContext->loadVideoFrame(path);
|
|
173
|
-
return std::make_shared<VideoFrame>(std::move(frame));
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
std::shared_ptr<VideoFrame> createTestVideoFrame(double width, double height) {
|
|
177
|
-
auto frame = _platformContext->createTestVideoFrame(
|
|
178
|
-
static_cast<uint32_t>(width), static_cast<uint32_t>(height));
|
|
179
|
-
return std::make_shared<VideoFrame>(std::move(frame));
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
// Wrap a CVPixelBufferRef / AHardwareBuffer* pointer (typed as void* via
|
|
183
|
-
// BigInt on the JS side) into one of our VideoFrames. The native side
|
|
184
|
-
// CFRetains / acquires so the caller can release immediately.
|
|
185
|
-
std::shared_ptr<VideoFrame> createVideoFrameFromNativeBuffer(void *pointer) {
|
|
186
|
-
auto handle = _platformContext->wrapNativeBuffer(pointer);
|
|
187
|
-
return std::make_shared<VideoFrame>(std::move(handle));
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
std::shared_ptr<VideoPlayer>
|
|
191
|
-
createVideoPlayer(std::string path, std::optional<std::string> pixelFormat) {
|
|
192
|
-
auto format = (pixelFormat && pixelFormat.value() == "nv12")
|
|
193
|
-
? VideoPixelFormat::NV12
|
|
194
|
-
: VideoPixelFormat::BGRA8;
|
|
195
|
-
auto impl = _platformContext->createVideoPlayer(path, format);
|
|
196
|
-
return std::make_shared<VideoPlayer>(std::move(impl));
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
std::string writeTestVideoFile() {
|
|
200
|
-
return _platformContext->writeTestVideoFile();
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
std::shared_ptr<Canvas> getNativeSurface(int contextId) {
|
|
204
|
-
auto ®istry = rnwgpu::SurfaceRegistry::getInstance();
|
|
205
|
-
auto info = registry.getSurfaceInfo(contextId);
|
|
206
|
-
if (info == nullptr) {
|
|
207
|
-
return std::make_shared<Canvas>(nullptr, 0, 0);
|
|
208
|
-
}
|
|
209
|
-
auto nativeInfo = info->getNativeInfo();
|
|
210
|
-
return std::make_shared<Canvas>(nativeInfo.nativeSurface, nativeInfo.width,
|
|
211
|
-
nativeInfo.height);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
215
|
-
installGetter(runtime, prototype, "fabric", &RNWebGPU::getFabric);
|
|
216
|
-
installGetter(runtime, prototype, "gpu", &RNWebGPU::getGPU);
|
|
217
|
-
installMethod(runtime, prototype, "createImageBitmap",
|
|
218
|
-
&RNWebGPU::createImageBitmap);
|
|
219
|
-
installMethod(runtime, prototype, "getNativeSurface",
|
|
220
|
-
&RNWebGPU::getNativeSurface);
|
|
221
|
-
installMethod(runtime, prototype, "MakeWebGPUCanvasContext",
|
|
222
|
-
&RNWebGPU::MakeWebGPUCanvasContext);
|
|
223
|
-
installMethod(runtime, prototype, "loadVideoFrame",
|
|
224
|
-
&RNWebGPU::loadVideoFrame);
|
|
225
|
-
installMethod(runtime, prototype, "createTestVideoFrame",
|
|
226
|
-
&RNWebGPU::createTestVideoFrame);
|
|
227
|
-
installMethod(runtime, prototype, "createVideoFrameFromNativeBuffer",
|
|
228
|
-
&RNWebGPU::createVideoFrameFromNativeBuffer);
|
|
229
|
-
installMethod(runtime, prototype, "createVideoPlayer",
|
|
230
|
-
&RNWebGPU::createVideoPlayer);
|
|
231
|
-
installMethod(runtime, prototype, "writeTestVideoFile",
|
|
232
|
-
&RNWebGPU::writeTestVideoFile);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
private:
|
|
236
|
-
std::shared_ptr<GPU> _gpu;
|
|
237
|
-
std::shared_ptr<PlatformContext> _platformContext;
|
|
238
|
-
std::shared_ptr<facebook::react::CallInvoker> _callInvoker;
|
|
239
|
-
};
|
|
240
|
-
|
|
241
|
-
} // namespace rnwgpu
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <string>
|
|
4
|
-
#include <unordered_set>
|
|
5
|
-
#include <vector>
|
|
6
|
-
|
|
7
|
-
#include "webgpu/webgpu_cpp.h"
|
|
8
|
-
|
|
9
|
-
namespace rnwgpu {
|
|
10
|
-
|
|
11
|
-
// Umbrella feature name owned by react-native-wgpu. Backed by a
|
|
12
|
-
// platform-specific pair of Dawn features. The prefix is intentional: this
|
|
13
|
-
// string is not part of the WebGPU spec, it is our API surface for the
|
|
14
|
-
// "import a native surface as a sampleable texture" capability.
|
|
15
|
-
inline constexpr const char *kRnNativeTextureFeature =
|
|
16
|
-
"rnwebgpu/native-texture";
|
|
17
|
-
|
|
18
|
-
// Dawn features that back the umbrella on the current platform. Empty on
|
|
19
|
-
// platforms where the capability is not available, in which case the umbrella
|
|
20
|
-
// behaves as a no-op (it won't appear in adapter.features and asking for it
|
|
21
|
-
// in requiredFeatures expands to nothing).
|
|
22
|
-
inline std::vector<wgpu::FeatureName> rnNativeTextureBackingFeatures() {
|
|
23
|
-
#if defined(__APPLE__)
|
|
24
|
-
return {wgpu::FeatureName::SharedTextureMemoryIOSurface,
|
|
25
|
-
wgpu::FeatureName::SharedFenceMTLSharedEvent};
|
|
26
|
-
#elif defined(__ANDROID__)
|
|
27
|
-
return {wgpu::FeatureName::SharedTextureMemoryAHardwareBuffer,
|
|
28
|
-
wgpu::FeatureName::SharedFenceSyncFD};
|
|
29
|
-
#else
|
|
30
|
-
return {};
|
|
31
|
-
#endif
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// If every Dawn feature backing the umbrella is in `enabled`, add the
|
|
35
|
-
// umbrella name to `out`. Used by adapter.features / device.features so JS
|
|
36
|
-
// callers can see (and call .has on) the same name they pass in.
|
|
37
|
-
inline void
|
|
38
|
-
maybeSynthesizeRnNativeTextureFeature(
|
|
39
|
-
const std::unordered_set<wgpu::FeatureName> &enabled,
|
|
40
|
-
std::unordered_set<std::string> &out) {
|
|
41
|
-
auto backing = rnNativeTextureBackingFeatures();
|
|
42
|
-
if (backing.empty()) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
for (auto f : backing) {
|
|
46
|
-
if (enabled.find(f) == enabled.end()) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
out.insert(kRnNativeTextureFeature);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
} // namespace rnwgpu
|