@shopify/react-native-skia 2.10.0 → 2.10.1
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/android/CMakeLists.txt +7 -41
- package/android/build.gradle +33 -0
- package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -2
- package/cpp/api/JsiNativeBuffer.h +14 -20
- package/cpp/api/JsiSkAnimatedImage.h +13 -16
- package/cpp/api/JsiSkAnimatedImageFactory.h +9 -7
- package/cpp/api/JsiSkApi.h +94 -90
- package/cpp/api/JsiSkCanvas.h +108 -251
- package/cpp/api/JsiSkColorFilterFactory.h +45 -63
- package/cpp/api/JsiSkContourMeasure.h +19 -29
- package/cpp/api/JsiSkContourMeasureIter.h +6 -6
- package/cpp/api/JsiSkConverters.h +410 -0
- package/cpp/api/JsiSkDataFactory.h +9 -15
- package/cpp/api/JsiSkFont.h +99 -180
- package/cpp/api/JsiSkFontMgr.h +19 -21
- package/cpp/api/JsiSkFontMgrFactory.h +4 -5
- package/cpp/api/JsiSkImage.h +66 -66
- package/cpp/api/JsiSkImageFactory.h +66 -63
- package/cpp/api/JsiSkImageFilterFactory.h +354 -608
- package/cpp/api/JsiSkImageInfo.h +10 -13
- package/cpp/api/JsiSkMaskFilterFactory.h +8 -11
- package/cpp/api/JsiSkMatrix.h +36 -73
- package/cpp/api/JsiSkNativeObjects.h +60 -92
- package/cpp/api/JsiSkPaint.h +73 -131
- package/cpp/api/JsiSkParagraph.h +36 -53
- package/cpp/api/JsiSkParagraphBuilder.h +36 -64
- package/cpp/api/JsiSkParagraphBuilderFactory.h +11 -16
- package/cpp/api/JsiSkPath.h +216 -349
- package/cpp/api/JsiSkPathBuilder.h +133 -269
- package/cpp/api/JsiSkPathBuilderFactory.h +11 -11
- package/cpp/api/JsiSkPathEffectFactory.h +52 -72
- package/cpp/api/JsiSkPathFactory.h +129 -195
- package/cpp/api/JsiSkPicture.h +12 -18
- package/cpp/api/JsiSkPictureRecorder.h +14 -15
- package/cpp/api/JsiSkPoint.h +4 -4
- package/cpp/api/JsiSkRRect.h +7 -8
- package/cpp/api/JsiSkRSXform.h +10 -23
- package/cpp/api/JsiSkRect.h +23 -31
- package/cpp/api/JsiSkRuntimeEffect.h +67 -83
- package/cpp/api/JsiSkRuntimeEffectFactory.h +6 -10
- package/cpp/api/JsiSkRuntimeShaderBuilder.h +5 -14
- package/cpp/api/JsiSkSVG.h +4 -4
- package/cpp/api/JsiSkShaderFactory.h +153 -225
- package/cpp/api/JsiSkSkottie.h +104 -126
- package/cpp/api/JsiSkSurface.h +11 -14
- package/cpp/api/JsiSkSurfaceFactory.h +6 -7
- package/cpp/api/JsiSkTextBlobFactory.h +31 -54
- package/cpp/api/JsiSkTypeface.h +8 -12
- package/cpp/api/JsiSkTypefaceFactory.h +9 -7
- package/cpp/api/JsiSkTypefaceFontProvider.h +22 -23
- package/cpp/api/JsiSkTypefaceFontProviderFactory.h +5 -6
- package/cpp/api/JsiSkVertices.h +6 -8
- package/cpp/api/JsiSkiaContext.h +10 -11
- package/cpp/api/JsiVideo.h +31 -71
- package/cpp/jsi/JSIConverter.h +0 -31
- package/cpp/jsi/NativeObject.h +11 -6
- package/cpp/rnskia/RNDawnContext.h +18 -2
- package/cpp/rnskia/RNDawnInterop.cpp +19 -0
- package/cpp/rnskia/RNDawnUtils.h +18 -1
- package/cpp/rnskia/RNSkManager.cpp +5 -162
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +2 -0
- package/lib/commonjs/mock/index.js +0 -1
- package/lib/commonjs/mock/index.js.map +1 -1
- package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +15 -6
- package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
- package/lib/commonjs/skia/types/Skia.d.ts +5 -15
- package/lib/commonjs/skia/types/Skia.js.map +1 -1
- package/lib/commonjs/skia/types/index.d.ts +0 -1
- package/lib/commonjs/skia/types/index.js +0 -11
- package/lib/commonjs/skia/types/index.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
- package/lib/commonjs/skia/web/JsiSkImageFactory.js +2 -2
- package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkia.js +1 -4
- package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
- package/lib/commonjs/views/index.d.ts +0 -1
- package/lib/commonjs/views/index.js +0 -11
- package/lib/commonjs/views/index.js.map +1 -1
- package/lib/module/mock/index.js +0 -1
- package/lib/module/mock/index.js.map +1 -1
- package/lib/module/skia/types/Image/ImageFactory.d.ts +15 -6
- package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
- package/lib/module/skia/types/Skia.d.ts +5 -15
- package/lib/module/skia/types/Skia.js.map +1 -1
- package/lib/module/skia/types/index.d.ts +0 -1
- package/lib/module/skia/types/index.js +0 -1
- package/lib/module/skia/types/index.js.map +1 -1
- package/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
- package/lib/module/skia/web/JsiSkImageFactory.js +2 -2
- package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkia.js +1 -4
- package/lib/module/skia/web/JsiSkia.js.map +1 -1
- package/lib/module/views/index.d.ts +0 -1
- package/lib/module/views/index.js +0 -1
- package/lib/module/views/index.js.map +1 -1
- package/lib/typescript/lib/commonjs/mock/index.d.ts +0 -1
- package/lib/typescript/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
- package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -2
- package/lib/typescript/lib/module/mock/index.d.ts +0 -2
- package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -2
- package/lib/typescript/lib/module/skia/types/index.d.ts +0 -1
- package/lib/typescript/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
- package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -2
- package/lib/typescript/lib/module/views/index.d.ts +0 -1
- package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +15 -6
- package/lib/typescript/src/skia/types/Skia.d.ts +5 -15
- package/lib/typescript/src/skia/types/index.d.ts +0 -1
- package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +2 -2
- package/lib/typescript/src/views/index.d.ts +0 -1
- package/package.json +3 -4
- package/react-native-skia.podspec +38 -4
- package/src/mock/index.ts +0 -1
- package/src/skia/types/Image/ImageFactory.ts +15 -6
- package/src/skia/types/Skia.ts +5 -15
- package/src/skia/types/index.ts +0 -1
- package/src/skia/web/JsiSkImageFactory.ts +3 -3
- package/src/skia/web/JsiSkia.ts +2 -5
- package/src/views/index.ts +0 -1
- package/android/cpp/jni/JniWebGPUView.cpp +0 -112
- package/android/cpp/rnskia-android/SkiaPlatformContext.h +0 -26
- package/android/src/main/java/com/shopify/reactnative/skia/WebGPUSurfaceView.java +0 -43
- package/android/src/main/java/com/shopify/reactnative/skia/WebGPUTextureView.java +0 -50
- package/android/src/main/java/com/shopify/reactnative/skia/WebGPUView.java +0 -98
- package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewAPI.java +0 -19
- package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +0 -58
- package/apple/RNWebGPUAppleNativeBuffer.mm +0 -33
- package/apple/SkiaPlatformContext.h +0 -20
- package/apple/SkiaPlatformContext.mm +0 -21
- package/apple/SkiaWebGPUView.mm +0 -81
- package/apple/WebGPUMetalView.mm +0 -136
- package/cpp/rnwgpu/ArrayBuffer.h +0 -116
- package/cpp/rnwgpu/Canvas.h +0 -52
- package/cpp/rnwgpu/PlatformContext.h +0 -18
- package/cpp/rnwgpu/SurfaceRegistry.h +0 -605
- package/cpp/rnwgpu/api/AppleNativeBuffer.h +0 -22
- package/cpp/rnwgpu/api/Convertors.h +0 -783
- package/cpp/rnwgpu/api/External.h +0 -12
- package/cpp/rnwgpu/api/GPU.cpp +0 -162
- package/cpp/rnwgpu/api/GPU.h +0 -60
- package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -239
- package/cpp/rnwgpu/api/GPUAdapter.h +0 -60
- 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 -107
- package/cpp/rnwgpu/api/GPUBuffer.h +0 -88
- package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -75
- package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -70
- 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 -613
- package/cpp/rnwgpu/api/GPUDevice.h +0 -258
- package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
- package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
- package/cpp/rnwgpu/api/GPUError.h +0 -35
- package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
- package/cpp/rnwgpu/api/GPUExternalTexture.cpp +0 -139
- package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -95
- 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 -179
- package/cpp/rnwgpu/api/GPUQueue.h +0 -84
- 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 -56
- package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
- package/cpp/rnwgpu/api/GPUSharedFence.cpp +0 -80
- package/cpp/rnwgpu/api/GPUSharedFence.h +0 -53
- package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -135
- package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -75
- 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 -60
- package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
- package/cpp/rnwgpu/api/ImageBitmap.h +0 -62
- package/cpp/rnwgpu/api/NativeBufferUtils.h +0 -87
- package/cpp/rnwgpu/api/RNWebGPU.h +0 -82
- package/cpp/rnwgpu/api/WebGPUConstants.h +0 -36
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -64
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -56
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -97
- package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -57
- package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -52
- package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -56
- package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -56
- package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -59
- 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 -66
- package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -58
- package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
- package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -45
- package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -45
- package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -56
- package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -58
- package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -67
- package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +0 -56
- package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -103
- package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -109
- package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -38
- package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -90
- package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -73
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -62
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -65
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -81
- package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -54
- package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
- package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -54
- package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -57
- package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -69
- package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -61
- package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -55
- package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -43
- package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -45
- package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -80
- package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -81
- package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -101
- package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -92
- package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -58
- package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -103
- package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -51
- package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -45
- package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -110
- package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -60
- package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -62
- package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
- package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +0 -58
- package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +0 -51
- package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +0 -73
- package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -64
- package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -59
- package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -59
- package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -91
- package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
- package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -91
- package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -64
- package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -53
- package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -62
- package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -73
- package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
- package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -213
- package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -58
- package/cpp/rnwgpu/async/RuntimeContext.cpp +0 -199
- package/cpp/rnwgpu/async/RuntimeContext.h +0 -134
- package/lib/commonjs/skia/types/WebGPU.d.ts +0 -184
- package/lib/commonjs/skia/types/WebGPU.js +0 -105
- package/lib/commonjs/skia/types/WebGPU.js.map +0 -1
- package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -8
- package/lib/commonjs/specs/WebGPUViewNativeComponent.js +0 -10
- package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +0 -1
- package/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
- package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +0 -103
- package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +0 -1
- package/lib/commonjs/specs/utils.d.ts +0 -1
- package/lib/commonjs/specs/utils.js +0 -11
- package/lib/commonjs/specs/utils.js.map +0 -1
- package/lib/commonjs/views/WebGPUCanvas.d.ts +0 -33
- package/lib/commonjs/views/WebGPUCanvas.js +0 -79
- package/lib/commonjs/views/WebGPUCanvas.js.map +0 -1
- package/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -23
- package/lib/commonjs/views/WebGPUCanvas.web.js +0 -20
- package/lib/commonjs/views/WebGPUCanvas.web.js.map +0 -1
- package/lib/module/skia/types/WebGPU.d.ts +0 -184
- package/lib/module/skia/types/WebGPU.js +0 -99
- package/lib/module/skia/types/WebGPU.js.map +0 -1
- package/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -8
- package/lib/module/specs/WebGPUViewNativeComponent.js +0 -4
- package/lib/module/specs/WebGPUViewNativeComponent.js.map +0 -1
- package/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
- package/lib/module/specs/WebGPUViewNativeComponent.web.js +0 -96
- package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +0 -1
- package/lib/module/specs/utils.d.ts +0 -1
- package/lib/module/specs/utils.js +0 -5
- package/lib/module/specs/utils.js.map +0 -1
- package/lib/module/views/WebGPUCanvas.d.ts +0 -33
- package/lib/module/views/WebGPUCanvas.js +0 -70
- package/lib/module/views/WebGPUCanvas.js.map +0 -1
- package/lib/module/views/WebGPUCanvas.web.d.ts +0 -23
- package/lib/module/views/WebGPUCanvas.web.js +0 -12
- package/lib/module/views/WebGPUCanvas.web.js.map +0 -1
- package/lib/typescript/lib/commonjs/skia/types/WebGPU.d.ts +0 -2
- package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -4
- package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -3
- package/lib/typescript/lib/commonjs/specs/utils.d.ts +0 -2
- package/lib/typescript/lib/commonjs/views/WebGPUCanvas.d.ts +0 -6
- package/lib/typescript/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -6
- package/lib/typescript/lib/module/skia/types/WebGPU.d.ts +0 -31
- package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -2
- package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -2
- package/lib/typescript/lib/module/specs/utils.d.ts +0 -1
- package/lib/typescript/lib/module/views/WebGPUCanvas.d.ts +0 -7
- package/lib/typescript/lib/module/views/WebGPUCanvas.web.d.ts +0 -8
- package/lib/typescript/src/skia/types/WebGPU.d.ts +0 -184
- package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +0 -8
- package/lib/typescript/src/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
- package/lib/typescript/src/specs/utils.d.ts +0 -1
- package/lib/typescript/src/views/WebGPUCanvas.d.ts +0 -33
- package/lib/typescript/src/views/WebGPUCanvas.web.d.ts +0 -23
- package/src/skia/types/WebGPU.ts +0 -226
- package/src/specs/WebGPUViewNativeComponent.ts +0 -11
- package/src/specs/WebGPUViewNativeComponent.web.ts +0 -110
- package/src/specs/utils.ts +0 -4
- package/src/views/WebGPUCanvas.tsx +0 -125
- package/src/views/WebGPUCanvas.web.tsx +0 -36
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
#include <string>
|
|
5
|
-
|
|
6
|
-
#include "descriptors/Unions.h"
|
|
7
|
-
|
|
8
|
-
#include "jsi/NativeObject.h"
|
|
9
|
-
|
|
10
|
-
#include "webgpu/webgpu_cpp.h"
|
|
11
|
-
|
|
12
|
-
#include "GPUBuffer.h"
|
|
13
|
-
#include "GPUCommandBuffer.h"
|
|
14
|
-
#include "GPUComputePassEncoder.h"
|
|
15
|
-
#include "GPUExtent3D.h"
|
|
16
|
-
#include "GPUQuerySet.h"
|
|
17
|
-
#include "GPURenderPassEncoder.h"
|
|
18
|
-
#include "descriptors/GPUCommandBufferDescriptor.h"
|
|
19
|
-
#include "descriptors/GPUComputePassDescriptor.h"
|
|
20
|
-
#include "descriptors/GPUImageCopyBuffer.h"
|
|
21
|
-
#include "descriptors/GPUImageCopyTexture.h"
|
|
22
|
-
#include "descriptors/GPURenderPassDescriptor.h"
|
|
23
|
-
|
|
24
|
-
namespace rnwgpu {
|
|
25
|
-
|
|
26
|
-
namespace jsi = facebook::jsi;
|
|
27
|
-
|
|
28
|
-
class GPUCommandEncoder : public NativeObject<GPUCommandEncoder> {
|
|
29
|
-
public:
|
|
30
|
-
static constexpr const char *CLASS_NAME = "GPUCommandEncoder";
|
|
31
|
-
|
|
32
|
-
explicit GPUCommandEncoder(wgpu::CommandEncoder instance, std::string label)
|
|
33
|
-
: NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
|
|
34
|
-
|
|
35
|
-
public:
|
|
36
|
-
std::string getBrand() { return CLASS_NAME; }
|
|
37
|
-
|
|
38
|
-
std::shared_ptr<GPURenderPassEncoder>
|
|
39
|
-
beginRenderPass(std::shared_ptr<GPURenderPassDescriptor> descriptor);
|
|
40
|
-
std::shared_ptr<GPUComputePassEncoder> beginComputePass(
|
|
41
|
-
std::optional<std::shared_ptr<GPUComputePassDescriptor>> descriptor);
|
|
42
|
-
void copyBufferToBuffer(std::shared_ptr<GPUBuffer> source,
|
|
43
|
-
uint64_t sourceOffset,
|
|
44
|
-
std::shared_ptr<GPUBuffer> destination,
|
|
45
|
-
uint64_t destinationOffset, uint64_t size);
|
|
46
|
-
void copyBufferToTexture(std::shared_ptr<GPUImageCopyBuffer> source,
|
|
47
|
-
std::shared_ptr<GPUImageCopyTexture> destination,
|
|
48
|
-
std::shared_ptr<GPUExtent3D> copySize);
|
|
49
|
-
void copyTextureToBuffer(std::shared_ptr<GPUImageCopyTexture> source,
|
|
50
|
-
std::shared_ptr<GPUImageCopyBuffer> destination,
|
|
51
|
-
std::shared_ptr<GPUExtent3D> copySize);
|
|
52
|
-
void copyTextureToTexture(std::shared_ptr<GPUImageCopyTexture> source,
|
|
53
|
-
std::shared_ptr<GPUImageCopyTexture> destination,
|
|
54
|
-
std::shared_ptr<GPUExtent3D> copySize);
|
|
55
|
-
void clearBuffer(std::shared_ptr<GPUBuffer> buffer,
|
|
56
|
-
std::optional<uint64_t> offset,
|
|
57
|
-
std::optional<uint64_t> size);
|
|
58
|
-
void resolveQuerySet(std::shared_ptr<GPUQuerySet> querySet,
|
|
59
|
-
uint32_t firstQuery, uint32_t queryCount,
|
|
60
|
-
std::shared_ptr<GPUBuffer> destination,
|
|
61
|
-
uint64_t destinationOffset);
|
|
62
|
-
std::shared_ptr<GPUCommandBuffer>
|
|
63
|
-
finish(std::optional<std::shared_ptr<GPUCommandBufferDescriptor>> descriptor);
|
|
64
|
-
void pushDebugGroup(std::string groupLabel);
|
|
65
|
-
void popDebugGroup();
|
|
66
|
-
void insertDebugMarker(std::string markerLabel);
|
|
67
|
-
|
|
68
|
-
std::string getLabel() { return _label; }
|
|
69
|
-
void setLabel(const std::string &label) {
|
|
70
|
-
_label = label;
|
|
71
|
-
_instance.SetLabel(_label.c_str());
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
75
|
-
installGetter(runtime, prototype, "__brand", &GPUCommandEncoder::getBrand);
|
|
76
|
-
installMethod(runtime, prototype, "beginRenderPass",
|
|
77
|
-
&GPUCommandEncoder::beginRenderPass);
|
|
78
|
-
installMethod(runtime, prototype, "beginComputePass",
|
|
79
|
-
&GPUCommandEncoder::beginComputePass);
|
|
80
|
-
installMethod(runtime, prototype, "copyBufferToBuffer",
|
|
81
|
-
&GPUCommandEncoder::copyBufferToBuffer);
|
|
82
|
-
installMethod(runtime, prototype, "copyBufferToTexture",
|
|
83
|
-
&GPUCommandEncoder::copyBufferToTexture);
|
|
84
|
-
installMethod(runtime, prototype, "copyTextureToBuffer",
|
|
85
|
-
&GPUCommandEncoder::copyTextureToBuffer);
|
|
86
|
-
installMethod(runtime, prototype, "copyTextureToTexture",
|
|
87
|
-
&GPUCommandEncoder::copyTextureToTexture);
|
|
88
|
-
installMethod(runtime, prototype, "clearBuffer",
|
|
89
|
-
&GPUCommandEncoder::clearBuffer);
|
|
90
|
-
installMethod(runtime, prototype, "resolveQuerySet",
|
|
91
|
-
&GPUCommandEncoder::resolveQuerySet);
|
|
92
|
-
installMethod(runtime, prototype, "finish", &GPUCommandEncoder::finish);
|
|
93
|
-
installMethod(runtime, prototype, "pushDebugGroup",
|
|
94
|
-
&GPUCommandEncoder::pushDebugGroup);
|
|
95
|
-
installMethod(runtime, prototype, "popDebugGroup",
|
|
96
|
-
&GPUCommandEncoder::popDebugGroup);
|
|
97
|
-
installMethod(runtime, prototype, "insertDebugMarker",
|
|
98
|
-
&GPUCommandEncoder::insertDebugMarker);
|
|
99
|
-
installGetterSetter(runtime, prototype, "label",
|
|
100
|
-
&GPUCommandEncoder::getLabel,
|
|
101
|
-
&GPUCommandEncoder::setLabel);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
inline const wgpu::CommandEncoder get() { return _instance; }
|
|
105
|
-
|
|
106
|
-
private:
|
|
107
|
-
wgpu::CommandEncoder _instance;
|
|
108
|
-
std::string _label;
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
} // namespace rnwgpu
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <string>
|
|
4
|
-
#include <vector>
|
|
5
|
-
|
|
6
|
-
#include "descriptors/Unions.h"
|
|
7
|
-
|
|
8
|
-
#include "jsi/NativeObject.h"
|
|
9
|
-
|
|
10
|
-
#include "webgpu/webgpu_cpp.h"
|
|
11
|
-
|
|
12
|
-
namespace rnwgpu {
|
|
13
|
-
|
|
14
|
-
namespace jsi = facebook::jsi;
|
|
15
|
-
|
|
16
|
-
struct GPUCompilationMessageData {
|
|
17
|
-
std::string message;
|
|
18
|
-
wgpu::CompilationMessageType type;
|
|
19
|
-
uint64_t lineNum;
|
|
20
|
-
uint64_t linePos;
|
|
21
|
-
uint64_t offset;
|
|
22
|
-
uint64_t length;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
class GPUCompilationInfo : public NativeObject<GPUCompilationInfo> {
|
|
26
|
-
public:
|
|
27
|
-
static constexpr const char *CLASS_NAME = "GPUCompilationInfo";
|
|
28
|
-
|
|
29
|
-
GPUCompilationInfo() : NativeObject(CLASS_NAME) {}
|
|
30
|
-
|
|
31
|
-
public:
|
|
32
|
-
std::string getBrand() { return CLASS_NAME; }
|
|
33
|
-
|
|
34
|
-
std::vector<GPUCompilationMessageData> getMessages() { return _messages; }
|
|
35
|
-
|
|
36
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
37
|
-
installGetter(runtime, prototype, "__brand", &GPUCompilationInfo::getBrand);
|
|
38
|
-
installGetter(runtime, prototype, "messages",
|
|
39
|
-
&GPUCompilationInfo::getMessages);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
private:
|
|
43
|
-
std::vector<GPUCompilationMessageData> _messages;
|
|
44
|
-
friend class GPUShaderModule;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
template <> struct JSIConverter<std::vector<GPUCompilationMessageData>> {
|
|
48
|
-
static std::vector<GPUCompilationMessageData>
|
|
49
|
-
fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
|
|
50
|
-
throw std::runtime_error("Invalid GPUCompilationMessageData::fromJSI()");
|
|
51
|
-
}
|
|
52
|
-
static jsi::Value toJSI(jsi::Runtime &runtime,
|
|
53
|
-
std::vector<GPUCompilationMessageData> arg) {
|
|
54
|
-
jsi::Array result = jsi::Array(runtime, arg.size());
|
|
55
|
-
for (size_t i = 0; i < arg.size(); i++) {
|
|
56
|
-
const auto &message = arg[i];
|
|
57
|
-
jsi::Object messageObj(runtime);
|
|
58
|
-
messageObj.setProperty(
|
|
59
|
-
runtime, "message",
|
|
60
|
-
jsi::String::createFromUtf8(runtime, message.message));
|
|
61
|
-
std::string typeStr;
|
|
62
|
-
EnumMapper::convertEnumToJSUnion(message.type, &typeStr);
|
|
63
|
-
messageObj.setProperty(runtime, "type",
|
|
64
|
-
jsi::String::createFromUtf8(runtime, typeStr));
|
|
65
|
-
messageObj.setProperty(runtime, "lineNum",
|
|
66
|
-
static_cast<double>(message.lineNum));
|
|
67
|
-
messageObj.setProperty(runtime, "linePos",
|
|
68
|
-
static_cast<double>(message.linePos));
|
|
69
|
-
messageObj.setProperty(runtime, "offset",
|
|
70
|
-
static_cast<double>(message.offset));
|
|
71
|
-
messageObj.setProperty(runtime, "length",
|
|
72
|
-
static_cast<double>(message.length));
|
|
73
|
-
result.setValueAtIndex(runtime, i, messageObj);
|
|
74
|
-
}
|
|
75
|
-
return result;
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
} // namespace rnwgpu
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <string>
|
|
4
|
-
|
|
5
|
-
#include "descriptors/Unions.h"
|
|
6
|
-
|
|
7
|
-
#include "jsi/NativeObject.h"
|
|
8
|
-
|
|
9
|
-
#include "webgpu/webgpu_cpp.h"
|
|
10
|
-
|
|
11
|
-
namespace rnwgpu {
|
|
12
|
-
|
|
13
|
-
namespace jsi = facebook::jsi;
|
|
14
|
-
|
|
15
|
-
class GPUCompilationMessage : public NativeObject<GPUCompilationMessage> {
|
|
16
|
-
public:
|
|
17
|
-
static constexpr const char *CLASS_NAME = "GPUCompilationMessage";
|
|
18
|
-
|
|
19
|
-
explicit GPUCompilationMessage(wgpu::CompilationMessage instance)
|
|
20
|
-
: NativeObject(CLASS_NAME), _instance(instance) {}
|
|
21
|
-
|
|
22
|
-
public:
|
|
23
|
-
std::string getBrand() { return CLASS_NAME; }
|
|
24
|
-
|
|
25
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
26
|
-
installGetter(runtime, prototype, "__brand",
|
|
27
|
-
&GPUCompilationMessage::getBrand);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
inline const wgpu::CompilationMessage get() { return _instance; }
|
|
31
|
-
|
|
32
|
-
private:
|
|
33
|
-
wgpu::CompilationMessage _instance;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
} // namespace rnwgpu
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
#include "GPUComputePassEncoder.h"
|
|
2
|
-
#include <memory>
|
|
3
|
-
#include <string>
|
|
4
|
-
|
|
5
|
-
namespace rnwgpu {
|
|
6
|
-
|
|
7
|
-
void GPUComputePassEncoder::setPipeline(
|
|
8
|
-
std::shared_ptr<GPUComputePipeline> pipeline) {
|
|
9
|
-
_instance.SetPipeline(pipeline->get());
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
void GPUComputePassEncoder::end() { _instance.End(); }
|
|
13
|
-
|
|
14
|
-
void GPUComputePassEncoder::setBindGroup(
|
|
15
|
-
uint32_t index,
|
|
16
|
-
std::variant<std::nullptr_t, std::shared_ptr<GPUBindGroup>> bindGroup,
|
|
17
|
-
std::optional<std::vector<uint32_t>> dynamicOffsets) {
|
|
18
|
-
auto dynOffsets = dynamicOffsets.value_or(std::vector<uint32_t>());
|
|
19
|
-
if (dynOffsets.size() == 0) {
|
|
20
|
-
if (std::holds_alternative<std::nullptr_t>(bindGroup)) {
|
|
21
|
-
_instance.SetBindGroup(index, nullptr, 0, nullptr);
|
|
22
|
-
} else {
|
|
23
|
-
auto group = std::get<std::shared_ptr<GPUBindGroup>>(bindGroup);
|
|
24
|
-
_instance.SetBindGroup(index, group->get(), 0, nullptr);
|
|
25
|
-
}
|
|
26
|
-
} else {
|
|
27
|
-
if (std::holds_alternative<std::nullptr_t>(bindGroup)) {
|
|
28
|
-
_instance.SetBindGroup(index, nullptr, dynOffsets.size(),
|
|
29
|
-
dynamicOffsets->data());
|
|
30
|
-
} else {
|
|
31
|
-
auto group = std::get<std::shared_ptr<GPUBindGroup>>(bindGroup);
|
|
32
|
-
_instance.SetBindGroup(index, group->get(), dynOffsets.size(),
|
|
33
|
-
dynamicOffsets->data());
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
void GPUComputePassEncoder::dispatchWorkgroups(
|
|
39
|
-
uint32_t workgroupCountX, std::optional<uint32_t> workgroupCountY,
|
|
40
|
-
std::optional<uint32_t> workgroupCountZ) {
|
|
41
|
-
_instance.DispatchWorkgroups(workgroupCountX, workgroupCountY.value_or(1),
|
|
42
|
-
workgroupCountZ.value_or(1));
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
void GPUComputePassEncoder::dispatchWorkgroupsIndirect(
|
|
46
|
-
std::shared_ptr<GPUBuffer> indirectBuffer, uint64_t indirectOffset) {
|
|
47
|
-
_instance.DispatchWorkgroupsIndirect(indirectBuffer->get(), indirectOffset);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
void GPUComputePassEncoder::pushDebugGroup(std::string groupLabel) {
|
|
51
|
-
_instance.PushDebugGroup(groupLabel.c_str());
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
void GPUComputePassEncoder::popDebugGroup() { _instance.PopDebugGroup(); }
|
|
55
|
-
|
|
56
|
-
void GPUComputePassEncoder::insertDebugMarker(std::string markerLabel) {
|
|
57
|
-
_instance.InsertDebugMarker(markerLabel.c_str());
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
} // namespace rnwgpu
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
#include <optional>
|
|
5
|
-
#include <string>
|
|
6
|
-
#include <variant>
|
|
7
|
-
#include <vector>
|
|
8
|
-
|
|
9
|
-
#include "descriptors/Unions.h"
|
|
10
|
-
|
|
11
|
-
#include "jsi/NativeObject.h"
|
|
12
|
-
|
|
13
|
-
#include "webgpu/webgpu_cpp.h"
|
|
14
|
-
|
|
15
|
-
#include "GPUBindGroup.h"
|
|
16
|
-
#include "GPUBuffer.h"
|
|
17
|
-
#include "GPUComputePipeline.h"
|
|
18
|
-
|
|
19
|
-
namespace rnwgpu {
|
|
20
|
-
|
|
21
|
-
namespace jsi = facebook::jsi;
|
|
22
|
-
|
|
23
|
-
class GPUComputePassEncoder : public NativeObject<GPUComputePassEncoder> {
|
|
24
|
-
public:
|
|
25
|
-
static constexpr const char *CLASS_NAME = "GPUComputePassEncoder";
|
|
26
|
-
|
|
27
|
-
explicit GPUComputePassEncoder(wgpu::ComputePassEncoder instance,
|
|
28
|
-
std::string label)
|
|
29
|
-
: NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
|
|
30
|
-
|
|
31
|
-
public:
|
|
32
|
-
std::string getBrand() { return CLASS_NAME; }
|
|
33
|
-
|
|
34
|
-
void setPipeline(std::shared_ptr<GPUComputePipeline> pipeline);
|
|
35
|
-
void dispatchWorkgroups(uint32_t workgroupCountX,
|
|
36
|
-
std::optional<uint32_t> workgroupCountY,
|
|
37
|
-
std::optional<uint32_t> workgroupCountZ);
|
|
38
|
-
void dispatchWorkgroupsIndirect(std::shared_ptr<GPUBuffer> indirectBuffer,
|
|
39
|
-
uint64_t indirectOffset);
|
|
40
|
-
void end();
|
|
41
|
-
void pushDebugGroup(std::string groupLabel);
|
|
42
|
-
void popDebugGroup();
|
|
43
|
-
void insertDebugMarker(std::string markerLabel);
|
|
44
|
-
void setBindGroup(
|
|
45
|
-
uint32_t index,
|
|
46
|
-
std::variant<std::nullptr_t, std::shared_ptr<GPUBindGroup>> bindGroup,
|
|
47
|
-
std::optional<std::vector<uint32_t>> dynamicOffsets);
|
|
48
|
-
|
|
49
|
-
std::string getLabel() { return _label; }
|
|
50
|
-
void setLabel(const std::string &label) {
|
|
51
|
-
_label = label;
|
|
52
|
-
_instance.SetLabel(_label.c_str());
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
56
|
-
installGetter(runtime, prototype, "__brand",
|
|
57
|
-
&GPUComputePassEncoder::getBrand);
|
|
58
|
-
installMethod(runtime, prototype, "setPipeline",
|
|
59
|
-
&GPUComputePassEncoder::setPipeline);
|
|
60
|
-
installMethod(runtime, prototype, "dispatchWorkgroups",
|
|
61
|
-
&GPUComputePassEncoder::dispatchWorkgroups);
|
|
62
|
-
installMethod(runtime, prototype, "dispatchWorkgroupsIndirect",
|
|
63
|
-
&GPUComputePassEncoder::dispatchWorkgroupsIndirect);
|
|
64
|
-
installMethod(runtime, prototype, "end", &GPUComputePassEncoder::end);
|
|
65
|
-
installMethod(runtime, prototype, "pushDebugGroup",
|
|
66
|
-
&GPUComputePassEncoder::pushDebugGroup);
|
|
67
|
-
installMethod(runtime, prototype, "popDebugGroup",
|
|
68
|
-
&GPUComputePassEncoder::popDebugGroup);
|
|
69
|
-
installMethod(runtime, prototype, "insertDebugMarker",
|
|
70
|
-
&GPUComputePassEncoder::insertDebugMarker);
|
|
71
|
-
installMethod(runtime, prototype, "setBindGroup",
|
|
72
|
-
&GPUComputePassEncoder::setBindGroup);
|
|
73
|
-
installGetterSetter(runtime, prototype, "label",
|
|
74
|
-
&GPUComputePassEncoder::getLabel,
|
|
75
|
-
&GPUComputePassEncoder::setLabel);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
inline const wgpu::ComputePassEncoder get() { return _instance; }
|
|
79
|
-
|
|
80
|
-
private:
|
|
81
|
-
wgpu::ComputePassEncoder _instance;
|
|
82
|
-
std::string _label;
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
} // namespace rnwgpu
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
#include "GPUComputePipeline.h"
|
|
2
|
-
#include <memory>
|
|
3
|
-
|
|
4
|
-
namespace rnwgpu {
|
|
5
|
-
|
|
6
|
-
std::shared_ptr<GPUBindGroupLayout>
|
|
7
|
-
GPUComputePipeline::getBindGroupLayout(uint32_t groupIndex) {
|
|
8
|
-
auto bindGroup = _instance.GetBindGroupLayout(groupIndex);
|
|
9
|
-
return std::make_shared<GPUBindGroupLayout>(bindGroup, "");
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
} // namespace rnwgpu
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
#include <string>
|
|
5
|
-
|
|
6
|
-
#include "descriptors/Unions.h"
|
|
7
|
-
|
|
8
|
-
#include "jsi/NativeObject.h"
|
|
9
|
-
|
|
10
|
-
#include "webgpu/webgpu_cpp.h"
|
|
11
|
-
|
|
12
|
-
#include "GPUBindGroupLayout.h"
|
|
13
|
-
|
|
14
|
-
namespace rnwgpu {
|
|
15
|
-
|
|
16
|
-
namespace jsi = facebook::jsi;
|
|
17
|
-
|
|
18
|
-
class GPUComputePipeline : public NativeObject<GPUComputePipeline> {
|
|
19
|
-
public:
|
|
20
|
-
static constexpr const char *CLASS_NAME = "GPUComputePipeline";
|
|
21
|
-
|
|
22
|
-
explicit GPUComputePipeline(wgpu::ComputePipeline instance, std::string label)
|
|
23
|
-
: NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
|
|
24
|
-
|
|
25
|
-
public:
|
|
26
|
-
std::string getBrand() { return CLASS_NAME; }
|
|
27
|
-
|
|
28
|
-
std::shared_ptr<GPUBindGroupLayout> getBindGroupLayout(uint32_t index);
|
|
29
|
-
|
|
30
|
-
std::string getLabel() { return _label; }
|
|
31
|
-
void setLabel(const std::string &label) {
|
|
32
|
-
_label = label;
|
|
33
|
-
_instance.SetLabel(_label.c_str());
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
37
|
-
installGetter(runtime, prototype, "__brand", &GPUComputePipeline::getBrand);
|
|
38
|
-
installMethod(runtime, prototype, "getBindGroupLayout",
|
|
39
|
-
&GPUComputePipeline::getBindGroupLayout);
|
|
40
|
-
installGetterSetter(runtime, prototype, "label",
|
|
41
|
-
&GPUComputePipeline::getLabel,
|
|
42
|
-
&GPUComputePipeline::setLabel);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
inline const wgpu::ComputePipeline get() { return _instance; }
|
|
46
|
-
|
|
47
|
-
size_t getMemoryPressure() override {
|
|
48
|
-
// Compute pipelines contain compiled compute shader state and
|
|
49
|
-
// driver-specific optimized code
|
|
50
|
-
// Estimate: 16KB for a typical compute pipeline (single compute shader)
|
|
51
|
-
return 16 * 1024;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
private:
|
|
55
|
-
wgpu::ComputePipeline _instance;
|
|
56
|
-
std::string _label;
|
|
57
|
-
friend class GPUDevice;
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
} // namespace rnwgpu
|