react-native-wgpu 0.5.11 → 0.5.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -302
- package/lib/commonjs/index.js +7 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +4 -4
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/{src → webgpu/src}/Canvas.d.ts +0 -10
- package/lib/typescript/webgpu/src/Canvas.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/NativeWebGPUModule.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/Offscreen.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/WebGPUViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/external/ModuleProxy.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/external/index.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/external/reanimated/ReanimatedProxy.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/external/reanimated/index.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/hooks.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/index.d.ts +37 -0
- package/lib/typescript/webgpu/src/index.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/main/index.d.ts.map +1 -0
- package/lib/typescript/webgpu/src/types.d.ts +50 -0
- package/lib/typescript/webgpu/src/types.d.ts.map +1 -0
- package/lib/typescript/{eslint.config.d.mts.map → webgpu-shim/eslint.config.d.mts.map} +1 -1
- package/lib/typescript/{lib → webgpu-shim/lib}/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/webgpu-shim/lib/module/index.d.ts +2 -0
- package/lib/typescript/{lib → webgpu-shim/lib}/module/index.d.ts.map +1 -1
- package/lib/typescript/webgpu-shim/src/index.d.ts +2 -0
- package/lib/typescript/webgpu-shim/src/index.d.ts.map +1 -0
- package/package.json +13 -82
- package/src/index.ts +9 -0
- package/LICENSE +0 -20
- package/android/CMakeLists.txt +0 -108
- package/android/build.gradle +0 -138
- package/android/cpp/AndroidPlatformContext.h +0 -207
- package/android/cpp/cpp-adapter.cpp +0 -71
- package/android/src/main/AndroidManifest.xml +0 -3
- package/android/src/main/java/com/webgpu/WebGPUAHBView.java +0 -298
- package/android/src/main/java/com/webgpu/WebGPUAPI.java +0 -20
- package/android/src/main/java/com/webgpu/WebGPUBaseView.java +0 -61
- package/android/src/main/java/com/webgpu/WebGPUModule.java +0 -50
- package/android/src/main/java/com/webgpu/WebGPUSurfaceView.java +0 -41
- package/android/src/main/java/com/webgpu/WebGPUSurfaceViewWithSC.java +0 -79
- package/android/src/main/java/com/webgpu/WebGPUTextureView.java +0 -46
- package/android/src/main/java/com/webgpu/WebGPUView.java +0 -108
- package/android/src/main/java/com/webgpu/WebGPUViewManager.java +0 -38
- package/android/src/main/java/com/webgpu/WebGPUViewPackage.java +0 -50
- package/android/src/newarch/com/webgpu/WebGPUViewManagerSpec.java +0 -24
- package/apple/ApplePlatformContext.h +0 -31
- package/apple/ApplePlatformContext.mm +0 -157
- package/apple/MetalView.h +0 -13
- package/apple/MetalView.mm +0 -50
- package/apple/RNWGUIKit.h +0 -16
- package/apple/WebGPUModule.h +0 -13
- package/apple/WebGPUModule.mm +0 -89
- package/apple/WebGPUView.h +0 -12
- package/apple/WebGPUView.mm +0 -66
- package/cpp/WGPULogger.h +0 -100
- package/cpp/dawn_logging.cpp +0 -119
- package/cpp/jsi/EnumMapper.h +0 -45
- package/cpp/jsi/JSIConverter.h +0 -473
- package/cpp/jsi/NativeObject.h +0 -607
- package/cpp/jsi/Promise.cpp +0 -44
- package/cpp/jsi/Promise.h +0 -35
- package/cpp/jsi/RuntimeAwareCache.cpp +0 -7
- package/cpp/jsi/RuntimeAwareCache.h +0 -100
- package/cpp/jsi/RuntimeLifecycleMonitor.cpp +0 -72
- package/cpp/jsi/RuntimeLifecycleMonitor.h +0 -32
- package/cpp/rnwgpu/ArrayBuffer.h +0 -73
- package/cpp/rnwgpu/PlatformContext.h +0 -46
- package/cpp/rnwgpu/RNWebGPUManager.cpp +0 -225
- package/cpp/rnwgpu/RNWebGPUManager.h +0 -46
- package/cpp/rnwgpu/SurfaceRegistry.h +0 -230
- package/cpp/rnwgpu/api/Canvas.h +0 -57
- package/cpp/rnwgpu/api/Convertors.h +0 -761
- package/cpp/rnwgpu/api/External.h +0 -12
- package/cpp/rnwgpu/api/GPU.cpp +0 -127
- package/cpp/rnwgpu/api/GPU.h +0 -58
- package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -191
- package/cpp/rnwgpu/api/GPUAdapter.h +0 -59
- package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
- package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
- package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
- package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
- package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -97
- package/cpp/rnwgpu/api/GPUBuffer.h +0 -87
- package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -67
- package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -66
- package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
- package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
- package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
- package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
- package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
- package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
- package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
- package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
- package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
- package/cpp/rnwgpu/api/GPUDevice.cpp +0 -492
- package/cpp/rnwgpu/api/GPUDevice.h +0 -259
- package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
- package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
- package/cpp/rnwgpu/api/GPUError.h +0 -35
- package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
- package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -45
- package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
- package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
- package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
- package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
- package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
- package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
- package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
- package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
- package/cpp/rnwgpu/api/GPUQueue.cpp +0 -169
- package/cpp/rnwgpu/api/GPUQueue.h +0 -81
- package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
- package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
- package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
- package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
- package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
- package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
- package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
- package/cpp/rnwgpu/api/GPUSampler.h +0 -44
- package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -51
- package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
- package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
- package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
- package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
- package/cpp/rnwgpu/api/GPUTexture.h +0 -162
- package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
- package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -71
- package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
- package/cpp/rnwgpu/api/ImageBitmap.h +0 -40
- package/cpp/rnwgpu/api/RNWebGPU.h +0 -199
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -65
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -57
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -98
- package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -58
- package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -53
- package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -57
- package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -57
- package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -60
- package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
- package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
- package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -67
- package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -59
- package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
- package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -46
- package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -46
- package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -57
- package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -59
- package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -68
- package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -104
- package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -100
- package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -39
- package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -80
- package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -74
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -63
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -66
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -82
- package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -55
- package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
- package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -55
- package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -58
- package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -70
- package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -62
- package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -56
- package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -44
- package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -46
- package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -81
- package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -82
- package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -102
- package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -93
- package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -59
- package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -104
- package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -52
- package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -46
- package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -111
- package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -61
- package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -63
- package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
- package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -65
- package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -60
- package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -60
- package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -92
- package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
- package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -92
- package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -65
- package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -54
- package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -63
- package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -74
- package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
- package/cpp/rnwgpu/async/AsyncDispatcher.h +0 -28
- package/cpp/rnwgpu/async/AsyncRunner.cpp +0 -215
- package/cpp/rnwgpu/async/AsyncRunner.h +0 -53
- package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -181
- package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -55
- package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.cpp +0 -23
- package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.h +0 -22
- package/cpp/webgpu/webgpu.h +0 -4918
- package/cpp/webgpu/webgpu_cpp.h +0 -10294
- package/cpp/webgpu/webgpu_cpp_chained_struct.h +0 -57
- package/cpp/webgpu/webgpu_cpp_print.h +0 -2755
- package/cpp/webgpu/webgpu_enum_class_bitmasks.h +0 -161
- package/lib/commonjs/Canvas.js +0 -55
- package/lib/commonjs/Canvas.js.map +0 -1
- package/lib/commonjs/NativeWebGPUModule.js +0 -10
- package/lib/commonjs/NativeWebGPUModule.js.map +0 -1
- package/lib/commonjs/Offscreen.js +0 -103
- package/lib/commonjs/Offscreen.js.map +0 -1
- package/lib/commonjs/WebGPUViewNativeComponent.js +0 -10
- package/lib/commonjs/WebGPUViewNativeComponent.js.map +0 -1
- package/lib/commonjs/WebGPUViewNativeComponent.web.js +0 -103
- package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +0 -1
- package/lib/commonjs/WebPolyfillGPUModule.js +0 -40
- package/lib/commonjs/WebPolyfillGPUModule.js.map +0 -1
- package/lib/commonjs/external/ModuleProxy.js +0 -36
- package/lib/commonjs/external/ModuleProxy.js.map +0 -1
- package/lib/commonjs/external/index.js +0 -17
- package/lib/commonjs/external/index.js.map +0 -1
- package/lib/commonjs/external/reanimated/ReanimatedProxy.js +0 -18
- package/lib/commonjs/external/reanimated/ReanimatedProxy.js.map +0 -1
- package/lib/commonjs/external/reanimated/index.js +0 -21
- package/lib/commonjs/external/reanimated/index.js.map +0 -1
- package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js +0 -49
- package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
- package/lib/commonjs/hooks.js +0 -83
- package/lib/commonjs/hooks.js.map +0 -1
- package/lib/commonjs/main/index.js +0 -91
- package/lib/commonjs/main/index.js.map +0 -1
- package/lib/commonjs/main/index.web.js +0 -51
- package/lib/commonjs/main/index.web.js.map +0 -1
- package/lib/commonjs/types.js +0 -2
- package/lib/commonjs/types.js.map +0 -1
- package/lib/commonjs/utils.js +0 -11
- package/lib/commonjs/utils.js.map +0 -1
- package/lib/module/Canvas.js +0 -46
- package/lib/module/Canvas.js.map +0 -1
- package/lib/module/NativeWebGPUModule.js +0 -4
- package/lib/module/NativeWebGPUModule.js.map +0 -1
- package/lib/module/Offscreen.js +0 -96
- package/lib/module/Offscreen.js.map +0 -1
- package/lib/module/WebGPUViewNativeComponent.js +0 -4
- package/lib/module/WebGPUViewNativeComponent.js.map +0 -1
- package/lib/module/WebGPUViewNativeComponent.web.js +0 -96
- package/lib/module/WebGPUViewNativeComponent.web.js.map +0 -1
- package/lib/module/WebPolyfillGPUModule.js +0 -38
- package/lib/module/WebPolyfillGPUModule.js.map +0 -1
- package/lib/module/external/ModuleProxy.js +0 -28
- package/lib/module/external/ModuleProxy.js.map +0 -1
- package/lib/module/external/index.js +0 -2
- package/lib/module/external/index.js.map +0 -1
- package/lib/module/external/reanimated/ReanimatedProxy.js +0 -12
- package/lib/module/external/reanimated/ReanimatedProxy.js.map +0 -1
- package/lib/module/external/reanimated/index.js +0 -3
- package/lib/module/external/reanimated/index.js.map +0 -1
- package/lib/module/external/reanimated/registerWebGPUForReanimated.js +0 -42
- package/lib/module/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
- package/lib/module/hooks.js +0 -70
- package/lib/module/hooks.js.map +0 -1
- package/lib/module/main/index.js +0 -33
- package/lib/module/main/index.js.map +0 -1
- package/lib/module/main/index.web.js +0 -8
- package/lib/module/main/index.web.js.map +0 -1
- package/lib/module/types.js +0 -2
- package/lib/module/types.js.map +0 -1
- package/lib/module/utils.js +0 -5
- package/lib/module/utils.js.map +0 -1
- package/lib/typescript/babel.config.d.ts +0 -3
- package/lib/typescript/babel.config.d.ts.map +0 -1
- package/lib/typescript/jest.config.d.ts +0 -9
- package/lib/typescript/jest.config.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/Canvas.d.ts +0 -7
- package/lib/typescript/lib/commonjs/Canvas.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts +0 -5
- package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/Offscreen.d.ts +0 -26
- package/lib/typescript/lib/commonjs/Offscreen.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts +0 -5
- package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts +0 -4
- package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts +0 -2
- package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts +0 -12
- package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/external/index.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts +0 -6
- package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts +0 -4
- package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts +0 -9
- package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/hooks.d.ts +0 -18
- package/lib/typescript/lib/commonjs/hooks.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/index.d.ts +0 -2
- package/lib/typescript/lib/commonjs/main/index.d.ts +0 -3
- package/lib/typescript/lib/commonjs/main/index.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/main/index.web.d.ts +0 -2
- package/lib/typescript/lib/commonjs/main/index.web.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/types.d.ts +0 -1
- package/lib/typescript/lib/commonjs/types.d.ts.map +0 -1
- package/lib/typescript/lib/commonjs/utils.d.ts +0 -3
- package/lib/typescript/lib/commonjs/utils.d.ts.map +0 -1
- package/lib/typescript/lib/module/Canvas.d.ts +0 -8
- package/lib/typescript/lib/module/Canvas.d.ts.map +0 -1
- package/lib/typescript/lib/module/NativeWebGPUModule.d.ts +0 -3
- package/lib/typescript/lib/module/NativeWebGPUModule.d.ts.map +0 -1
- package/lib/typescript/lib/module/Offscreen.d.ts +0 -25
- package/lib/typescript/lib/module/Offscreen.d.ts.map +0 -1
- package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts +0 -3
- package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts.map +0 -1
- package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts +0 -3
- package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +0 -1
- package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts +0 -2
- package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts.map +0 -1
- package/lib/typescript/lib/module/external/ModuleProxy.d.ts +0 -7
- package/lib/typescript/lib/module/external/ModuleProxy.d.ts.map +0 -1
- package/lib/typescript/lib/module/external/index.d.ts.map +0 -1
- package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts +0 -5
- package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
- package/lib/typescript/lib/module/external/reanimated/index.d.ts.map +0 -1
- package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts +0 -2
- package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
- package/lib/typescript/lib/module/hooks.d.ts +0 -18
- package/lib/typescript/lib/module/hooks.d.ts.map +0 -1
- package/lib/typescript/lib/module/index.d.ts +0 -2
- package/lib/typescript/lib/module/main/index.d.ts.map +0 -1
- package/lib/typescript/lib/module/main/index.web.d.ts +0 -5
- package/lib/typescript/lib/module/main/index.web.d.ts.map +0 -1
- package/lib/typescript/lib/module/types.d.ts +0 -1
- package/lib/typescript/lib/module/types.d.ts.map +0 -1
- package/lib/typescript/lib/module/utils.d.ts +0 -2
- package/lib/typescript/lib/module/utils.d.ts.map +0 -1
- package/lib/typescript/src/Canvas.d.ts.map +0 -1
- package/lib/typescript/src/NativeWebGPUModule.d.ts.map +0 -1
- package/lib/typescript/src/Offscreen.d.ts.map +0 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +0 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +0 -9
- package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +0 -1
- package/lib/typescript/src/WebPolyfillGPUModule.d.ts +0 -2
- package/lib/typescript/src/WebPolyfillGPUModule.d.ts.map +0 -1
- package/lib/typescript/src/external/ModuleProxy.d.ts.map +0 -1
- package/lib/typescript/src/external/index.d.ts +0 -2
- package/lib/typescript/src/external/index.d.ts.map +0 -1
- package/lib/typescript/src/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
- package/lib/typescript/src/external/reanimated/index.d.ts +0 -3
- package/lib/typescript/src/external/reanimated/index.d.ts.map +0 -1
- package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
- package/lib/typescript/src/hooks.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts +0 -18
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/lib/typescript/src/main/index.d.ts +0 -6
- package/lib/typescript/src/main/index.d.ts.map +0 -1
- package/lib/typescript/src/main/index.web.d.ts +0 -6
- package/lib/typescript/src/main/index.web.d.ts.map +0 -1
- package/lib/typescript/src/types.d.ts +0 -19
- package/lib/typescript/src/types.d.ts.map +0 -1
- package/lib/typescript/src/utils.d.ts +0 -2
- package/lib/typescript/src/utils.d.ts.map +0 -1
- package/libs/android/arm64-v8a/libwebgpu_dawn.so +0 -0
- package/libs/android/armeabi-v7a/libwebgpu_dawn.so +0 -0
- package/libs/android/x86/libwebgpu_dawn.so +0 -0
- package/libs/android/x86_64/libwebgpu_dawn.so +0 -0
- package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +0 -59
- package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
- package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
- package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
- package/react-native-wgpu.podspec +0 -47
- package/src/Canvas.tsx +0 -91
- package/src/NativeWebGPUModule.ts +0 -9
- package/src/Offscreen.ts +0 -113
- package/src/WebGPUViewNativeComponent.ts +0 -11
- package/src/WebGPUViewNativeComponent.web.ts +0 -113
- package/src/WebPolyfillGPUModule.ts +0 -53
- package/src/external/ModuleProxy.ts +0 -30
- package/src/external/index.ts +0 -1
- package/src/external/reanimated/ReanimatedProxy.ts +0 -19
- package/src/external/reanimated/index.ts +0 -2
- package/src/external/reanimated/registerWebGPUForReanimated.ts +0 -43
- package/src/hooks.tsx +0 -93
- package/src/index.tsx +0 -31
- package/src/main/index.tsx +0 -40
- package/src/main/index.web.tsx +0 -8
- package/src/types.ts +0 -20
- package/src/utils.ts +0 -4
- /package/lib/typescript/{src → webgpu/src}/NativeWebGPUModule.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/Offscreen.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/WebGPUViewNativeComponent.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/external/ModuleProxy.d.ts +0 -0
- /package/lib/typescript/{lib/module → webgpu/src}/external/index.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/external/reanimated/ReanimatedProxy.d.ts +0 -0
- /package/lib/typescript/{lib/module → webgpu/src}/external/reanimated/index.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/external/reanimated/registerWebGPUForReanimated.d.ts +0 -0
- /package/lib/typescript/{src → webgpu/src}/hooks.d.ts +0 -0
- /package/lib/typescript/{lib/module → webgpu/src}/main/index.d.ts +0 -0
- /package/lib/typescript/{eslint.config.d.mts → webgpu-shim/eslint.config.d.mts} +0 -0
- /package/lib/typescript/{lib/commonjs/external → webgpu-shim/lib/commonjs}/index.d.ts +0 -0
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
package com.webgpu;
|
|
2
|
-
|
|
3
|
-
import androidx.annotation.NonNull;
|
|
4
|
-
import androidx.annotation.Nullable;
|
|
5
|
-
|
|
6
|
-
import com.facebook.react.module.annotations.ReactModule;
|
|
7
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
8
|
-
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
9
|
-
|
|
10
|
-
@ReactModule(name = WebGPUViewManager.NAME)
|
|
11
|
-
public class WebGPUViewManager extends WebGPUViewManagerSpec<WebGPUView> {
|
|
12
|
-
|
|
13
|
-
public static final String NAME = "WebGPUView";
|
|
14
|
-
|
|
15
|
-
@NonNull
|
|
16
|
-
@Override
|
|
17
|
-
public String getName() {
|
|
18
|
-
return NAME;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@NonNull
|
|
22
|
-
@Override
|
|
23
|
-
public WebGPUView createViewInstance(@NonNull ThemedReactContext context) {
|
|
24
|
-
return new WebGPUView(context);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@Override
|
|
28
|
-
@ReactProp(name = "transparent")
|
|
29
|
-
public void setTransparent(WebGPUView view, boolean value) {
|
|
30
|
-
view.setTransparent(value);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@Override
|
|
34
|
-
@ReactProp(name = "contextId")
|
|
35
|
-
public void setContextId(WebGPUView view, int value) {
|
|
36
|
-
view.setContextId(value);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
package com.webgpu;
|
|
3
|
-
|
|
4
|
-
import com.facebook.react.TurboReactPackage;
|
|
5
|
-
import com.facebook.react.bridge.NativeModule;
|
|
6
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
7
|
-
import com.facebook.react.module.annotations.ReactModule;
|
|
8
|
-
import com.facebook.react.module.model.ReactModuleInfo;
|
|
9
|
-
import com.facebook.react.module.model.ReactModuleInfoProvider;
|
|
10
|
-
import com.facebook.react.uimanager.ViewManager;
|
|
11
|
-
|
|
12
|
-
import java.util.Collections;
|
|
13
|
-
import java.util.HashMap;
|
|
14
|
-
import java.util.List;
|
|
15
|
-
import java.util.Map;
|
|
16
|
-
|
|
17
|
-
public class WebGPUViewPackage extends TurboReactPackage {
|
|
18
|
-
@Override
|
|
19
|
-
public NativeModule getModule(String name, ReactApplicationContext reactContext) {
|
|
20
|
-
if (name.equals(WebGPUModule.NAME)) {
|
|
21
|
-
return new WebGPUModule(reactContext);
|
|
22
|
-
}
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Override
|
|
27
|
-
public ReactModuleInfoProvider getReactModuleInfoProvider() {
|
|
28
|
-
return () -> {
|
|
29
|
-
Map<String, ReactModuleInfo> map = new HashMap<>();
|
|
30
|
-
map.put(
|
|
31
|
-
WebGPUModule.NAME,
|
|
32
|
-
new ReactModuleInfo(
|
|
33
|
-
WebGPUModule.NAME,
|
|
34
|
-
WebGPUModule.class.getName(),
|
|
35
|
-
false,
|
|
36
|
-
false,
|
|
37
|
-
false,
|
|
38
|
-
false,
|
|
39
|
-
true // isTurboModule
|
|
40
|
-
)
|
|
41
|
-
);
|
|
42
|
-
return map;
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
@Override
|
|
47
|
-
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
|
48
|
-
return Collections.singletonList(new WebGPUViewManager());
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
package com.webgpu;
|
|
2
|
-
|
|
3
|
-
import android.view.View;
|
|
4
|
-
|
|
5
|
-
import androidx.annotation.Nullable;
|
|
6
|
-
|
|
7
|
-
import com.facebook.react.uimanager.SimpleViewManager;
|
|
8
|
-
import com.facebook.react.uimanager.ViewManagerDelegate;
|
|
9
|
-
import com.facebook.react.viewmanagers.WebGPUViewManagerDelegate;
|
|
10
|
-
import com.facebook.react.viewmanagers.WebGPUViewManagerInterface;
|
|
11
|
-
|
|
12
|
-
public abstract class WebGPUViewManagerSpec<T extends View> extends SimpleViewManager<T> implements WebGPUViewManagerInterface<T> {
|
|
13
|
-
private final ViewManagerDelegate<T> mDelegate;
|
|
14
|
-
|
|
15
|
-
public WebGPUViewManagerSpec() {
|
|
16
|
-
mDelegate = new WebGPUViewManagerDelegate(this);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@Nullable
|
|
20
|
-
@Override
|
|
21
|
-
protected ViewManagerDelegate<T> getDelegate() {
|
|
22
|
-
return mDelegate;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include "PlatformContext.h"
|
|
4
|
-
#include <string>
|
|
5
|
-
|
|
6
|
-
namespace rnwgpu {
|
|
7
|
-
|
|
8
|
-
class ApplePlatformContext : public PlatformContext {
|
|
9
|
-
public:
|
|
10
|
-
ApplePlatformContext();
|
|
11
|
-
~ApplePlatformContext() = default;
|
|
12
|
-
|
|
13
|
-
wgpu::Surface makeSurface(wgpu::Instance instance, void *surface, int width,
|
|
14
|
-
int height) override;
|
|
15
|
-
|
|
16
|
-
ImageData createImageBitmap(std::string blobId, double offset,
|
|
17
|
-
double size) override;
|
|
18
|
-
|
|
19
|
-
void
|
|
20
|
-
createImageBitmapAsync(std::string blobId, double offset, double size,
|
|
21
|
-
std::function<void(ImageData)> onSuccess,
|
|
22
|
-
std::function<void(std::string)> onError) override;
|
|
23
|
-
|
|
24
|
-
ImageData createImageBitmapFromData(std::span<const uint8_t> data) override;
|
|
25
|
-
|
|
26
|
-
void createImageBitmapFromDataAsync(
|
|
27
|
-
std::span<const uint8_t> data, std::function<void(ImageData)> onSuccess,
|
|
28
|
-
std::function<void(std::string)> onError) override;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
} // namespace rnwgpu
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
#include "ApplePlatformContext.h"
|
|
2
|
-
|
|
3
|
-
#include <TargetConditionals.h>
|
|
4
|
-
|
|
5
|
-
#import <React/RCTBlobManager.h>
|
|
6
|
-
#import <React/RCTBridge+Private.h>
|
|
7
|
-
#import <ReactCommon/RCTTurboModule.h>
|
|
8
|
-
|
|
9
|
-
#include "RNWebGPUManager.h"
|
|
10
|
-
#include "WebGPUModule.h"
|
|
11
|
-
|
|
12
|
-
namespace rnwgpu {
|
|
13
|
-
|
|
14
|
-
void checkIfUsingSimulatorWithAPIValidation() {
|
|
15
|
-
#if TARGET_OS_SIMULATOR
|
|
16
|
-
NSDictionary *environment = [[NSProcessInfo processInfo] environment];
|
|
17
|
-
NSString *metalDeviceWrapperType = environment[@"METAL_DEVICE_WRAPPER_TYPE"];
|
|
18
|
-
|
|
19
|
-
if ([metalDeviceWrapperType isEqualToString:@"1"]) {
|
|
20
|
-
throw std::runtime_error(
|
|
21
|
-
"To use React Native WebGPU project on the iOS simulator, you need to "
|
|
22
|
-
"disable the Metal validation API. In 'Edit Scheme,' uncheck 'Metal "
|
|
23
|
-
"Validation.'");
|
|
24
|
-
}
|
|
25
|
-
#endif
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
ApplePlatformContext::ApplePlatformContext() {
|
|
29
|
-
checkIfUsingSimulatorWithAPIValidation();
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
wgpu::Surface ApplePlatformContext::makeSurface(wgpu::Instance instance,
|
|
33
|
-
void *surface, int width,
|
|
34
|
-
int height) {
|
|
35
|
-
wgpu::SurfaceSourceMetalLayer metalSurfaceDesc;
|
|
36
|
-
metalSurfaceDesc.layer = surface;
|
|
37
|
-
wgpu::SurfaceDescriptor surfaceDescriptor;
|
|
38
|
-
surfaceDescriptor.nextInChain = &metalSurfaceDesc;
|
|
39
|
-
return instance.CreateSurface(&surfaceDescriptor);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
static std::span<const uint8_t> nsDataToSpan(NSData *data) {
|
|
43
|
-
return {static_cast<const uint8_t *>(data.bytes), data.length};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
ImageData ApplePlatformContext::createImageBitmap(std::string blobId,
|
|
47
|
-
double offset, double size) {
|
|
48
|
-
RCTBlobManager *blobManager =
|
|
49
|
-
[[RCTBridge currentBridge] moduleForClass:RCTBlobManager.class];
|
|
50
|
-
NSData *blobData =
|
|
51
|
-
[blobManager resolve:[NSString stringWithUTF8String:blobId.c_str()]
|
|
52
|
-
offset:(long)offset
|
|
53
|
-
size:(long)size];
|
|
54
|
-
|
|
55
|
-
if (!blobData) {
|
|
56
|
-
throw std::runtime_error("Couldn't retrieve blob data");
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return createImageBitmapFromData(nsDataToSpan(blobData));
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
void ApplePlatformContext::createImageBitmapAsync(
|
|
63
|
-
std::string blobId, double offset, double size,
|
|
64
|
-
std::function<void(ImageData)> onSuccess,
|
|
65
|
-
std::function<void(std::string)> onError) {
|
|
66
|
-
// Resolve blob on current thread (requires RCTBridge access)
|
|
67
|
-
RCTBlobManager *blobManager =
|
|
68
|
-
[[RCTBridge currentBridge] moduleForClass:RCTBlobManager.class];
|
|
69
|
-
NSData *blobData =
|
|
70
|
-
[blobManager resolve:[NSString stringWithUTF8String:blobId.c_str()]
|
|
71
|
-
offset:(long)offset
|
|
72
|
-
size:(long)size];
|
|
73
|
-
|
|
74
|
-
if (!blobData) {
|
|
75
|
-
onError("Couldn't retrieve blob data");
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// blobData is alive during this synchronous call;
|
|
80
|
-
// createImageBitmapFromDataAsync copies the span before dispatching
|
|
81
|
-
createImageBitmapFromDataAsync(nsDataToSpan(blobData), std::move(onSuccess),
|
|
82
|
-
std::move(onError));
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
ImageData
|
|
86
|
-
ApplePlatformContext::createImageBitmapFromData(std::span<const uint8_t> data) {
|
|
87
|
-
// This avoids a copy by assuming the UIImage/NSImage constructors
|
|
88
|
-
// decode `nsData` eagerly before the memory for the wrapped `data`
|
|
89
|
-
// is freed.
|
|
90
|
-
//
|
|
91
|
-
// Since we get the `CGImageRef` from `image` and then throw
|
|
92
|
-
// it away, that's a fairly safe assumption.
|
|
93
|
-
NSData *nsData =
|
|
94
|
-
[NSData dataWithBytesNoCopy:const_cast<uint8_t *>(data.data())
|
|
95
|
-
length:data.size()
|
|
96
|
-
freeWhenDone:NO];
|
|
97
|
-
|
|
98
|
-
#if !TARGET_OS_OSX
|
|
99
|
-
UIImage *image = [UIImage imageWithData:nsData];
|
|
100
|
-
#else
|
|
101
|
-
NSImage *image = [[NSImage alloc] initWithData:nsData];
|
|
102
|
-
#endif
|
|
103
|
-
if (!image) {
|
|
104
|
-
throw std::runtime_error("Couldn't decode image");
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
#if !TARGET_OS_OSX
|
|
108
|
-
CGImageRef cgImage = image.CGImage;
|
|
109
|
-
#else
|
|
110
|
-
CGImageRef cgImage = [image CGImageForProposedRect:NULL
|
|
111
|
-
context:NULL
|
|
112
|
-
hints:NULL];
|
|
113
|
-
#endif
|
|
114
|
-
size_t width = CGImageGetWidth(cgImage);
|
|
115
|
-
size_t height = CGImageGetHeight(cgImage);
|
|
116
|
-
size_t bitsPerComponent = 8;
|
|
117
|
-
size_t bytesPerRow = width * 4;
|
|
118
|
-
|
|
119
|
-
ImageData result;
|
|
120
|
-
result.width = static_cast<int>(width);
|
|
121
|
-
result.height = static_cast<int>(height);
|
|
122
|
-
result.data.resize(height * bytesPerRow);
|
|
123
|
-
result.format = wgpu::TextureFormat::RGBA8Unorm;
|
|
124
|
-
|
|
125
|
-
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
|
|
126
|
-
CGContextRef context = CGBitmapContextCreate(
|
|
127
|
-
result.data.data(), width, height, bitsPerComponent, bytesPerRow,
|
|
128
|
-
colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
|
|
129
|
-
|
|
130
|
-
CGContextDrawImage(context, CGRectMake(0, 0, width, height), cgImage);
|
|
131
|
-
|
|
132
|
-
CGContextRelease(context);
|
|
133
|
-
CGColorSpaceRelease(colorSpace);
|
|
134
|
-
|
|
135
|
-
return result;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
void ApplePlatformContext::createImageBitmapFromDataAsync(
|
|
139
|
-
std::span<const uint8_t> data, std::function<void(ImageData)> onSuccess,
|
|
140
|
-
std::function<void(std::string)> onError) {
|
|
141
|
-
// Copy span data into shared_ptr so the dispatch_async block owns the memory
|
|
142
|
-
auto ownedData =
|
|
143
|
-
std::make_shared<std::vector<uint8_t>>(data.begin(), data.end());
|
|
144
|
-
|
|
145
|
-
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{
|
|
146
|
-
@autoreleasepool {
|
|
147
|
-
try {
|
|
148
|
-
auto result = createImageBitmapFromData(*ownedData);
|
|
149
|
-
onSuccess(std::move(result));
|
|
150
|
-
} catch (const std::exception &e) {
|
|
151
|
-
onError(e.what());
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
} // namespace rnwgpu
|
package/apple/MetalView.h
DELETED
package/apple/MetalView.mm
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
#import "MetalView.h"
|
|
2
|
-
#import "webgpu/webgpu_cpp.h"
|
|
3
|
-
|
|
4
|
-
@implementation MetalView {
|
|
5
|
-
BOOL _isConfigured;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
#if !TARGET_OS_OSX
|
|
9
|
-
+ (Class)layerClass {
|
|
10
|
-
return [CAMetalLayer class];
|
|
11
|
-
}
|
|
12
|
-
#else // !TARGET_OS_OSX
|
|
13
|
-
- (instancetype)init {
|
|
14
|
-
self = [super init];
|
|
15
|
-
if (self) {
|
|
16
|
-
self.wantsLayer = true;
|
|
17
|
-
self.layer = [CAMetalLayer layer];
|
|
18
|
-
}
|
|
19
|
-
return self;
|
|
20
|
-
}
|
|
21
|
-
#endif // !TARGET_OS_OSX
|
|
22
|
-
|
|
23
|
-
- (void)configure {
|
|
24
|
-
auto size = self.frame.size;
|
|
25
|
-
std::shared_ptr<rnwgpu::RNWebGPUManager> manager = [WebGPUModule getManager];
|
|
26
|
-
void *nativeSurface = (__bridge void *)self.layer;
|
|
27
|
-
auto ®istry = rnwgpu::SurfaceRegistry::getInstance();
|
|
28
|
-
auto gpu = manager->_gpu;
|
|
29
|
-
auto surface = manager->_platformContext->makeSurface(
|
|
30
|
-
gpu, nativeSurface, size.width, size.height);
|
|
31
|
-
registry
|
|
32
|
-
.getSurfaceInfoOrCreate([_contextId intValue], gpu, size.width,
|
|
33
|
-
size.height)
|
|
34
|
-
->switchToOnscreen(nativeSurface, surface);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
- (void)update {
|
|
38
|
-
auto size = self.frame.size;
|
|
39
|
-
auto ®istry = rnwgpu::SurfaceRegistry::getInstance();
|
|
40
|
-
registry.getSurfaceInfo([_contextId intValue])
|
|
41
|
-
->resize(size.width, size.height);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
- (void)dealloc {
|
|
45
|
-
auto ®istry = rnwgpu::SurfaceRegistry::getInstance();
|
|
46
|
-
// Remove the surface info from the registry
|
|
47
|
-
registry.removeSurfaceInfo([_contextId intValue]);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
@end
|
package/apple/RNWGUIKit.h
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
#ifndef PACKAGES_WEBGPU_APPLE_RNWGUIKIT_H_
|
|
2
|
-
#define PACKAGES_WEBGPU_APPLE_RNWGUIKIT_H_
|
|
3
|
-
|
|
4
|
-
#if !TARGET_OS_OSX
|
|
5
|
-
#import <UIKit/UIKit.h>
|
|
6
|
-
#else
|
|
7
|
-
#import <Appkit/Appkit.h>
|
|
8
|
-
#endif
|
|
9
|
-
|
|
10
|
-
#if !TARGET_OS_OSX
|
|
11
|
-
typedef UIView RNWGPlatformView;
|
|
12
|
-
#else
|
|
13
|
-
typedef NSView RNWGPlatformView;
|
|
14
|
-
#endif
|
|
15
|
-
|
|
16
|
-
#endif // PACKAGES_WEBGPU_APPLE_RNWGUIKIT_H_
|
package/apple/WebGPUModule.h
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#import "RNWebGPUManager.h"
|
|
4
|
-
#import <RNWgpuViewSpec/RNWgpuViewSpec.h>
|
|
5
|
-
#import <React/RCTCallInvokerModule.h>
|
|
6
|
-
#import <React/RCTEventEmitter.h>
|
|
7
|
-
|
|
8
|
-
@interface WebGPUModule
|
|
9
|
-
: RCTEventEmitter <NativeWebGPUModuleSpec, RCTCallInvokerModule>
|
|
10
|
-
|
|
11
|
-
+ (std::shared_ptr<rnwgpu::RNWebGPUManager>)getManager;
|
|
12
|
-
|
|
13
|
-
@end
|
package/apple/WebGPUModule.mm
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
#import "WebGPUModule.h"
|
|
2
|
-
#include "ApplePlatformContext.h"
|
|
3
|
-
#import "GPUCanvasContext.h"
|
|
4
|
-
|
|
5
|
-
#import <React/RCTBridge+Private.h>
|
|
6
|
-
#import <React/RCTCallInvoker.h>
|
|
7
|
-
#import <React/RCTLog.h>
|
|
8
|
-
#import <ReactCommon/RCTTurboModule.h>
|
|
9
|
-
#import <jsi/jsi.h>
|
|
10
|
-
#import <memory>
|
|
11
|
-
|
|
12
|
-
namespace jsi = facebook::jsi;
|
|
13
|
-
namespace react = facebook::react;
|
|
14
|
-
|
|
15
|
-
// Category to declare the runtime property on RCTBridge/RCTBridgeProxy.
|
|
16
|
-
// In Bridgeless mode, self.bridge is an RCTBridgeProxy which implements
|
|
17
|
-
// -(void *)runtime. In Legacy mode, self.bridge is the real RCTBridge
|
|
18
|
-
// (backed by RCTCxxBridge) which also implements it.
|
|
19
|
-
@interface RCTBridge (JSIRuntime)
|
|
20
|
-
- (void *)runtime;
|
|
21
|
-
@end
|
|
22
|
-
|
|
23
|
-
@implementation WebGPUModule
|
|
24
|
-
|
|
25
|
-
RCT_EXPORT_MODULE(WebGPUModule)
|
|
26
|
-
|
|
27
|
-
static std::shared_ptr<rnwgpu::RNWebGPUManager> webgpuManager;
|
|
28
|
-
|
|
29
|
-
// Synthesize callInvoker so RCTTurboModuleManager injects the JS CallInvoker.
|
|
30
|
-
// When the module conforms to RCTCallInvokerModule, the TurboModule infra
|
|
31
|
-
// calls setCallInvoker: during module initialization.
|
|
32
|
-
@synthesize callInvoker = _callInvoker;
|
|
33
|
-
|
|
34
|
-
+ (std::shared_ptr<rnwgpu::RNWebGPUManager>)getManager {
|
|
35
|
-
return webgpuManager;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
#pragma Setup and invalidation
|
|
39
|
-
|
|
40
|
-
+ (BOOL)requiresMainQueueSetup {
|
|
41
|
-
return YES;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
- (void)invalidate {
|
|
45
|
-
webgpuManager = nil;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
- (std::shared_ptr<rnwgpu::RNWebGPUManager>)getManager {
|
|
49
|
-
return webgpuManager;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install) {
|
|
53
|
-
if (webgpuManager != nil) {
|
|
54
|
-
// Already initialized, ignore call.
|
|
55
|
-
return @true;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// self.bridge works in both Legacy (RCTBridge) and Bridgeless
|
|
59
|
-
// (RCTBridgeProxy).
|
|
60
|
-
jsi::Runtime *runtime = (jsi::Runtime *)self.bridge.runtime;
|
|
61
|
-
if (!runtime) {
|
|
62
|
-
NSLog(@"Failed to install react-native-wgpu: jsi::Runtime* was null! "
|
|
63
|
-
@"(self.bridge=%@)",
|
|
64
|
-
self.bridge);
|
|
65
|
-
return [NSNumber numberWithBool:NO];
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// _callInvoker is injected by RCTTurboModuleManager because we conform to
|
|
69
|
-
// RCTCallInvokerModule. Works in both Legacy and Bridgeless.
|
|
70
|
-
std::shared_ptr<react::CallInvoker> jsInvoker = _callInvoker.callInvoker;
|
|
71
|
-
if (!jsInvoker) {
|
|
72
|
-
NSLog(@"Failed to install react-native-wgpu: react::CallInvoker was "
|
|
73
|
-
@"null!");
|
|
74
|
-
return [NSNumber numberWithBool:NO];
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
std::shared_ptr<rnwgpu::PlatformContext> platformContext =
|
|
78
|
-
std::make_shared<rnwgpu::ApplePlatformContext>();
|
|
79
|
-
webgpuManager = std::make_shared<rnwgpu::RNWebGPUManager>(runtime, jsInvoker,
|
|
80
|
-
platformContext);
|
|
81
|
-
return @true;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
85
|
-
(const facebook::react::ObjCTurboModule::InitParams &)params {
|
|
86
|
-
return std::make_shared<facebook::react::NativeWebGPUModuleSpecJSI>(params);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
@end
|
package/apple/WebGPUView.h
DELETED
package/apple/WebGPUView.mm
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
#import "WebGPUView.h"
|
|
2
|
-
|
|
3
|
-
#import <react/renderer/components/RNWgpuViewSpec/ComponentDescriptors.h>
|
|
4
|
-
#import <react/renderer/components/RNWgpuViewSpec/EventEmitters.h>
|
|
5
|
-
#import <react/renderer/components/RNWgpuViewSpec/Props.h>
|
|
6
|
-
#import <react/renderer/components/RNWgpuViewSpec/RCTComponentViewHelpers.h>
|
|
7
|
-
|
|
8
|
-
#import "MetalView.h"
|
|
9
|
-
#import "RCTFabricComponentsPlugins.h"
|
|
10
|
-
#import "Utils.h"
|
|
11
|
-
|
|
12
|
-
using namespace facebook::react;
|
|
13
|
-
|
|
14
|
-
@implementation WebGPUView
|
|
15
|
-
|
|
16
|
-
+ (ComponentDescriptorProvider)componentDescriptorProvider {
|
|
17
|
-
return concreteComponentDescriptorProvider<WebGPUViewComponentDescriptor>();
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
- (void)prepareForRecycle {
|
|
21
|
-
[super prepareForRecycle];
|
|
22
|
-
/*
|
|
23
|
-
It's important to destroy the Metal Layer before releasing a view
|
|
24
|
-
to the recycled pool to prevent displaying outdated content from
|
|
25
|
-
the last usage in the new context.
|
|
26
|
-
*/
|
|
27
|
-
self.contentView = nil;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
- (MetalView *)getContentView {
|
|
31
|
-
if (!self.contentView) {
|
|
32
|
-
self.contentView = [MetalView new];
|
|
33
|
-
}
|
|
34
|
-
return (MetalView *)self.contentView;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
- (void)updateProps:(const Props::Shared &)props
|
|
38
|
-
oldProps:(const Props::Shared &)oldProps {
|
|
39
|
-
const auto &oldViewProps =
|
|
40
|
-
*std::static_pointer_cast<const WebGPUViewProps>(_props);
|
|
41
|
-
const auto &newViewProps =
|
|
42
|
-
*std::static_pointer_cast<const WebGPUViewProps>(props);
|
|
43
|
-
|
|
44
|
-
if (newViewProps.contextId != oldViewProps.contextId) {
|
|
45
|
-
/*
|
|
46
|
-
The context is set only once during mounting the component
|
|
47
|
-
and never changes because it isn't available for users to modify.
|
|
48
|
-
*/
|
|
49
|
-
MetalView *metalView = [MetalView new];
|
|
50
|
-
self.contentView = metalView;
|
|
51
|
-
[metalView setContextId:@(newViewProps.contextId)];
|
|
52
|
-
[metalView configure];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
[super updateProps:props oldProps:oldProps];
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
- (void)updateLayoutMetrics:(const LayoutMetrics &)layoutMetrics
|
|
59
|
-
oldLayoutMetrics:(const LayoutMetrics &)oldLayoutMetrics {
|
|
60
|
-
[super updateLayoutMetrics:layoutMetrics oldLayoutMetrics:oldLayoutMetrics];
|
|
61
|
-
[(MetalView *)self.contentView update];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
Class<RCTComponentViewProtocol> WebGPUViewCls(void) { return WebGPUView.class; }
|
|
65
|
-
|
|
66
|
-
@end
|
package/cpp/WGPULogger.h
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Christian Falch on 26/08/2021.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#pragma once
|
|
6
|
-
|
|
7
|
-
#include <cstdio>
|
|
8
|
-
#include <jsi/jsi.h>
|
|
9
|
-
#include <string>
|
|
10
|
-
|
|
11
|
-
#if defined(ANDROID) || defined(__ANDROID__)
|
|
12
|
-
#include <android/log.h>
|
|
13
|
-
#endif
|
|
14
|
-
|
|
15
|
-
#ifdef __APPLE__
|
|
16
|
-
#include <syslog.h>
|
|
17
|
-
#endif
|
|
18
|
-
|
|
19
|
-
namespace rnwgpu {
|
|
20
|
-
|
|
21
|
-
namespace jsi = facebook::jsi;
|
|
22
|
-
|
|
23
|
-
class Logger {
|
|
24
|
-
public:
|
|
25
|
-
/**
|
|
26
|
-
* Logs message to console
|
|
27
|
-
* @param message Message to be written out
|
|
28
|
-
*/
|
|
29
|
-
static void logToConsole(std::string message) {
|
|
30
|
-
#ifdef DEBUG
|
|
31
|
-
#if defined(ANDROID) || defined(__ANDROID__)
|
|
32
|
-
__android_log_write(ANDROID_LOG_INFO, "WebGPU", message.c_str());
|
|
33
|
-
#endif
|
|
34
|
-
|
|
35
|
-
#ifdef __APPLE__
|
|
36
|
-
syslog(LOG_ERR, "%s\n", message.c_str());
|
|
37
|
-
#endif
|
|
38
|
-
#else
|
|
39
|
-
// In release mode, do nothing
|
|
40
|
-
(void)message;
|
|
41
|
-
#endif
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Logs to console
|
|
46
|
-
* @param fmt Format string
|
|
47
|
-
* @param ... Arguments to format string
|
|
48
|
-
*/
|
|
49
|
-
static void logToConsole(const char *fmt, ...) {
|
|
50
|
-
#ifdef DEBUG
|
|
51
|
-
va_list args;
|
|
52
|
-
va_start(args, fmt);
|
|
53
|
-
|
|
54
|
-
static char buffer[512];
|
|
55
|
-
vsnprintf(buffer, sizeof(buffer), fmt, args);
|
|
56
|
-
#if defined(ANDROID) || defined(__ANDROID__)
|
|
57
|
-
__android_log_write(ANDROID_LOG_INFO, "WebGPU", buffer);
|
|
58
|
-
#endif
|
|
59
|
-
#ifdef __APPLE__
|
|
60
|
-
syslog(LOG_ERR, "WebGPU: %s\n", buffer);
|
|
61
|
-
#endif
|
|
62
|
-
va_end(args);
|
|
63
|
-
#else
|
|
64
|
-
// In release mode, do nothing
|
|
65
|
-
(void)fmt;
|
|
66
|
-
#endif
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
static void logToJavascriptConsole(jsi::Runtime &runtime,
|
|
70
|
-
const std::string &message) {
|
|
71
|
-
auto console = Logger::getJavascriptConsole(runtime).asObject(runtime);
|
|
72
|
-
auto log = console.getPropertyAsFunction(runtime, "log");
|
|
73
|
-
log.call(runtime, jsi::String::createFromUtf8(runtime, message));
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
static void warnToJavascriptConsole(jsi::Runtime &runtime,
|
|
77
|
-
const std::string &message) {
|
|
78
|
-
auto console = Logger::getJavascriptConsole(runtime).asObject(runtime);
|
|
79
|
-
auto warn = console.getPropertyAsFunction(runtime, "warn");
|
|
80
|
-
warn.call(runtime, jsi::String::createFromUtf8(runtime, message));
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
static void errorToJavascriptConsole(jsi::Runtime &runtime,
|
|
84
|
-
const std::string &message) {
|
|
85
|
-
auto console = Logger::getJavascriptConsole(runtime).asObject(runtime);
|
|
86
|
-
auto warn = console.getPropertyAsFunction(runtime, "error");
|
|
87
|
-
warn.call(runtime, jsi::String::createFromUtf8(runtime, message));
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
private:
|
|
91
|
-
static jsi::Value getJavascriptConsole(jsi::Runtime &runtime) {
|
|
92
|
-
auto console = runtime.global().getProperty(runtime, "console");
|
|
93
|
-
if (console.isUndefined() || console.isNull()) {
|
|
94
|
-
throw jsi::JSError(runtime, "Could not find console object.");
|
|
95
|
-
return jsi::Value::undefined();
|
|
96
|
-
}
|
|
97
|
-
return console;
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
} // namespace rnwgpu
|