@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/api/JsiSkRect.h
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
#include <jsi/jsi.h>
|
|
7
7
|
|
|
8
|
-
#include "
|
|
8
|
+
#include "JsiSkNativeObjects.h"
|
|
9
9
|
|
|
10
10
|
#pragma clang diagnostic push
|
|
11
11
|
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
@@ -18,50 +18,46 @@ namespace RNSkia {
|
|
|
18
18
|
|
|
19
19
|
namespace jsi = facebook::jsi;
|
|
20
20
|
|
|
21
|
-
class JsiSkRect : public
|
|
21
|
+
class JsiSkRect : public JsiSkWrappingSharedPtrNativeObject<JsiSkRect, SkRect> {
|
|
22
22
|
public:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
static constexpr const char *CLASS_NAME = "Rect";
|
|
24
|
+
|
|
25
|
+
double getX() { return static_cast<double>(getObject()->x()); }
|
|
26
|
+
double getY() { return static_cast<double>(getObject()->y()); }
|
|
27
|
+
double getWidth() { return static_cast<double>(getObject()->width()); }
|
|
28
|
+
double getHeight() { return static_cast<double>(getObject()->height()); }
|
|
29
|
+
double getLeft() { return static_cast<double>(getObject()->left()); }
|
|
30
|
+
double getTop() { return static_cast<double>(getObject()->top()); }
|
|
31
|
+
double getRight() { return static_cast<double>(getObject()->right()); }
|
|
32
|
+
double getBottom() { return static_cast<double>(getObject()->bottom()); }
|
|
33
|
+
|
|
34
|
+
void setXYWH(double x, double y, double width, double height) {
|
|
35
|
+
getObject()->setXYWH(x, y, width, height);
|
|
28
36
|
}
|
|
29
|
-
JSI_PROPERTY_GET(left) { return static_cast<double>(getObject()->left()); }
|
|
30
|
-
JSI_PROPERTY_GET(top) { return static_cast<double>(getObject()->top()); }
|
|
31
|
-
JSI_PROPERTY_GET(right) { return static_cast<double>(getObject()->right()); }
|
|
32
|
-
JSI_PROPERTY_GET(bottom) {
|
|
33
|
-
return static_cast<double>(getObject()->bottom());
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
JSI_API_TYPENAME("Rect");
|
|
37
|
-
|
|
38
|
-
JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkRect, x),
|
|
39
|
-
JSI_EXPORT_PROP_GET(JsiSkRect, y),
|
|
40
|
-
JSI_EXPORT_PROP_GET(JsiSkRect, width),
|
|
41
|
-
JSI_EXPORT_PROP_GET(JsiSkRect, height),
|
|
42
|
-
JSI_EXPORT_PROP_GET(JsiSkRect, __typename__))
|
|
43
37
|
|
|
44
|
-
|
|
45
|
-
getObject()->
|
|
46
|
-
arguments[2].asNumber(), arguments[3].asNumber());
|
|
47
|
-
return jsi::Value::undefined();
|
|
38
|
+
void setLTRB(double left, double top, double right, double bottom) {
|
|
39
|
+
getObject()->setLTRB(left, top, right, bottom);
|
|
48
40
|
}
|
|
49
41
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
42
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
43
|
+
installCommon(runtime, prototype);
|
|
44
|
+
installGetter(runtime, prototype, "x", &JsiSkRect::getX);
|
|
45
|
+
installGetter(runtime, prototype, "y", &JsiSkRect::getY);
|
|
46
|
+
installGetter(runtime, prototype, "width", &JsiSkRect::getWidth);
|
|
47
|
+
installGetter(runtime, prototype, "height", &JsiSkRect::getHeight);
|
|
48
|
+
installGetter(runtime, prototype, "left", &JsiSkRect::getLeft);
|
|
49
|
+
installGetter(runtime, prototype, "top", &JsiSkRect::getTop);
|
|
50
|
+
installGetter(runtime, prototype, "right", &JsiSkRect::getRight);
|
|
51
|
+
installGetter(runtime, prototype, "bottom", &JsiSkRect::getBottom);
|
|
52
|
+
installMethod(runtime, prototype, "setXYWH", &JsiSkRect::setXYWH);
|
|
53
|
+
installMethod(runtime, prototype, "setLTRB", &JsiSkRect::setLTRB);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRect, setXYWH),
|
|
57
|
-
JSI_EXPORT_FUNC(JsiSkRect, setLTRB),
|
|
58
|
-
JSI_EXPORT_FUNC(JsiSkRect, dispose))
|
|
59
|
-
|
|
60
56
|
/**
|
|
61
57
|
Constructor
|
|
62
58
|
*/
|
|
63
59
|
JsiSkRect(std::shared_ptr<RNSkPlatformContext> context, const SkRect &rect)
|
|
64
|
-
:
|
|
60
|
+
: JsiSkWrappingSharedPtrNativeObject<JsiSkRect, SkRect>(
|
|
65
61
|
std::move(context), std::make_shared<SkRect>(rect)) {}
|
|
66
62
|
|
|
67
63
|
/**
|
|
@@ -70,8 +66,9 @@ public:
|
|
|
70
66
|
static std::shared_ptr<SkRect> fromValue(jsi::Runtime &runtime,
|
|
71
67
|
const jsi::Value &obj) {
|
|
72
68
|
const auto &object = obj.asObject(runtime);
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
auto rect = tryGetJsiObject<JsiSkRect>(runtime, object);
|
|
70
|
+
if (rect) {
|
|
71
|
+
return rect->getObject();
|
|
75
72
|
} else {
|
|
76
73
|
auto x = object.getProperty(runtime, "x").asNumber();
|
|
77
74
|
auto y = object.getProperty(runtime, "y").asNumber();
|
|
@@ -87,25 +84,20 @@ public:
|
|
|
87
84
|
static jsi::Value toValue(jsi::Runtime &runtime,
|
|
88
85
|
std::shared_ptr<RNSkPlatformContext> context,
|
|
89
86
|
const SkRect &rect) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
context);
|
|
87
|
+
return makeJsiObject(runtime,
|
|
88
|
+
std::make_shared<JsiSkRect>(std::move(context), rect));
|
|
93
89
|
}
|
|
94
90
|
static jsi::Value toValue(jsi::Runtime &runtime,
|
|
95
91
|
std::shared_ptr<RNSkPlatformContext> context,
|
|
96
92
|
SkRect &&rect) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, rectObj,
|
|
100
|
-
context);
|
|
93
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkRect>(
|
|
94
|
+
std::move(context), std::move(rect)));
|
|
101
95
|
}
|
|
102
96
|
|
|
103
|
-
size_t getMemoryPressure()
|
|
97
|
+
size_t getMemoryPressure() override {
|
|
104
98
|
return std::max(sizeof(SkRect), kMinMemoryPressure);
|
|
105
99
|
}
|
|
106
100
|
|
|
107
|
-
std::string getObjectType() const override { return "JsiSkRect"; }
|
|
108
|
-
|
|
109
101
|
/**
|
|
110
102
|
* Creates the function for construction a new instance of the SkRect
|
|
111
103
|
* wrapper
|
|
@@ -122,10 +114,8 @@ public:
|
|
|
122
114
|
arguments[2].asNumber(), arguments[3].asNumber());
|
|
123
115
|
|
|
124
116
|
// Return the newly constructed object
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, rectObj,
|
|
128
|
-
context);
|
|
117
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkRect>(
|
|
118
|
+
std::move(context), std::move(rect)));
|
|
129
119
|
};
|
|
130
120
|
}
|
|
131
121
|
};
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
#include <utility>
|
|
6
6
|
#include <vector>
|
|
7
7
|
|
|
8
|
-
#include "
|
|
8
|
+
#include "JsiSkConverters.h"
|
|
9
9
|
#include "JsiSkMatrix.h"
|
|
10
|
+
#include "JsiSkNativeObjects.h"
|
|
10
11
|
#include "JsiSkShader.h"
|
|
11
12
|
|
|
12
13
|
#include <jsi/jsi.h>
|
|
@@ -36,115 +37,111 @@ struct RuntimeEffectUniform {
|
|
|
36
37
|
bool isInteger;
|
|
37
38
|
};
|
|
38
39
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
auto shaderObj =
|
|
55
|
-
std::make_shared<JsiSkShader>(getContext(), std::move(shader));
|
|
56
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shaderObj,
|
|
57
|
-
getContext());
|
|
40
|
+
} // namespace RNSkia
|
|
41
|
+
|
|
42
|
+
namespace rnwgpu {
|
|
43
|
+
|
|
44
|
+
// RuntimeEffectUniform -> {columns, rows, slot, isInteger}
|
|
45
|
+
template <> struct JSIConverter<RNSkia::RuntimeEffectUniform> {
|
|
46
|
+
static jsi::Value toJSI(jsi::Runtime &runtime,
|
|
47
|
+
const RNSkia::RuntimeEffectUniform &u) {
|
|
48
|
+
jsi::Object result(runtime);
|
|
49
|
+
result.setProperty(runtime, "columns", u.columns);
|
|
50
|
+
result.setProperty(runtime, "rows", u.rows);
|
|
51
|
+
result.setProperty(runtime, "slot", u.slot);
|
|
52
|
+
result.setProperty(runtime, "isInteger", u.isInteger);
|
|
53
|
+
return result;
|
|
58
54
|
}
|
|
55
|
+
};
|
|
59
56
|
|
|
60
|
-
|
|
61
|
-
auto uniforms = castUniforms(runtime, arguments[0]);
|
|
62
|
-
|
|
63
|
-
// Children
|
|
64
|
-
std::vector<sk_sp<SkShader>> children;
|
|
65
|
-
auto jsiChildren = arguments[1].asObject(runtime).asArray(runtime);
|
|
66
|
-
auto jsiChildCount = jsiChildren.size(runtime);
|
|
67
|
-
children.reserve(jsiChildCount);
|
|
68
|
-
for (int i = 0; i < jsiChildCount; i++) {
|
|
69
|
-
auto shader = jsiChildren.getValueAtIndex(runtime, i)
|
|
70
|
-
.asObject(runtime)
|
|
71
|
-
.asHostObject<JsiSkShader>(runtime)
|
|
72
|
-
->getObject();
|
|
73
|
-
children.push_back(shader);
|
|
74
|
-
}
|
|
57
|
+
} // namespace rnwgpu
|
|
75
58
|
|
|
76
|
-
|
|
77
|
-
count >= 3 && !arguments[2].isUndefined() && !arguments[2].isNull()
|
|
78
|
-
? JsiSkMatrix::fromValue(runtime, arguments[2]).get()
|
|
79
|
-
: nullptr;
|
|
59
|
+
namespace RNSkia {
|
|
80
60
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
61
|
+
class JsiSkRuntimeEffect
|
|
62
|
+
: public JsiSkWrappingSkPtrNativeObject<JsiSkRuntimeEffect,
|
|
63
|
+
SkRuntimeEffect> {
|
|
64
|
+
public:
|
|
65
|
+
static constexpr const char *CLASS_NAME = "RuntimeEffect";
|
|
66
|
+
|
|
67
|
+
std::shared_ptr<JsiSkShader>
|
|
68
|
+
makeShader(std::vector<double> uniformValues,
|
|
69
|
+
JsiOptional<std::shared_ptr<SkMatrix>> matrix) {
|
|
70
|
+
auto uniforms = castUniforms(uniformValues);
|
|
71
|
+
auto shader = getObject()->makeShader(
|
|
72
|
+
std::move(uniforms), nullptr, 0,
|
|
73
|
+
matrix.has_value() ? matrix->get() : nullptr);
|
|
74
|
+
return std::make_shared<JsiSkShader>(getContext(), std::move(shader));
|
|
75
|
+
}
|
|
84
76
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
77
|
+
std::shared_ptr<JsiSkShader>
|
|
78
|
+
makeShaderWithChildren(std::vector<double> uniformValues,
|
|
79
|
+
std::vector<sk_sp<SkShader>> children,
|
|
80
|
+
JsiOptional<std::shared_ptr<SkMatrix>> matrix) {
|
|
81
|
+
auto uniforms = castUniforms(uniformValues);
|
|
82
|
+
auto shader = getObject()->makeShader(
|
|
83
|
+
std::move(uniforms), children.data(), children.size(),
|
|
84
|
+
matrix.has_value() ? matrix->get() : nullptr);
|
|
85
|
+
return std::make_shared<JsiSkShader>(getContext(), std::move(shader));
|
|
89
86
|
}
|
|
90
87
|
|
|
91
|
-
|
|
88
|
+
int getUniformCount() {
|
|
92
89
|
return static_cast<int>(getObject()->uniforms().size());
|
|
93
90
|
}
|
|
94
91
|
|
|
95
|
-
|
|
92
|
+
int getUniformFloatCount() {
|
|
96
93
|
return static_cast<int>(getObject()->uniformSize() / sizeof(float));
|
|
97
94
|
}
|
|
98
95
|
|
|
99
|
-
|
|
100
|
-
auto i = static_cast<int>(arguments[0].asNumber());
|
|
96
|
+
std::string getUniformName(int i) {
|
|
101
97
|
if (i < 0 || i >= getObject()->uniforms().size()) {
|
|
102
|
-
throw
|
|
98
|
+
throw std::runtime_error("invalid uniform index");
|
|
103
99
|
}
|
|
104
100
|
auto it = getObject()->uniforms().begin() + i;
|
|
105
|
-
return
|
|
101
|
+
return std::string(it->name);
|
|
106
102
|
}
|
|
107
103
|
|
|
108
|
-
|
|
109
|
-
auto i = static_cast<int>(arguments[0].asNumber());
|
|
104
|
+
RuntimeEffectUniform getUniform(int i) {
|
|
110
105
|
if (i < 0 || i >= getObject()->uniforms().size()) {
|
|
111
|
-
throw
|
|
106
|
+
throw std::runtime_error("invalid uniform index");
|
|
112
107
|
}
|
|
113
108
|
auto it = getObject()->uniforms().begin() + i;
|
|
114
|
-
|
|
115
|
-
RuntimeEffectUniform su = fromUniform(*it);
|
|
116
|
-
result.setProperty(runtime, "columns", su.columns);
|
|
117
|
-
result.setProperty(runtime, "rows", su.rows);
|
|
118
|
-
result.setProperty(runtime, "slot", su.slot);
|
|
119
|
-
result.setProperty(runtime, "isInteger", su.isInteger);
|
|
120
|
-
return result;
|
|
109
|
+
return fromUniform(*it);
|
|
121
110
|
}
|
|
122
111
|
|
|
123
|
-
|
|
124
|
-
|
|
112
|
+
std::string source() { return std::string(getObject()->source()); }
|
|
113
|
+
|
|
114
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
115
|
+
installCommon(runtime, prototype);
|
|
116
|
+
installMethod(runtime, prototype, "makeShader",
|
|
117
|
+
&JsiSkRuntimeEffect::makeShader);
|
|
118
|
+
installMethod(runtime, prototype, "makeShaderWithChildren",
|
|
119
|
+
&JsiSkRuntimeEffect::makeShaderWithChildren);
|
|
120
|
+
installMethod(runtime, prototype, "getUniformCount",
|
|
121
|
+
&JsiSkRuntimeEffect::getUniformCount);
|
|
122
|
+
installMethod(runtime, prototype, "getUniformFloatCount",
|
|
123
|
+
&JsiSkRuntimeEffect::getUniformFloatCount);
|
|
124
|
+
installMethod(runtime, prototype, "getUniformName",
|
|
125
|
+
&JsiSkRuntimeEffect::getUniformName);
|
|
126
|
+
installMethod(runtime, prototype, "getUniform",
|
|
127
|
+
&JsiSkRuntimeEffect::getUniform);
|
|
128
|
+
installMethod(runtime, prototype, "source", &JsiSkRuntimeEffect::source);
|
|
125
129
|
}
|
|
126
130
|
|
|
127
|
-
EXPORT_JSI_API_TYPENAME(JsiSkRuntimeEffect, RuntimeEffect)
|
|
128
|
-
|
|
129
|
-
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRuntimeEffect, makeShader),
|
|
130
|
-
JSI_EXPORT_FUNC(JsiSkRuntimeEffect,
|
|
131
|
-
makeShaderWithChildren),
|
|
132
|
-
JSI_EXPORT_FUNC(JsiSkRuntimeEffect, getUniformCount),
|
|
133
|
-
JSI_EXPORT_FUNC(JsiSkRuntimeEffect,
|
|
134
|
-
getUniformFloatCount),
|
|
135
|
-
JSI_EXPORT_FUNC(JsiSkRuntimeEffect, getUniformName),
|
|
136
|
-
JSI_EXPORT_FUNC(JsiSkRuntimeEffect, getUniform),
|
|
137
|
-
JSI_EXPORT_FUNC(JsiSkRuntimeEffect, source),
|
|
138
|
-
JSI_EXPORT_FUNC(JsiSkRuntimeEffect, dispose))
|
|
139
|
-
|
|
140
131
|
JsiSkRuntimeEffect(std::shared_ptr<RNSkPlatformContext> context,
|
|
141
132
|
sk_sp<SkRuntimeEffect> rt)
|
|
142
|
-
:
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
133
|
+
: JsiSkWrappingSkPtrNativeObject<JsiSkRuntimeEffect, SkRuntimeEffect>(
|
|
134
|
+
std::move(context), std::move(rt)) {}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
Returns the underlying object from a host object of this type
|
|
138
|
+
*/
|
|
139
|
+
static sk_sp<SkRuntimeEffect> fromValue(jsi::Runtime &runtime,
|
|
140
|
+
const jsi::Value &obj) {
|
|
141
|
+
return getJsiObject<JsiSkRuntimeEffect>(runtime, obj)->getObject();
|
|
142
|
+
}
|
|
146
143
|
|
|
147
|
-
|
|
144
|
+
size_t getMemoryPressure() override { return 4096; }
|
|
148
145
|
|
|
149
146
|
static RuntimeEffectUniform fromUniform(const SkRuntimeEffect::Uniform &u) {
|
|
150
147
|
RuntimeEffectUniform su;
|
|
@@ -197,17 +194,13 @@ public:
|
|
|
197
194
|
}
|
|
198
195
|
|
|
199
196
|
private:
|
|
200
|
-
sk_sp<SkData> castUniforms(
|
|
201
|
-
auto jsiUniforms = value.asObject(runtime).asArray(runtime);
|
|
202
|
-
auto jsiUniformsSize = jsiUniforms.size(runtime);
|
|
203
|
-
|
|
197
|
+
sk_sp<SkData> castUniforms(const std::vector<double> &values) {
|
|
204
198
|
// verify size of input uniforms
|
|
205
|
-
if (
|
|
206
|
-
std::
|
|
199
|
+
if (values.size() * sizeof(float) != getObject()->uniformSize()) {
|
|
200
|
+
throw std::runtime_error(
|
|
207
201
|
"Uniforms size differs from effect's uniform size. Received " +
|
|
208
|
-
std::to_string(
|
|
209
|
-
std::to_string(getObject()->uniformSize() / sizeof(float));
|
|
210
|
-
throw jsi::JSError(runtime, msg.c_str());
|
|
202
|
+
std::to_string(values.size()) + " expected " +
|
|
203
|
+
std::to_string(getObject()->uniformSize() / sizeof(float)));
|
|
211
204
|
}
|
|
212
205
|
|
|
213
206
|
auto uniforms = SkData::MakeUninitialized(getObject()->uniformSize());
|
|
@@ -219,7 +212,7 @@ private:
|
|
|
219
212
|
RuntimeEffectUniform reu = fromUniform(*it);
|
|
220
213
|
for (std::size_t j = 0; j < reu.columns * reu.rows; ++j) {
|
|
221
214
|
const std::size_t offset = reu.slot + j;
|
|
222
|
-
float fValue =
|
|
215
|
+
float fValue = static_cast<float>(values[offset]);
|
|
223
216
|
int iValue = static_cast<int>(fValue);
|
|
224
217
|
auto value = reu.isInteger ? SkBits2Float(iValue) : fValue;
|
|
225
218
|
memcpy(SkTAddOffset<void>(uniforms->writable_data(),
|
|
@@ -6,43 +6,39 @@
|
|
|
6
6
|
|
|
7
7
|
#include <jsi/jsi.h>
|
|
8
8
|
|
|
9
|
-
#include "
|
|
9
|
+
#include "JsiSkNativeObjects.h"
|
|
10
10
|
#include "JsiSkRuntimeEffect.h"
|
|
11
11
|
|
|
12
12
|
namespace RNSkia {
|
|
13
13
|
|
|
14
14
|
namespace jsi = facebook::jsi;
|
|
15
15
|
|
|
16
|
-
class JsiSkRuntimeEffectFactory
|
|
16
|
+
class JsiSkRuntimeEffectFactory
|
|
17
|
+
: public JsiSkNativeObject<JsiSkRuntimeEffectFactory> {
|
|
17
18
|
public:
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
static constexpr const char *CLASS_NAME = "RuntimeEffectFactory";
|
|
20
|
+
|
|
21
|
+
std::shared_ptr<JsiSkRuntimeEffect> Make(std::string sksl) {
|
|
20
22
|
auto result = SkRuntimeEffect::MakeForShader(SkString(sksl));
|
|
21
23
|
auto effect = result.effect;
|
|
22
24
|
auto errorText = result.errorText;
|
|
23
25
|
if (!effect) {
|
|
24
|
-
throw
|
|
25
|
-
|
|
26
|
-
.c_str());
|
|
27
|
-
return jsi::Value::null();
|
|
26
|
+
throw std::runtime_error("Error in sksl:\n" +
|
|
27
|
+
std::string(errorText.c_str()));
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, runtimeEffect,
|
|
32
|
-
getContext());
|
|
29
|
+
return std::make_shared<JsiSkRuntimeEffect>(getContext(),
|
|
30
|
+
std::move(effect));
|
|
33
31
|
}
|
|
34
32
|
|
|
35
|
-
size_t getMemoryPressure()
|
|
33
|
+
size_t getMemoryPressure() override { return 1024; }
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
36
|
+
installMethod(runtime, prototype, "Make", &JsiSkRuntimeEffectFactory::Make);
|
|
39
37
|
}
|
|
40
38
|
|
|
41
|
-
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRuntimeEffectFactory, Make))
|
|
42
|
-
|
|
43
39
|
explicit JsiSkRuntimeEffectFactory(
|
|
44
40
|
std::shared_ptr<RNSkPlatformContext> context)
|
|
45
|
-
:
|
|
41
|
+
: JsiSkNativeObject<JsiSkRuntimeEffectFactory>(std::move(context)) {}
|
|
46
42
|
};
|
|
47
43
|
|
|
48
44
|
} // namespace RNSkia
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
3
|
#include <memory>
|
|
4
|
+
#include <string>
|
|
4
5
|
#include <utility>
|
|
5
6
|
#include <vector>
|
|
6
7
|
|
|
7
8
|
#include <jsi/jsi.h>
|
|
8
9
|
|
|
9
|
-
#include "
|
|
10
|
+
#include "JsiSkNativeObjects.h"
|
|
10
11
|
|
|
11
12
|
#pragma clang diagnostic push
|
|
12
13
|
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
@@ -21,34 +22,39 @@ namespace RNSkia {
|
|
|
21
22
|
namespace jsi = facebook::jsi;
|
|
22
23
|
|
|
23
24
|
class JsiSkRuntimeShaderBuilder
|
|
24
|
-
: public
|
|
25
|
+
: public JsiSkWrappingSharedPtrNativeObject<JsiSkRuntimeShaderBuilder,
|
|
26
|
+
SkRuntimeShaderBuilder> {
|
|
25
27
|
public:
|
|
28
|
+
static constexpr const char *CLASS_NAME = "RuntimeShaderBuilder";
|
|
29
|
+
|
|
26
30
|
/**
|
|
27
31
|
Constructor
|
|
28
32
|
*/
|
|
29
33
|
JsiSkRuntimeShaderBuilder(std::shared_ptr<RNSkPlatformContext> context,
|
|
30
34
|
const SkRuntimeShaderBuilder &rt)
|
|
31
|
-
:
|
|
35
|
+
: JsiSkWrappingSharedPtrNativeObject<JsiSkRuntimeShaderBuilder,
|
|
36
|
+
SkRuntimeShaderBuilder>(
|
|
32
37
|
std::move(context), std::make_shared<SkRuntimeShaderBuilder>(rt)) {}
|
|
33
38
|
|
|
34
|
-
|
|
35
|
-
auto name = arguments[0].asString(runtime).utf8(runtime);
|
|
36
|
-
auto jsiValue = arguments[1].asObject(runtime).asArray(runtime);
|
|
37
|
-
auto size = jsiValue.size(runtime);
|
|
38
|
-
std::vector<SkScalar> value;
|
|
39
|
-
value.reserve(size);
|
|
40
|
-
for (int i = 0; i < size; i++) {
|
|
41
|
-
auto e = jsiValue.getValueAtIndex(runtime, i).asNumber();
|
|
42
|
-
value.push_back(e);
|
|
43
|
-
}
|
|
39
|
+
void setUniform(std::string name, std::vector<float> value) {
|
|
44
40
|
getObject()
|
|
45
41
|
->uniform(name.c_str())
|
|
46
|
-
.set(value.data(), static_cast<int>(size));
|
|
47
|
-
|
|
42
|
+
.set(value.data(), static_cast<int>(value.size()));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
46
|
+
installCommon(runtime, prototype);
|
|
47
|
+
installMethod(runtime, prototype, "setUniform",
|
|
48
|
+
&JsiSkRuntimeShaderBuilder::setUniform);
|
|
48
49
|
}
|
|
49
50
|
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
/**
|
|
52
|
+
Returns the underlying object from a host object of this type
|
|
53
|
+
*/
|
|
54
|
+
static std::shared_ptr<SkRuntimeShaderBuilder>
|
|
55
|
+
fromValue(jsi::Runtime &runtime, const jsi::Value &obj) {
|
|
56
|
+
return getJsiObject<JsiSkRuntimeShaderBuilder>(runtime, obj)->getObject();
|
|
57
|
+
}
|
|
52
58
|
|
|
53
59
|
/**
|
|
54
60
|
Returns the jsi object from a host object of this type
|
|
@@ -56,20 +62,14 @@ public:
|
|
|
56
62
|
static jsi::Value toValue(jsi::Runtime &runtime,
|
|
57
63
|
std::shared_ptr<RNSkPlatformContext> context,
|
|
58
64
|
const SkRuntimeShaderBuilder &rt) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, builder,
|
|
62
|
-
context);
|
|
65
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkRuntimeShaderBuilder>(
|
|
66
|
+
std::move(context), rt));
|
|
63
67
|
}
|
|
64
68
|
|
|
65
|
-
size_t getMemoryPressure()
|
|
69
|
+
size_t getMemoryPressure() override {
|
|
66
70
|
return std::max(sizeof(SkRuntimeShaderBuilder), kMinMemoryPressure);
|
|
67
71
|
}
|
|
68
72
|
|
|
69
|
-
std::string getObjectType() const override {
|
|
70
|
-
return "JsiSkRuntimeShaderBuilder";
|
|
71
|
-
}
|
|
72
|
-
|
|
73
73
|
/**
|
|
74
74
|
* Creates the function for construction a new instance of the SkRect
|
|
75
75
|
* wrapper
|
|
@@ -83,10 +83,8 @@ public:
|
|
|
83
83
|
auto rt = JsiSkRuntimeEffect::fromValue(runtime, arguments[0]);
|
|
84
84
|
auto rtb = SkRuntimeShaderBuilder(rt);
|
|
85
85
|
// Return the newly constructed object
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, builder,
|
|
89
|
-
context);
|
|
86
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkRuntimeShaderBuilder>(
|
|
87
|
+
std::move(context), std::move(rtb)));
|
|
90
88
|
};
|
|
91
89
|
}
|
|
92
90
|
};
|
package/cpp/api/JsiSkSVG.h
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
#include <jsi/jsi.h>
|
|
7
7
|
|
|
8
|
-
#include "
|
|
8
|
+
#include "JsiSkNativeObjects.h"
|
|
9
9
|
|
|
10
10
|
#pragma clang diagnostic push
|
|
11
11
|
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
@@ -18,38 +18,40 @@ namespace RNSkia {
|
|
|
18
18
|
|
|
19
19
|
namespace jsi = facebook::jsi;
|
|
20
20
|
|
|
21
|
-
class JsiSkSVG : public
|
|
21
|
+
class JsiSkSVG : public JsiSkWrappingSkPtrNativeObject<JsiSkSVG, SkSVGDOM> {
|
|
22
22
|
public:
|
|
23
|
+
static constexpr const char *CLASS_NAME = "SVG";
|
|
24
|
+
|
|
23
25
|
JsiSkSVG(std::shared_ptr<RNSkPlatformContext> context, sk_sp<SkSVGDOM> svgdom,
|
|
24
26
|
sk_sp<skresources::ResourceProvider> resourceProvider = nullptr)
|
|
25
|
-
:
|
|
26
|
-
|
|
27
|
+
: JsiSkWrappingSkPtrNativeObject<JsiSkSVG, SkSVGDOM>(std::move(context),
|
|
28
|
+
std::move(svgdom)) {}
|
|
27
29
|
|
|
28
30
|
~JsiSkSVG() = default;
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
JSI_HOST_FUNCTION(width) {
|
|
32
|
+
double width() {
|
|
33
33
|
return static_cast<double>(getObject()->containerSize().width());
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
double height() {
|
|
37
37
|
return static_cast<double>(getObject()->containerSize().height());
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
41
|
+
installCommon(runtime, prototype);
|
|
42
|
+
installMethod(runtime, prototype, "width", &JsiSkSVG::width);
|
|
43
|
+
installMethod(runtime, prototype, "height", &JsiSkSVG::height);
|
|
44
|
+
}
|
|
43
45
|
|
|
44
46
|
/**
|
|
45
47
|
Returns the underlying object from a host object of this type
|
|
46
48
|
*/
|
|
47
49
|
static sk_sp<SkSVGDOM> fromValue(jsi::Runtime &runtime,
|
|
48
50
|
const jsi::Value &obj) {
|
|
49
|
-
return
|
|
51
|
+
return getJsiObject<JsiSkSVG>(runtime, obj)->getObject();
|
|
50
52
|
}
|
|
51
53
|
|
|
52
|
-
size_t getMemoryPressure()
|
|
54
|
+
size_t getMemoryPressure() override {
|
|
53
55
|
auto svgdom = getObject();
|
|
54
56
|
if (!svgdom) {
|
|
55
57
|
return 1024; // Base size if no SVG
|
|
@@ -72,8 +74,6 @@ public:
|
|
|
72
74
|
return (rasterBufferSize / 4) +
|
|
73
75
|
baseOverhead; // Quarter of full raster + overhead
|
|
74
76
|
}
|
|
75
|
-
|
|
76
|
-
std::string getObjectType() const override { return "JsiSkSVG"; }
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
} // namespace RNSkia
|