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