@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
package/cpp/jsi/JsiHostObject.h
DELETED
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <jsi/jsi.h>
|
|
4
|
-
|
|
5
|
-
#include <functional>
|
|
6
|
-
#include <map>
|
|
7
|
-
#include <memory>
|
|
8
|
-
#include <string>
|
|
9
|
-
#include <unordered_map>
|
|
10
|
-
#include <vector>
|
|
11
|
-
|
|
12
|
-
#include "RuntimeAwareCache.h"
|
|
13
|
-
|
|
14
|
-
#define STR_CAT_NX(A, B) A##B
|
|
15
|
-
#define STR_CAT(A, B) STR_CAT_NX(A, B)
|
|
16
|
-
#define STR_GET get_
|
|
17
|
-
#define STR_SET set_
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Creates a new Host function declaration as a lambda with all deps passed
|
|
21
|
-
* with implicit lambda capture clause
|
|
22
|
-
*/
|
|
23
|
-
#define JSI_HOST_FUNCTION_LAMBDA \
|
|
24
|
-
[=](jsi::Runtime & runtime, const jsi::Value &thisValue, \
|
|
25
|
-
const jsi::Value *arguments, size_t count) -> jsi::Value
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Creates a new Host function declaration
|
|
29
|
-
*/
|
|
30
|
-
#define JSI_HOST_FUNCTION(NAME) \
|
|
31
|
-
jsi::Value NAME(jsi::Runtime &runtime, const jsi::Value &thisValue, \
|
|
32
|
-
const jsi::Value *arguments, size_t count)
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Creates a new property setter function declaration
|
|
36
|
-
*/
|
|
37
|
-
#define JSI_PROPERTY_SET(NAME) \
|
|
38
|
-
void STR_CAT(STR_SET, NAME)(jsi::Runtime & runtime, const jsi::Value &value)
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Creates a new property getter function declaration
|
|
42
|
-
*/
|
|
43
|
-
#define JSI_PROPERTY_GET(NAME) \
|
|
44
|
-
jsi::Value STR_CAT(STR_GET, NAME)(jsi::Runtime & runtime)
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Creates a JSI export function declaration
|
|
48
|
-
*/
|
|
49
|
-
#define JSI_EXPORT_FUNC(CLASS, FUNCTION) \
|
|
50
|
-
{#FUNCTION, (jsi::Value(JsiHostObject::*)( \
|
|
51
|
-
jsi::Runtime & runtime, const jsi::Value &thisValue, \
|
|
52
|
-
const jsi::Value *arguments, size_t)) & \
|
|
53
|
-
CLASS::FUNCTION}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Creates a JSI export functions statement
|
|
57
|
-
*/
|
|
58
|
-
#define JSI_EXPORT_FUNCTIONS(...) \
|
|
59
|
-
const RNJsi::JsiFunctionMap &getExportedFunctionMap() override { \
|
|
60
|
-
static RNJsi::JsiFunctionMap map = {__VA_ARGS__}; \
|
|
61
|
-
return map; \
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Creates a JSI export getter declaration
|
|
66
|
-
*/
|
|
67
|
-
#define JSI_EXPORT_PROP_GET(CLASS, FUNCTION) \
|
|
68
|
-
{#FUNCTION, (jsi::Value(JsiHostObject::*)(jsi::Runtime & runtime)) & \
|
|
69
|
-
CLASS::STR_CAT(STR_GET, FUNCTION)}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Creates a JSI export getters statement
|
|
73
|
-
*/
|
|
74
|
-
#define JSI_EXPORT_PROPERTY_GETTERS(...) \
|
|
75
|
-
const RNJsi::JsiPropertyGettersMap &getExportedPropertyGettersMap() \
|
|
76
|
-
override { \
|
|
77
|
-
static RNJsi::JsiPropertyGettersMap map = {__VA_ARGS__}; \
|
|
78
|
-
return map; \
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Creates a JSI export setter declaration
|
|
83
|
-
*/
|
|
84
|
-
#define JSI_EXPORT_PROP_SET(CLASS, FUNCTION) \
|
|
85
|
-
{#FUNCTION, \
|
|
86
|
-
(void(JsiHostObject::*)(jsi::Runtime & runtime, const jsi::Value &)) & \
|
|
87
|
-
CLASS::STR_CAT(STR_SET, FUNCTION)}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Creates a JSI export setters statement
|
|
91
|
-
*/
|
|
92
|
-
#define JSI_EXPORT_PROPERTY_SETTERS(...) \
|
|
93
|
-
const RNJsi::JsiPropertySettersMap &getExportedPropertySettersMap() \
|
|
94
|
-
override { \
|
|
95
|
-
static RNJsi::JsiPropertySettersMap map = {__VA_ARGS__}; \
|
|
96
|
-
return map; \
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
namespace RNJsi {
|
|
100
|
-
|
|
101
|
-
namespace jsi = facebook::jsi;
|
|
102
|
-
|
|
103
|
-
using JsPropertyType = struct {
|
|
104
|
-
std::function<jsi::Value(jsi::Runtime &)> get;
|
|
105
|
-
std::function<void(jsi::Runtime &, const jsi::Value &)> set;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
class JsiHostObject;
|
|
109
|
-
|
|
110
|
-
using JsiFunctionMap =
|
|
111
|
-
std::unordered_map<std::string, jsi::Value (JsiHostObject::*)(
|
|
112
|
-
jsi::Runtime &, const jsi::Value &,
|
|
113
|
-
const jsi::Value *, size_t)>;
|
|
114
|
-
|
|
115
|
-
using JsiPropertyGettersMap =
|
|
116
|
-
std::unordered_map<std::string,
|
|
117
|
-
jsi::Value (JsiHostObject::*)(jsi::Runtime &)>;
|
|
118
|
-
|
|
119
|
-
using JsiPropertySettersMap =
|
|
120
|
-
std::unordered_map<std::string, void (JsiHostObject::*)(
|
|
121
|
-
jsi::Runtime &, const jsi::Value &)>;
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Base class for jsi host objects
|
|
125
|
-
*/
|
|
126
|
-
class JsiHostObject : public jsi::HostObject {
|
|
127
|
-
public:
|
|
128
|
-
JsiHostObject() = default;
|
|
129
|
-
~JsiHostObject() = default;
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Overridden jsi::HostObject set property method
|
|
133
|
-
* @param rt Runtime
|
|
134
|
-
* @param name Name of value to set
|
|
135
|
-
* @param value Value to set
|
|
136
|
-
*/
|
|
137
|
-
void set(jsi::Runtime &rt, const jsi::PropNameID &name,
|
|
138
|
-
const jsi::Value &value) override;
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Overridden jsi::HostObject get property method. Returns functions from
|
|
142
|
-
* the map of functions.
|
|
143
|
-
* @param runtime Runtime
|
|
144
|
-
* @param name Name of value to get
|
|
145
|
-
* @return Value
|
|
146
|
-
*/
|
|
147
|
-
jsi::Value get(jsi::Runtime &runtime, const jsi::PropNameID &name) override;
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Overridden getPropertyNames from jsi::HostObject. Returns all keys in the
|
|
151
|
-
* function and property maps
|
|
152
|
-
* @param runtime Runtime
|
|
153
|
-
* @return List of property names
|
|
154
|
-
*/
|
|
155
|
-
std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &runtime) override;
|
|
156
|
-
|
|
157
|
-
protected:
|
|
158
|
-
/**
|
|
159
|
-
Override to return map of name/functions
|
|
160
|
-
*/
|
|
161
|
-
virtual const RNJsi::JsiFunctionMap &getExportedFunctionMap() {
|
|
162
|
-
static const RNJsi::JsiFunctionMap empty;
|
|
163
|
-
return empty;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
Override to get property getters map of name/functions
|
|
168
|
-
*/
|
|
169
|
-
virtual const JsiPropertyGettersMap &getExportedPropertyGettersMap() {
|
|
170
|
-
static const JsiPropertyGettersMap empty;
|
|
171
|
-
return empty;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
Override to get property setters map of name/functions
|
|
176
|
-
*/
|
|
177
|
-
virtual const JsiPropertySettersMap &getExportedPropertySettersMap() {
|
|
178
|
-
static const JsiPropertySettersMap empty;
|
|
179
|
-
return empty;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Installs a function into the function map
|
|
184
|
-
*/
|
|
185
|
-
void installFunction(const std::string &name,
|
|
186
|
-
const jsi::HostFunctionType &function) {
|
|
187
|
-
_funcMap.emplace(name, function);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* Installs a property with get/set
|
|
192
|
-
* @param name Name of property to install
|
|
193
|
-
* @param get Getter function
|
|
194
|
-
* @param set Setter function
|
|
195
|
-
*/
|
|
196
|
-
void installProperty(
|
|
197
|
-
const std::string &name,
|
|
198
|
-
const std::function<jsi::Value(jsi::Runtime &)> &get,
|
|
199
|
-
const std::function<void(jsi::Runtime &, const jsi::Value &)> &set) {
|
|
200
|
-
_propMap.emplace(name, JsPropertyType{.get = get, .set = set});
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* Installs a property with only getter
|
|
205
|
-
* @param name Name of property to install
|
|
206
|
-
* @param get Getter function
|
|
207
|
-
*/
|
|
208
|
-
void installReadonlyProperty(
|
|
209
|
-
const std::string &name,
|
|
210
|
-
const std::function<jsi::Value(jsi::Runtime &)> &get) {
|
|
211
|
-
_propMap.emplace(name, JsPropertyType{
|
|
212
|
-
.get = get,
|
|
213
|
-
.set = [](jsi::Runtime &, const jsi::Value &) {},
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Installs a property which points to a given host object
|
|
219
|
-
* @param name Name of property to install
|
|
220
|
-
* @param hostObject Object to return
|
|
221
|
-
*/
|
|
222
|
-
void installReadonlyProperty(const std::string &name,
|
|
223
|
-
std::shared_ptr<jsi::HostObject> hostObject) {
|
|
224
|
-
_propMap.emplace(name, JsPropertyType{
|
|
225
|
-
.get =
|
|
226
|
-
[hostObject](jsi::Runtime &runtime) {
|
|
227
|
-
return jsi::Object::createFromHostObject(
|
|
228
|
-
runtime, hostObject);
|
|
229
|
-
},
|
|
230
|
-
.set = [](jsi::Runtime &, const jsi::Value &) {},
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
@Returns a reference to the argument at the given position in the arguments
|
|
236
|
-
array. Raises an error if the index is above the number of arguments.
|
|
237
|
-
@param runtime jsi::Runtime
|
|
238
|
-
@param arguments Arguments list
|
|
239
|
-
@param count Number of arguments in arguments list
|
|
240
|
-
@param index Index of parameter to return
|
|
241
|
-
*/
|
|
242
|
-
static const jsi::Value &getArgument(jsi::Runtime &runtime,
|
|
243
|
-
const jsi::Value *arguments,
|
|
244
|
-
size_t count, size_t index) {
|
|
245
|
-
if (index >= count) {
|
|
246
|
-
throw jsi::JSError(runtime, "Argument index out of bounds.");
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
return arguments[index];
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
Returns argument as number or throws
|
|
254
|
-
*/
|
|
255
|
-
static double getArgumentAsNumber(jsi::Runtime &runtime,
|
|
256
|
-
const jsi::Value *arguments, size_t count,
|
|
257
|
-
size_t index) {
|
|
258
|
-
const jsi::Value &value = getArgument(runtime, arguments, count, index);
|
|
259
|
-
if (!value.isNumber()) {
|
|
260
|
-
throw jsi::JSError(runtime,
|
|
261
|
-
"Expected type number for parameter at index " +
|
|
262
|
-
std::to_string(index));
|
|
263
|
-
}
|
|
264
|
-
return value.asNumber();
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
Returns argument as bool or throws
|
|
269
|
-
*/
|
|
270
|
-
static bool getArgumentAsBool(jsi::Runtime &runtime,
|
|
271
|
-
const jsi::Value *arguments, size_t count,
|
|
272
|
-
size_t index) {
|
|
273
|
-
const jsi::Value &value = getArgument(runtime, arguments, count, index);
|
|
274
|
-
if (!value.isBool()) {
|
|
275
|
-
throw jsi::JSError(runtime,
|
|
276
|
-
"Expected type boolean for parameter at index " +
|
|
277
|
-
std::to_string(index));
|
|
278
|
-
}
|
|
279
|
-
return value.getBool();
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
Returns argument as string or throws
|
|
284
|
-
*/
|
|
285
|
-
static jsi::String getArgumentAsString(jsi::Runtime &runtime,
|
|
286
|
-
const jsi::Value *arguments,
|
|
287
|
-
size_t count, size_t index) {
|
|
288
|
-
const jsi::Value &value = getArgument(runtime, arguments, count, index);
|
|
289
|
-
if (!value.isString()) {
|
|
290
|
-
throw jsi::JSError(runtime,
|
|
291
|
-
"Expected type string for parameter at index " +
|
|
292
|
-
std::to_string(index));
|
|
293
|
-
}
|
|
294
|
-
return value.asString(runtime);
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
/**
|
|
298
|
-
Returns argument as object or throws
|
|
299
|
-
*/
|
|
300
|
-
static jsi::Object getArgumentAsObject(jsi::Runtime &runtime,
|
|
301
|
-
const jsi::Value *arguments,
|
|
302
|
-
size_t count, size_t index) {
|
|
303
|
-
const jsi::Value &value = getArgument(runtime, arguments, count, index);
|
|
304
|
-
if (!value.isObject()) {
|
|
305
|
-
throw jsi::JSError(runtime,
|
|
306
|
-
"Expected type object for parameter at index " +
|
|
307
|
-
std::to_string(index));
|
|
308
|
-
}
|
|
309
|
-
return value.asObject(runtime);
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
/**
|
|
313
|
-
Returns argument as host object or throws
|
|
314
|
-
*/
|
|
315
|
-
template <typename T = HostObject>
|
|
316
|
-
static std::shared_ptr<T>
|
|
317
|
-
getArgumentAsHostObject(jsi::Runtime &runtime, const jsi::Value *arguments,
|
|
318
|
-
size_t count, size_t index) {
|
|
319
|
-
auto value = getArgumentAsObject(runtime, arguments, count, index);
|
|
320
|
-
if (!value.isHostObject(runtime)) {
|
|
321
|
-
throw jsi::JSError(runtime,
|
|
322
|
-
"Expected type host object for parameter at index " +
|
|
323
|
-
std::to_string(index));
|
|
324
|
-
}
|
|
325
|
-
return value.asHostObject<T>(runtime);
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
/**
|
|
329
|
-
Returns argument as host object or nullptr if the value is not a valid host
|
|
330
|
-
object of requested type
|
|
331
|
-
*/
|
|
332
|
-
template <typename T = HostObject>
|
|
333
|
-
static std::shared_ptr<T>
|
|
334
|
-
tryGetArgumentAsHostObject(jsi::Runtime &runtime, const jsi::Value *arguments,
|
|
335
|
-
size_t count, size_t index) {
|
|
336
|
-
const jsi::Value &value = getArgument(runtime, arguments, count, index);
|
|
337
|
-
if (!value.isObject()) {
|
|
338
|
-
return nullptr;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
auto object = value.asObject(runtime);
|
|
342
|
-
if (!object.isHostObject(runtime)) {
|
|
343
|
-
return nullptr;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
return object.asHostObject<T>(runtime);
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
/**
|
|
350
|
-
Returns argument as array or throws
|
|
351
|
-
*/
|
|
352
|
-
static jsi::Array getArgumentAsArray(jsi::Runtime &runtime,
|
|
353
|
-
const jsi::Value *arguments,
|
|
354
|
-
size_t count, size_t index) {
|
|
355
|
-
auto value = getArgumentAsObject(runtime, arguments, count, index);
|
|
356
|
-
if (!value.isArray(runtime)) {
|
|
357
|
-
throw jsi::JSError(runtime,
|
|
358
|
-
"Expected type array for parameter at index " +
|
|
359
|
-
std::to_string(index));
|
|
360
|
-
}
|
|
361
|
-
return value.asArray(runtime);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
/**
|
|
365
|
-
Returns argument as function or throws
|
|
366
|
-
*/
|
|
367
|
-
static jsi::Object getArgumentAsFunction(jsi::Runtime &runtime,
|
|
368
|
-
const jsi::Value *arguments,
|
|
369
|
-
size_t count, size_t index) {
|
|
370
|
-
auto value = getArgumentAsObject(runtime, arguments, count, index);
|
|
371
|
-
if (!value.isFunction(runtime)) {
|
|
372
|
-
throw jsi::JSError(runtime,
|
|
373
|
-
"Expected type function for parameter at index " +
|
|
374
|
-
std::to_string(index));
|
|
375
|
-
}
|
|
376
|
-
return value.asFunction(runtime);
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
private:
|
|
380
|
-
std::unordered_map<std::string, jsi::HostFunctionType> _funcMap;
|
|
381
|
-
std::unordered_map<std::string, JsPropertyType> _propMap;
|
|
382
|
-
|
|
383
|
-
RuntimeAwareCache<std::map<std::string, jsi::Function>> _hostFunctionCache;
|
|
384
|
-
};
|
|
385
|
-
} // namespace RNJsi
|
package/cpp/rnwgpu/ArrayBuffer.h
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
#include <jsi/jsi.h>
|
|
3
|
-
|
|
4
|
-
#include <cmath>
|
|
5
|
-
#include <cstdint>
|
|
6
|
-
#include <memory>
|
|
7
|
-
|
|
8
|
-
#include "jsi2/JSIConverter.h"
|
|
9
|
-
|
|
10
|
-
namespace rnwgpu {
|
|
11
|
-
|
|
12
|
-
namespace jsi = facebook::jsi;
|
|
13
|
-
|
|
14
|
-
struct ArrayBuffer : jsi::MutableBuffer {
|
|
15
|
-
ArrayBuffer(void *data, size_t size, size_t bytesPerElement)
|
|
16
|
-
: _data(data), _size(size), _bytesPerElement(bytesPerElement) {}
|
|
17
|
-
|
|
18
|
-
~ArrayBuffer() override {}
|
|
19
|
-
|
|
20
|
-
size_t size() const override { return _size; }
|
|
21
|
-
|
|
22
|
-
uint8_t *data() override { return static_cast<uint8_t *>(_data); }
|
|
23
|
-
|
|
24
|
-
void *_data;
|
|
25
|
-
size_t _size;
|
|
26
|
-
size_t _bytesPerElement;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
static std::shared_ptr<ArrayBuffer>
|
|
30
|
-
createArrayBufferFromJSI(jsi::Runtime &runtime,
|
|
31
|
-
const jsi::ArrayBuffer &arrayBuffer,
|
|
32
|
-
size_t bytesPerElement) {
|
|
33
|
-
auto size = arrayBuffer.size(runtime);
|
|
34
|
-
return std::make_shared<ArrayBuffer>(arrayBuffer.data(runtime), size,
|
|
35
|
-
bytesPerElement);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
template <> struct JSIConverter<std::shared_ptr<ArrayBuffer>> {
|
|
39
|
-
static std::shared_ptr<ArrayBuffer>
|
|
40
|
-
fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBound) {
|
|
41
|
-
if (arg.isObject()) {
|
|
42
|
-
auto obj = arg.getObject(runtime);
|
|
43
|
-
if (obj.isArrayBuffer(runtime)) {
|
|
44
|
-
return createArrayBufferFromJSI(runtime, obj.getArrayBuffer(runtime),
|
|
45
|
-
1);
|
|
46
|
-
}
|
|
47
|
-
if (obj.hasProperty(runtime, "buffer")) {
|
|
48
|
-
auto bufferProp = obj.getProperty(runtime, "buffer");
|
|
49
|
-
if (bufferProp.isObject() &&
|
|
50
|
-
bufferProp.getObject(runtime).isArrayBuffer(runtime)) {
|
|
51
|
-
auto buff = bufferProp.getObject(runtime);
|
|
52
|
-
auto arrayBuffer = buff.getArrayBuffer(runtime);
|
|
53
|
-
const size_t bufferSize = arrayBuffer.size(runtime);
|
|
54
|
-
|
|
55
|
-
// byteOffset / byteLength are user-readable JS properties, not values
|
|
56
|
-
// the engine guarantees (unlike Dawn's node binding, which reads them
|
|
57
|
-
// off the engine's typed-array view). Read them as doubles so we can
|
|
58
|
-
// reject negative, non-integral, NaN/Inf, or oversized values before
|
|
59
|
-
// they wrap around when cast to size_t.
|
|
60
|
-
const double byteOffsetValue =
|
|
61
|
-
obj.getProperty(runtime, "byteOffset").asNumber();
|
|
62
|
-
const double byteLengthValue =
|
|
63
|
-
obj.getProperty(runtime, "byteLength").asNumber();
|
|
64
|
-
|
|
65
|
-
auto isValidByteIndex = [](double value) {
|
|
66
|
-
return std::isfinite(value) && value >= 0.0 &&
|
|
67
|
-
value <= static_cast<double>(SIZE_MAX) &&
|
|
68
|
-
std::floor(value) == value;
|
|
69
|
-
};
|
|
70
|
-
if (!isValidByteIndex(byteOffsetValue) ||
|
|
71
|
-
!isValidByteIndex(byteLengthValue)) {
|
|
72
|
-
throw std::runtime_error(
|
|
73
|
-
"ArrayBuffer::fromJSI: invalid byteOffset/byteLength");
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const size_t byteOffset = static_cast<size_t>(byteOffsetValue);
|
|
77
|
-
const size_t byteLength = static_cast<size_t>(byteLengthValue);
|
|
78
|
-
|
|
79
|
-
// Overflow-safe bounds check: byteOffset + byteLength <= bufferSize.
|
|
80
|
-
if (byteOffset > bufferSize ||
|
|
81
|
-
byteLength > bufferSize - byteOffset) {
|
|
82
|
-
throw std::runtime_error(
|
|
83
|
-
"ArrayBuffer::fromJSI: view bounds [byteOffset, byteOffset + "
|
|
84
|
-
"byteLength) exceed the backing ArrayBuffer size");
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// BYTES_PER_ELEMENT is absent on a DataView; default to 1. A spoofed
|
|
88
|
-
// object could report 0 (or a negative/NaN value), so clamp to a
|
|
89
|
-
// minimum of 1 to avoid a later division by zero in writeBuffer.
|
|
90
|
-
size_t bytesPerElements = 1;
|
|
91
|
-
if (obj.hasProperty(runtime, "BYTES_PER_ELEMENT")) {
|
|
92
|
-
auto bpe = obj.getProperty(runtime, "BYTES_PER_ELEMENT");
|
|
93
|
-
if (bpe.isNumber()) {
|
|
94
|
-
const double value = bpe.asNumber();
|
|
95
|
-
if (std::isfinite(value) && value >= 1.0) {
|
|
96
|
-
bytesPerElements = static_cast<size_t>(value);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return std::make_shared<ArrayBuffer>(
|
|
102
|
-
arrayBuffer.data(runtime) + byteOffset, byteLength,
|
|
103
|
-
bytesPerElements);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
throw std::runtime_error("ArrayBuffer::fromJSI: argument is not an object "
|
|
108
|
-
"with an ArrayBuffer 'buffer' property");
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
static jsi::Value toJSI(jsi::Runtime &runtime,
|
|
112
|
-
std::shared_ptr<ArrayBuffer> arg) {
|
|
113
|
-
return jsi::ArrayBuffer(runtime, arg);
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
} // namespace rnwgpu
|
package/cpp/rnwgpu/Canvas.h
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
|
|
5
|
-
#include "jsi2/NativeObject.h"
|
|
6
|
-
|
|
7
|
-
namespace rnwgpu {
|
|
8
|
-
|
|
9
|
-
namespace jsi = facebook::jsi;
|
|
10
|
-
|
|
11
|
-
class Canvas : public NativeObject<Canvas> {
|
|
12
|
-
public:
|
|
13
|
-
static constexpr const char *CLASS_NAME = "Canvas";
|
|
14
|
-
|
|
15
|
-
Canvas(void *nativeSurface, int width, int height)
|
|
16
|
-
: NativeObject(CLASS_NAME), _nativeSurface(nativeSurface), _width(width),
|
|
17
|
-
_height(height), _clientWidth(width), _clientHeight(height) {}
|
|
18
|
-
|
|
19
|
-
void *getNativeSurface() { return _nativeSurface; }
|
|
20
|
-
|
|
21
|
-
int getWidth() { return _width; }
|
|
22
|
-
int getHeight() { return _height; }
|
|
23
|
-
|
|
24
|
-
void setWidth(int width) { _width = width; }
|
|
25
|
-
void setHeight(int height) { _height = height; }
|
|
26
|
-
|
|
27
|
-
int getClientWidth() { return _clientWidth; }
|
|
28
|
-
int getClientHeight() { return _clientHeight; }
|
|
29
|
-
|
|
30
|
-
void setClientWidth(int width) { _clientWidth = width; }
|
|
31
|
-
void setClientHeight(int height) { _clientHeight = height; }
|
|
32
|
-
|
|
33
|
-
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
34
|
-
installGetterSetter(runtime, prototype, "width", &Canvas::getWidth,
|
|
35
|
-
&Canvas::setWidth);
|
|
36
|
-
installGetterSetter(runtime, prototype, "height", &Canvas::getHeight,
|
|
37
|
-
&Canvas::setHeight);
|
|
38
|
-
installGetter(runtime, prototype, "clientWidth", &Canvas::getClientWidth);
|
|
39
|
-
installGetter(runtime, prototype, "clientHeight", &Canvas::getClientHeight);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
private:
|
|
43
|
-
void *_nativeSurface;
|
|
44
|
-
int _width;
|
|
45
|
-
int _height;
|
|
46
|
-
int _clientWidth;
|
|
47
|
-
int _clientHeight;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
} // namespace rnwgpu
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
|
|
5
|
-
#include "webgpu/webgpu_cpp.h"
|
|
6
|
-
|
|
7
|
-
namespace rnwgpu {
|
|
8
|
-
|
|
9
|
-
class PlatformContext {
|
|
10
|
-
public:
|
|
11
|
-
PlatformContext() = default;
|
|
12
|
-
virtual ~PlatformContext() = default;
|
|
13
|
-
|
|
14
|
-
virtual wgpu::Surface makeSurface(wgpu::Instance instance, void *surface,
|
|
15
|
-
int width, int height) = 0;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
} // namespace rnwgpu
|