@shopify/react-native-skia 2.9.1 → 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 +8 -46
- package/android/build.gradle +33 -0
- package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -2
- package/cpp/api/JsiNativeBuffer.h +23 -24
- package/cpp/api/JsiSkAnimatedImage.h +24 -25
- package/cpp/api/JsiSkAnimatedImageFactory.h +18 -17
- package/cpp/api/JsiSkApi.h +254 -96
- package/cpp/api/JsiSkCanvas.h +141 -266
- package/cpp/api/JsiSkColor.h +7 -5
- package/cpp/api/JsiSkColorFilter.h +15 -8
- package/cpp/api/JsiSkColorFilterFactory.h +49 -67
- package/cpp/api/JsiSkContourMeasure.h +31 -38
- package/cpp/api/JsiSkContourMeasureIter.h +20 -23
- package/cpp/api/JsiSkConverters.h +410 -0
- package/cpp/api/JsiSkData.h +13 -7
- package/cpp/api/JsiSkDataFactory.h +27 -32
- package/cpp/api/JsiSkFont.h +123 -192
- package/cpp/api/JsiSkFontMgr.h +33 -26
- package/cpp/api/JsiSkFontMgrFactory.h +12 -11
- package/cpp/api/JsiSkFontStyle.h +14 -12
- package/cpp/api/JsiSkImage.h +90 -79
- package/cpp/api/JsiSkImageFactory.h +93 -95
- package/cpp/api/JsiSkImageFilter.h +21 -11
- package/cpp/api/JsiSkImageFilterFactory.h +375 -629
- package/cpp/api/JsiSkImageInfo.h +25 -25
- package/cpp/api/JsiSkMaskFilter.h +21 -11
- package/cpp/api/JsiSkMaskFilterFactory.h +17 -17
- package/cpp/api/JsiSkMatrix.h +51 -88
- package/cpp/api/JsiSkNativeObjects.h +387 -0
- package/cpp/api/JsiSkPaint.h +104 -142
- package/cpp/api/JsiSkParagraph.h +54 -64
- package/cpp/api/JsiSkParagraphBuilder.h +43 -68
- package/cpp/api/JsiSkParagraphBuilderFactory.h +20 -24
- package/cpp/api/JsiSkPath.h +242 -350
- package/cpp/api/JsiSkPathBuilder.h +153 -273
- package/cpp/api/JsiSkPathBuilderFactory.h +19 -20
- package/cpp/api/JsiSkPathEffect.h +21 -11
- package/cpp/api/JsiSkPathEffectFactory.h +61 -80
- package/cpp/api/JsiSkPathFactory.h +148 -238
- package/cpp/api/JsiSkPicture.h +32 -27
- package/cpp/api/JsiSkPictureFactory.h +21 -26
- package/cpp/api/JsiSkPictureRecorder.h +27 -29
- package/cpp/api/JsiSkPoint.h +20 -23
- package/cpp/api/JsiSkRRect.h +24 -32
- package/cpp/api/JsiSkRSXform.h +31 -48
- package/cpp/api/JsiSkRect.h +40 -50
- package/cpp/api/JsiSkRuntimeEffect.h +85 -92
- package/cpp/api/JsiSkRuntimeEffectFactory.h +14 -18
- package/cpp/api/JsiSkRuntimeShaderBuilder.h +28 -30
- package/cpp/api/JsiSkSVG.h +15 -15
- package/cpp/api/JsiSkSVGFactory.h +17 -20
- package/cpp/api/JsiSkShader.h +15 -8
- package/cpp/api/JsiSkShaderFactory.h +159 -238
- package/cpp/api/JsiSkSkottie.h +131 -143
- package/cpp/api/JsiSkSurface.h +29 -32
- package/cpp/api/JsiSkSurfaceFactory.h +18 -20
- package/cpp/api/JsiSkTextBlob.h +15 -8
- package/cpp/api/JsiSkTextBlobFactory.h +40 -66
- package/cpp/api/JsiSkTypeface.h +25 -22
- package/cpp/api/JsiSkTypefaceFactory.h +17 -15
- package/cpp/api/JsiSkTypefaceFontProvider.h +43 -39
- package/cpp/api/JsiSkTypefaceFontProviderFactory.h +13 -12
- package/cpp/api/JsiSkVertices.h +23 -22
- package/cpp/api/JsiSkiaContext.h +22 -23
- package/cpp/api/JsiSkottieFactory.h +16 -17
- package/cpp/api/JsiVideo.h +43 -81
- package/cpp/api/recorder/Convertor.h +31 -61
- package/cpp/api/recorder/DataTypes.h +8 -16
- package/cpp/api/recorder/JsiRecorder.h +83 -55
- package/cpp/api/recorder/RNRecorder.h +1 -1
- package/cpp/jsi/BoxedNativeObject.h +146 -0
- package/cpp/{jsi2 → jsi}/EnumMapper.h +4 -1
- package/cpp/{jsi2 → jsi}/JSIConverter.h +0 -31
- package/cpp/{jsi2 → jsi}/NativeObject.h +131 -152
- package/cpp/jsi/RuntimeAwareCache.cpp +1 -1
- package/cpp/jsi/RuntimeAwareCache.h +26 -8
- package/cpp/jsi/ViewProperty.h +5 -11
- package/cpp/rnskia/RNDawnContext.h +18 -2
- package/cpp/rnskia/RNDawnInterop.cpp +19 -0
- package/cpp/rnskia/RNDawnUtils.h +18 -1
- package/cpp/rnskia/RNSkJsiViewApi.h +20 -11
- package/cpp/rnskia/RNSkManager.cpp +9 -168
- package/cpp/rnskia/RNSkPictureView.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +2 -0
- package/lib/commonjs/external/reanimated/renderHelpers.d.ts +15 -0
- package/lib/commonjs/external/reanimated/renderHelpers.js +30 -1
- package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/commonjs/mock/index.js +0 -1
- package/lib/commonjs/mock/index.js.map +1 -1
- package/lib/commonjs/skia/NativeSetup.js +4 -0
- package/lib/commonjs/skia/NativeSetup.js.map +1 -1
- package/lib/commonjs/skia/SkiaWorkletSerialization.d.ts +1 -0
- package/lib/commonjs/skia/SkiaWorkletSerialization.js +66 -0
- package/lib/commonjs/skia/SkiaWorkletSerialization.js.map +1 -0
- 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/sksg/Container.native.js +20 -1
- package/lib/commonjs/sksg/Container.native.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/external/reanimated/renderHelpers.d.ts +15 -0
- package/lib/module/external/reanimated/renderHelpers.js +29 -0
- package/lib/module/external/reanimated/renderHelpers.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/NativeSetup.js +4 -0
- package/lib/module/skia/NativeSetup.js.map +1 -1
- package/lib/module/skia/SkiaWorkletSerialization.d.ts +1 -0
- package/lib/module/skia/SkiaWorkletSerialization.js +59 -0
- package/lib/module/skia/SkiaWorkletSerialization.js.map +1 -0
- 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/sksg/Container.native.js +21 -2
- package/lib/module/sksg/Container.native.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/external/reanimated/renderHelpers.d.ts +2 -0
- package/lib/typescript/lib/commonjs/mock/index.d.ts +0 -1
- package/lib/typescript/lib/commonjs/skia/SkiaWorkletSerialization.d.ts +2 -0
- 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/external/reanimated/renderHelpers.d.ts +15 -0
- 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/SkiaWorkletSerialization.d.ts +1 -0
- 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/external/reanimated/renderHelpers.d.ts +15 -0
- package/lib/typescript/src/skia/SkiaWorkletSerialization.d.ts +1 -0
- 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 +8 -5
- package/react-native-skia.podspec +38 -5
- package/src/external/reanimated/renderHelpers.ts +30 -0
- package/src/mock/index.ts +0 -1
- package/src/skia/NativeSetup.ts +5 -0
- package/src/skia/SkiaWorkletSerialization.ts +67 -0
- 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/sksg/Container.native.ts +40 -2
- 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/api/JsiSkHostObjects.h +0 -257
- package/cpp/jsi/JsiHostObject.cpp +0 -137
- package/cpp/jsi/JsiHostObject.h +0 -385
- package/cpp/rnwgpu/ArrayBuffer.h +0 -117
- package/cpp/rnwgpu/Canvas.h +0 -50
- 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 -240
- 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 -614
- 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 -214
- 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
- /package/cpp/{jsi2 → jsi}/Promise.cpp +0 -0
- /package/cpp/{jsi2 → jsi}/Promise.h +0 -0
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
#include <android/native_window_jni.h>
|
|
2
|
-
#include <jni.h>
|
|
3
|
-
|
|
4
|
-
#ifdef SK_GRAPHITE
|
|
5
|
-
#include <memory>
|
|
6
|
-
#include <utility>
|
|
7
|
-
|
|
8
|
-
#include <ReactCommon/CallInvoker.h>
|
|
9
|
-
|
|
10
|
-
#include "rnskia/RNDawnContext.h"
|
|
11
|
-
#include "rnwgpu/SurfaceRegistry.h"
|
|
12
|
-
#include "rnwgpu/async/RuntimeContext.h"
|
|
13
|
-
#include "webgpu/webgpu_cpp.h"
|
|
14
|
-
|
|
15
|
-
namespace {
|
|
16
|
-
// Applies a surface attach latched by the platform UI thread (see
|
|
17
|
-
// SurfaceInfo::applyPendingAttach) from the JS thread. Surface attaches are
|
|
18
|
-
// normally adopted at the next frame boundary by whichever thread renders;
|
|
19
|
-
// this flush covers contexts that are not actively rendering (static
|
|
20
|
-
// content), so the last offscreen frame still makes it on screen. Mirrors
|
|
21
|
-
// react-native-webgpu's RNWebGPUManager::flushPendingSurfaceTransition.
|
|
22
|
-
void flushPendingSurfaceTransition(std::shared_ptr<rnwgpu::SurfaceInfo> info) {
|
|
23
|
-
if (info == nullptr) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
auto invoker = rnwgpu::async::RuntimeContext::mainCallInvoker();
|
|
27
|
-
if (invoker == nullptr) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
invoker->invokeAsync(
|
|
31
|
-
[info = std::move(info)] { info->applyPendingAttach(); });
|
|
32
|
-
}
|
|
33
|
-
} // namespace
|
|
34
|
-
#endif
|
|
35
|
-
|
|
36
|
-
extern "C" JNIEXPORT void JNICALL
|
|
37
|
-
Java_com_shopify_reactnative_skia_WebGPUView_onSurfaceCreate(
|
|
38
|
-
JNIEnv *env, jobject thiz, jobject jSurface, jint contextId, jfloat width,
|
|
39
|
-
jfloat height) {
|
|
40
|
-
#ifdef SK_GRAPHITE
|
|
41
|
-
// ANativeWindow_fromSurface acquires a reference; SurfaceInfo releases it
|
|
42
|
-
// (via the releaser below) once it is done with the window.
|
|
43
|
-
auto window = ANativeWindow_fromSurface(env, jSurface);
|
|
44
|
-
if (window == nullptr) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
auto ®istry = rnwgpu::SurfaceRegistry::getInstance();
|
|
48
|
-
auto &dawnContext = RNSkia::DawnContext::getInstance();
|
|
49
|
-
auto gpu = dawnContext.getWGPUInstance();
|
|
50
|
-
|
|
51
|
-
// Create surface from ANativeWindow
|
|
52
|
-
wgpu::SurfaceSourceAndroidNativeWindow androidSurfaceDesc;
|
|
53
|
-
androidSurfaceDesc.window = window;
|
|
54
|
-
wgpu::SurfaceDescriptor surfaceDescriptor;
|
|
55
|
-
surfaceDescriptor.nextInChain = &androidSurfaceDesc;
|
|
56
|
-
auto surface = gpu.CreateSurface(&surfaceDescriptor);
|
|
57
|
-
|
|
58
|
-
// Find-or-create + attach runs atomically under the registry lock so a
|
|
59
|
-
// concurrent destroyContext cannot orphan this surface.
|
|
60
|
-
auto info = registry.attachSurface(
|
|
61
|
-
contextId, gpu, static_cast<int>(width), static_cast<int>(height), window,
|
|
62
|
-
surface, [](void *nativeSurface) {
|
|
63
|
-
ANativeWindow_release(static_cast<ANativeWindow *>(nativeSurface));
|
|
64
|
-
});
|
|
65
|
-
// The attach is adopted at the next frame boundary by the rendering thread;
|
|
66
|
-
// schedule a flush so contexts that are not currently rendering still pick
|
|
67
|
-
// it up (and present their last offscreen frame).
|
|
68
|
-
flushPendingSurfaceTransition(info);
|
|
69
|
-
#endif
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
extern "C" JNIEXPORT void JNICALL
|
|
73
|
-
Java_com_shopify_reactnative_skia_WebGPUView_onSurfaceChanged(
|
|
74
|
-
JNIEnv *env, jobject thiz, jobject surface, jint contextId, jfloat width,
|
|
75
|
-
jfloat height) {
|
|
76
|
-
#ifdef SK_GRAPHITE
|
|
77
|
-
auto ®istry = rnwgpu::SurfaceRegistry::getInstance();
|
|
78
|
-
auto surfaceInfo = registry.getSurfaceInfo(contextId);
|
|
79
|
-
if (surfaceInfo) {
|
|
80
|
-
surfaceInfo->resize(static_cast<int>(width), static_cast<int>(height));
|
|
81
|
-
}
|
|
82
|
-
#endif
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
extern "C" JNIEXPORT void JNICALL
|
|
86
|
-
Java_com_shopify_reactnative_skia_WebGPUView_switchToOffscreenSurface(
|
|
87
|
-
JNIEnv *env, jobject thiz, jint contextId) {
|
|
88
|
-
#ifdef SK_GRAPHITE
|
|
89
|
-
auto ®istry = rnwgpu::SurfaceRegistry::getInstance();
|
|
90
|
-
auto surfaceInfo = registry.getSurfaceInfo(contextId);
|
|
91
|
-
if (surfaceInfo) {
|
|
92
|
-
surfaceInfo->switchToOffscreen();
|
|
93
|
-
}
|
|
94
|
-
#endif
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
extern "C" JNIEXPORT void JNICALL
|
|
98
|
-
Java_com_shopify_reactnative_skia_WebGPUView_onViewDestroyed(JNIEnv *env,
|
|
99
|
-
jobject thiz,
|
|
100
|
-
jint contextId) {
|
|
101
|
-
#ifdef SK_GRAPHITE
|
|
102
|
-
// The view dies with its Canvas (contextIds are never reused), so view
|
|
103
|
-
// teardown retires the registry entry. The JS-side cleanup
|
|
104
|
-
// (RNWebGPU.destroyContext) only handles entries that never had a native
|
|
105
|
-
// surface; see RNWebGPU::destroyContext for the ownership split.
|
|
106
|
-
auto ®istry = rnwgpu::SurfaceRegistry::getInstance();
|
|
107
|
-
if (auto info = registry.getSurfaceInfo(contextId)) {
|
|
108
|
-
info->detachSurface();
|
|
109
|
-
}
|
|
110
|
-
registry.removeSurfaceInfo(contextId);
|
|
111
|
-
#endif
|
|
112
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#ifdef SK_GRAPHITE
|
|
4
|
-
|
|
5
|
-
#include "rnwgpu/PlatformContext.h"
|
|
6
|
-
|
|
7
|
-
namespace rnwgpu {
|
|
8
|
-
|
|
9
|
-
class SkiaPlatformContext : public PlatformContext {
|
|
10
|
-
public:
|
|
11
|
-
SkiaPlatformContext() = default;
|
|
12
|
-
~SkiaPlatformContext() = default;
|
|
13
|
-
|
|
14
|
-
wgpu::Surface makeSurface(wgpu::Instance instance, void *surface, int width,
|
|
15
|
-
int height) override {
|
|
16
|
-
wgpu::SurfaceDescriptorFromAndroidNativeWindow androidSurfaceDesc;
|
|
17
|
-
androidSurfaceDesc.window = surface;
|
|
18
|
-
wgpu::SurfaceDescriptor surfaceDescriptor;
|
|
19
|
-
surfaceDescriptor.nextInChain = &androidSurfaceDesc;
|
|
20
|
-
return instance.CreateSurface(&surfaceDescriptor);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
} // namespace rnwgpu
|
|
25
|
-
|
|
26
|
-
#endif // SK_GRAPHITE
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
package com.shopify.reactnative.skia;
|
|
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
|
-
WebGPUViewAPI mApi;
|
|
14
|
-
|
|
15
|
-
public WebGPUSurfaceView(Context context, WebGPUViewAPI api) {
|
|
16
|
-
super(context);
|
|
17
|
-
mApi = api;
|
|
18
|
-
getHolder().addCallback(this);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@Override
|
|
22
|
-
protected void onDetachedFromWindow() {
|
|
23
|
-
super.onDetachedFromWindow();
|
|
24
|
-
// surfaceDestroyed() normally fires during detach as well; going offscreen
|
|
25
|
-
// is idempotent, so this is just a safety net for paths where it does not.
|
|
26
|
-
mApi.surfaceOffscreen();
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@Override
|
|
30
|
-
public void surfaceCreated(@NonNull SurfaceHolder holder) {
|
|
31
|
-
mApi.surfaceCreated(holder.getSurface());
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@Override
|
|
35
|
-
public void surfaceChanged(@NonNull SurfaceHolder holder, int format, int width, int height) {
|
|
36
|
-
mApi.surfaceChanged(holder.getSurface());
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@Override
|
|
40
|
-
public void surfaceDestroyed(@NonNull SurfaceHolder holder) {
|
|
41
|
-
mApi.surfaceOffscreen();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
package com.shopify.reactnative.skia;
|
|
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
|
-
@SuppressLint("ViewConstructor")
|
|
11
|
-
public class WebGPUTextureView extends TextureView implements TextureView.SurfaceTextureListener {
|
|
12
|
-
|
|
13
|
-
WebGPUViewAPI mApi;
|
|
14
|
-
private Surface mSurface;
|
|
15
|
-
|
|
16
|
-
public WebGPUTextureView(Context context, WebGPUViewAPI api) {
|
|
17
|
-
super(context);
|
|
18
|
-
mApi = api;
|
|
19
|
-
setOpaque(false);
|
|
20
|
-
setSurfaceTextureListener(this);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
@Override
|
|
24
|
-
public void onSurfaceTextureAvailable(@NonNull SurfaceTexture surfaceTexture, int width, int height) {
|
|
25
|
-
mSurface = new Surface(surfaceTexture);
|
|
26
|
-
mApi.surfaceCreated(mSurface);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@Override
|
|
30
|
-
public void onSurfaceTextureSizeChanged(@NonNull SurfaceTexture surfaceTexture, int width, int height) {
|
|
31
|
-
mApi.surfaceChanged(mSurface);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@Override
|
|
35
|
-
public boolean onSurfaceTextureDestroyed(@NonNull SurfaceTexture surfaceTexture) {
|
|
36
|
-
// Detach first (synchronous through JNI) so the native side has dropped
|
|
37
|
-
// its window reference before we release ours.
|
|
38
|
-
mApi.surfaceOffscreen();
|
|
39
|
-
if (mSurface != null) {
|
|
40
|
-
mSurface.release();
|
|
41
|
-
mSurface = null;
|
|
42
|
-
}
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
@Override
|
|
47
|
-
public void onSurfaceTextureUpdated(@NonNull SurfaceTexture surfaceTexture) {
|
|
48
|
-
// No implementation needed
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
package com.shopify.reactnative.skia;
|
|
2
|
-
|
|
3
|
-
import android.content.Context;
|
|
4
|
-
import android.view.Surface;
|
|
5
|
-
import android.view.View;
|
|
6
|
-
|
|
7
|
-
import com.facebook.proguard.annotations.DoNotStrip;
|
|
8
|
-
import com.facebook.react.views.view.ReactViewGroup;
|
|
9
|
-
|
|
10
|
-
public class WebGPUView extends ReactViewGroup implements WebGPUViewAPI {
|
|
11
|
-
|
|
12
|
-
private int mContextId;
|
|
13
|
-
private boolean mTransparent = false;
|
|
14
|
-
private View mView = null;
|
|
15
|
-
|
|
16
|
-
WebGPUView(Context context) {
|
|
17
|
-
super(context);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
public void setContextId(int contextId) {
|
|
21
|
-
mContextId = contextId;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
public void setTransparent(boolean value) {
|
|
25
|
-
Context ctx = getContext();
|
|
26
|
-
if (value != mTransparent || mView == null) {
|
|
27
|
-
if (mView != null) {
|
|
28
|
-
removeView(mView);
|
|
29
|
-
}
|
|
30
|
-
mTransparent = value;
|
|
31
|
-
if (mTransparent) {
|
|
32
|
-
mView = new WebGPUTextureView(ctx, this);
|
|
33
|
-
} else {
|
|
34
|
-
mView = new WebGPUSurfaceView(ctx, this);
|
|
35
|
-
}
|
|
36
|
-
addView(mView);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@Override
|
|
41
|
-
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
|
|
42
|
-
super.onLayout(changed, left, top, right, bottom);
|
|
43
|
-
if (mView != null) {
|
|
44
|
-
mView.layout(0, 0, this.getMeasuredWidth(), this.getMeasuredHeight());
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
@Override
|
|
49
|
-
public void surfaceCreated(Surface surface) {
|
|
50
|
-
float density = getResources().getDisplayMetrics().density;
|
|
51
|
-
float width = getWidth() / density;
|
|
52
|
-
float height = getHeight() / density;
|
|
53
|
-
onSurfaceCreate(surface, mContextId, width, height);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
@Override
|
|
57
|
-
public void surfaceChanged(Surface surface) {
|
|
58
|
-
float density = getResources().getDisplayMetrics().density;
|
|
59
|
-
float width = getWidth() / density;
|
|
60
|
-
float height = getHeight() / density;
|
|
61
|
-
onSurfaceChanged(surface, mContextId, width, height);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
@Override
|
|
65
|
-
public void surfaceOffscreen() {
|
|
66
|
-
switchToOffscreenSurface(mContextId);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Called from WebGPUViewManager.onDropViewInstance when React removes this
|
|
71
|
-
* view: the view dies with its Canvas, so it retires the registry entry.
|
|
72
|
-
*/
|
|
73
|
-
public void destroy() {
|
|
74
|
-
onViewDestroyed(mContextId);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
@DoNotStrip
|
|
78
|
-
private native void onSurfaceCreate(
|
|
79
|
-
Surface surface,
|
|
80
|
-
int contextId,
|
|
81
|
-
float width,
|
|
82
|
-
float height
|
|
83
|
-
);
|
|
84
|
-
|
|
85
|
-
@DoNotStrip
|
|
86
|
-
private native void onSurfaceChanged(
|
|
87
|
-
Surface surface,
|
|
88
|
-
int contextId,
|
|
89
|
-
float width,
|
|
90
|
-
float height
|
|
91
|
-
);
|
|
92
|
-
|
|
93
|
-
@DoNotStrip
|
|
94
|
-
private native void switchToOffscreenSurface(int contextId);
|
|
95
|
-
|
|
96
|
-
@DoNotStrip
|
|
97
|
-
private native void onViewDestroyed(int contextId);
|
|
98
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
package com.shopify.reactnative.skia;
|
|
2
|
-
|
|
3
|
-
import android.view.Surface;
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Surface lifecycle events a WebGPU child view reports. The registry entry
|
|
7
|
-
* itself is owned by the JS Canvas component (created lazily, removed via
|
|
8
|
-
* RNWebGPU.destroyContext on unmount); views only attach and detach surfaces.
|
|
9
|
-
* A detached context keeps rendering into an offscreen texture whose content
|
|
10
|
-
* is blitted onto the next attached surface.
|
|
11
|
-
*/
|
|
12
|
-
public interface WebGPUViewAPI {
|
|
13
|
-
|
|
14
|
-
void surfaceCreated(Surface surface);
|
|
15
|
-
|
|
16
|
-
void surfaceChanged(Surface surface);
|
|
17
|
-
|
|
18
|
-
void surfaceOffscreen();
|
|
19
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
package com.shopify.reactnative.skia;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.module.annotations.ReactModule;
|
|
4
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
5
|
-
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
6
|
-
import com.facebook.react.views.view.ReactViewGroup;
|
|
7
|
-
import com.facebook.react.views.view.ReactViewManager;
|
|
8
|
-
import com.facebook.react.viewmanagers.SkiaWebGPUViewManagerDelegate;
|
|
9
|
-
import com.facebook.react.viewmanagers.SkiaWebGPUViewManagerInterface;
|
|
10
|
-
|
|
11
|
-
import androidx.annotation.NonNull;
|
|
12
|
-
import androidx.annotation.Nullable;
|
|
13
|
-
|
|
14
|
-
@ReactModule(name = WebGPUViewManager.NAME)
|
|
15
|
-
public class WebGPUViewManager extends ReactViewManager implements SkiaWebGPUViewManagerInterface<WebGPUView> {
|
|
16
|
-
|
|
17
|
-
public static final String NAME = "SkiaWebGPUView";
|
|
18
|
-
|
|
19
|
-
protected SkiaWebGPUViewManagerDelegate mDelegate;
|
|
20
|
-
|
|
21
|
-
public WebGPUViewManager() {
|
|
22
|
-
mDelegate = new SkiaWebGPUViewManagerDelegate(this);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
protected SkiaWebGPUViewManagerDelegate getDelegate() {
|
|
26
|
-
return mDelegate;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@NonNull
|
|
30
|
-
@Override
|
|
31
|
-
public String getName() {
|
|
32
|
-
return NAME;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@NonNull
|
|
36
|
-
@Override
|
|
37
|
-
public WebGPUView createViewInstance(@NonNull ThemedReactContext context) {
|
|
38
|
-
return new WebGPUView(context);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
@Override
|
|
42
|
-
@ReactProp(name = "transparent")
|
|
43
|
-
public void setTransparent(WebGPUView view, boolean value) {
|
|
44
|
-
view.setTransparent(value);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
@Override
|
|
48
|
-
@ReactProp(name = "contextId")
|
|
49
|
-
public void setContextId(WebGPUView view, int value) {
|
|
50
|
-
view.setContextId(value);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
@Override
|
|
54
|
-
public void onDropViewInstance(@NonNull ReactViewGroup view) {
|
|
55
|
-
super.onDropViewInstance(view);
|
|
56
|
-
((WebGPUView) view).destroy();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
#ifdef SK_GRAPHITE
|
|
2
|
-
|
|
3
|
-
#import <CoreVideo/CoreVideo.h>
|
|
4
|
-
|
|
5
|
-
#include "rnwgpu/api/AppleNativeBuffer.h"
|
|
6
|
-
|
|
7
|
-
namespace rnwgpu {
|
|
8
|
-
|
|
9
|
-
void *GetIOSurfaceFromNativeBuffer(void *cvPixelBuffer, uint32_t *outWidth,
|
|
10
|
-
uint32_t *outHeight) {
|
|
11
|
-
auto pixelBuffer = reinterpret_cast<CVPixelBufferRef>(cvPixelBuffer);
|
|
12
|
-
if (pixelBuffer == nullptr) {
|
|
13
|
-
if (outWidth != nullptr) {
|
|
14
|
-
*outWidth = 0;
|
|
15
|
-
}
|
|
16
|
-
if (outHeight != nullptr) {
|
|
17
|
-
*outHeight = 0;
|
|
18
|
-
}
|
|
19
|
-
return nullptr;
|
|
20
|
-
}
|
|
21
|
-
if (outWidth != nullptr) {
|
|
22
|
-
*outWidth = static_cast<uint32_t>(CVPixelBufferGetWidth(pixelBuffer));
|
|
23
|
-
}
|
|
24
|
-
if (outHeight != nullptr) {
|
|
25
|
-
*outHeight = static_cast<uint32_t>(CVPixelBufferGetHeight(pixelBuffer));
|
|
26
|
-
}
|
|
27
|
-
// The IOSurface is owned by the CVPixelBuffer; we don't retain it here.
|
|
28
|
-
return CVPixelBufferGetIOSurface(pixelBuffer);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
} // namespace rnwgpu
|
|
32
|
-
|
|
33
|
-
#endif // SK_GRAPHITE
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#ifdef SK_GRAPHITE
|
|
4
|
-
|
|
5
|
-
#include "rnwgpu/PlatformContext.h"
|
|
6
|
-
|
|
7
|
-
namespace rnwgpu {
|
|
8
|
-
|
|
9
|
-
class SkiaPlatformContext : public PlatformContext {
|
|
10
|
-
public:
|
|
11
|
-
SkiaPlatformContext() = default;
|
|
12
|
-
~SkiaPlatformContext() = default;
|
|
13
|
-
|
|
14
|
-
wgpu::Surface makeSurface(wgpu::Instance instance, void *surface, int width,
|
|
15
|
-
int height) override;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
} // namespace rnwgpu
|
|
19
|
-
|
|
20
|
-
#endif // SK_GRAPHITE
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#ifdef SK_GRAPHITE
|
|
2
|
-
|
|
3
|
-
#include "SkiaPlatformContext.h"
|
|
4
|
-
|
|
5
|
-
#include <TargetConditionals.h>
|
|
6
|
-
|
|
7
|
-
namespace rnwgpu {
|
|
8
|
-
|
|
9
|
-
wgpu::Surface SkiaPlatformContext::makeSurface(wgpu::Instance instance,
|
|
10
|
-
void *surface, int width,
|
|
11
|
-
int height) {
|
|
12
|
-
wgpu::SurfaceSourceMetalLayer metalSurfaceDesc;
|
|
13
|
-
metalSurfaceDesc.layer = surface;
|
|
14
|
-
wgpu::SurfaceDescriptor surfaceDescriptor;
|
|
15
|
-
surfaceDescriptor.nextInChain = &metalSurfaceDesc;
|
|
16
|
-
return instance.CreateSurface(&surfaceDescriptor);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
} // namespace rnwgpu
|
|
20
|
-
|
|
21
|
-
#endif // SK_GRAPHITE
|
package/apple/SkiaWebGPUView.mm
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
-
|
|
3
|
-
#import "SkiaWebGPUView.h"
|
|
4
|
-
|
|
5
|
-
#import <react/renderer/components/rnskia/ComponentDescriptors.h>
|
|
6
|
-
#import <react/renderer/components/rnskia/EventEmitters.h>
|
|
7
|
-
#import <react/renderer/components/rnskia/Props.h>
|
|
8
|
-
#import <react/renderer/components/rnskia/RCTComponentViewHelpers.h>
|
|
9
|
-
|
|
10
|
-
#import "RCTFabricComponentsPlugins.h"
|
|
11
|
-
#import "WebGPUMetalView.h"
|
|
12
|
-
|
|
13
|
-
using namespace facebook::react;
|
|
14
|
-
|
|
15
|
-
@implementation SkiaWebGPUView
|
|
16
|
-
|
|
17
|
-
- (instancetype)initWithFrame:(CGRect)frame {
|
|
18
|
-
if (self = [super initWithFrame:frame]) {
|
|
19
|
-
static const auto defaultProps =
|
|
20
|
-
std::make_shared<const SkiaWebGPUViewProps>();
|
|
21
|
-
_props = defaultProps;
|
|
22
|
-
}
|
|
23
|
-
return self;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
+ (ComponentDescriptorProvider)componentDescriptorProvider {
|
|
27
|
-
return concreteComponentDescriptorProvider<
|
|
28
|
-
SkiaWebGPUViewComponentDescriptor>();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
- (void)prepareForRecycle {
|
|
32
|
-
[super prepareForRecycle];
|
|
33
|
-
/*
|
|
34
|
-
It's important to destroy the Metal Layer before releasing a view
|
|
35
|
-
to the recycled pool to prevent displaying outdated content from
|
|
36
|
-
the last usage in the new context.
|
|
37
|
-
*/
|
|
38
|
-
self.contentView = nil;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
- (WebGPUMetalView *)getContentView {
|
|
42
|
-
if (!self.contentView) {
|
|
43
|
-
self.contentView = [WebGPUMetalView new];
|
|
44
|
-
}
|
|
45
|
-
return (WebGPUMetalView *)self.contentView;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
- (void)updateProps:(const Props::Shared &)props
|
|
49
|
-
oldProps:(const Props::Shared &)oldProps {
|
|
50
|
-
const auto &oldViewProps =
|
|
51
|
-
*std::static_pointer_cast<const SkiaWebGPUViewProps>(_props);
|
|
52
|
-
const auto &newViewProps =
|
|
53
|
-
*std::static_pointer_cast<const SkiaWebGPUViewProps>(props);
|
|
54
|
-
|
|
55
|
-
if (newViewProps.contextId != oldViewProps.contextId) {
|
|
56
|
-
/*
|
|
57
|
-
The context is set only once during mounting the component
|
|
58
|
-
and never changes because it isn't available for users to modify.
|
|
59
|
-
*/
|
|
60
|
-
WebGPUMetalView *metalView = [WebGPUMetalView new];
|
|
61
|
-
self.contentView = metalView;
|
|
62
|
-
[metalView setContextId:@(newViewProps.contextId)];
|
|
63
|
-
[metalView configure];
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
[super updateProps:props oldProps:oldProps];
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
- (void)updateLayoutMetrics:(const LayoutMetrics &)layoutMetrics
|
|
70
|
-
oldLayoutMetrics:(const LayoutMetrics &)oldLayoutMetrics {
|
|
71
|
-
[super updateLayoutMetrics:layoutMetrics oldLayoutMetrics:oldLayoutMetrics];
|
|
72
|
-
[(WebGPUMetalView *)self.contentView update];
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
@end
|
|
76
|
-
|
|
77
|
-
Class<RCTComponentViewProtocol> SkiaWebGPUViewCls(void) {
|
|
78
|
-
return SkiaWebGPUView.class;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
#endif // RCT_NEW_ARCH_ENABLED
|