@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
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
#include <jsi/jsi.h>
|
|
8
8
|
|
|
9
9
|
#include "JsiSkData.h"
|
|
10
|
-
#include "
|
|
10
|
+
#include "JsiSkNativeObjects.h"
|
|
11
11
|
#include "JsiSkSVG.h"
|
|
12
12
|
#include "JsiSkTypeface.h"
|
|
13
13
|
|
|
@@ -55,8 +55,10 @@ private:
|
|
|
55
55
|
const skresources::ImageDecodeStrategy fStrategy;
|
|
56
56
|
};
|
|
57
57
|
|
|
58
|
-
class JsiSkSVGFactory : public
|
|
58
|
+
class JsiSkSVGFactory : public JsiSkNativeObject<JsiSkSVGFactory> {
|
|
59
59
|
public:
|
|
60
|
+
static constexpr const char *CLASS_NAME = "SVGFactory";
|
|
61
|
+
|
|
60
62
|
// Helper function to parse asset map from JS object
|
|
61
63
|
static SVGAssetProvider::AssetMap parseAssetMap(jsi::Runtime &runtime,
|
|
62
64
|
const jsi::Value &jsValue) {
|
|
@@ -83,15 +85,9 @@ public:
|
|
|
83
85
|
continue;
|
|
84
86
|
}
|
|
85
87
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
auto hostObject = jsObject.getHostObject(runtime);
|
|
90
|
-
auto skData = std::dynamic_pointer_cast<JsiSkData>(hostObject);
|
|
91
|
-
if (skData) {
|
|
92
|
-
assets[key] = skData->getObject();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
88
|
+
auto skData = tryGetJsiObject<JsiSkData>(runtime, jsValue);
|
|
89
|
+
if (skData) {
|
|
90
|
+
assets[key] = skData->getObject();
|
|
95
91
|
}
|
|
96
92
|
}
|
|
97
93
|
|
|
@@ -120,9 +116,8 @@ private:
|
|
|
120
116
|
builder.setResourceProvider(provider);
|
|
121
117
|
|
|
122
118
|
auto svg_dom = builder.make(*stream);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
getContext());
|
|
119
|
+
return makeJsiObject(
|
|
120
|
+
runtime, std::make_shared<JsiSkSVG>(getContext(), std::move(svg_dom)));
|
|
126
121
|
}
|
|
127
122
|
|
|
128
123
|
public:
|
|
@@ -160,15 +155,17 @@ public:
|
|
|
160
155
|
std::move(assets));
|
|
161
156
|
}
|
|
162
157
|
|
|
163
|
-
size_t getMemoryPressure()
|
|
164
|
-
|
|
165
|
-
std::string getObjectType() const override { return "JsiSkSVGFactory"; }
|
|
158
|
+
size_t getMemoryPressure() override { return kMinMemoryPressure; }
|
|
166
159
|
|
|
167
|
-
|
|
168
|
-
|
|
160
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
161
|
+
installHostMethod(runtime, prototype, "MakeFromData",
|
|
162
|
+
&JsiSkSVGFactory::MakeFromData);
|
|
163
|
+
installHostMethod(runtime, prototype, "MakeFromString",
|
|
164
|
+
&JsiSkSVGFactory::MakeFromString);
|
|
165
|
+
}
|
|
169
166
|
|
|
170
167
|
explicit JsiSkSVGFactory(std::shared_ptr<RNSkPlatformContext> context)
|
|
171
|
-
:
|
|
168
|
+
: JsiSkNativeObject<JsiSkSVGFactory>(std::move(context)) {}
|
|
172
169
|
};
|
|
173
170
|
|
|
174
171
|
} // namespace RNSkia
|
package/cpp/api/JsiSkShader.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"
|
|
@@ -19,18 +19,25 @@ namespace RNSkia {
|
|
|
19
19
|
|
|
20
20
|
namespace jsi = facebook::jsi;
|
|
21
21
|
|
|
22
|
-
class JsiSkShader
|
|
22
|
+
class JsiSkShader
|
|
23
|
+
: public JsiSkWrappingSkPtrNativeObject<JsiSkShader, SkShader> {
|
|
23
24
|
public:
|
|
25
|
+
static constexpr const char *CLASS_NAME = "Shader";
|
|
26
|
+
|
|
24
27
|
JsiSkShader(std::shared_ptr<RNSkPlatformContext> context,
|
|
25
28
|
sk_sp<SkShader> shader)
|
|
26
|
-
:
|
|
27
|
-
|
|
29
|
+
: JsiSkWrappingSkPtrNativeObject<JsiSkShader, SkShader>(
|
|
30
|
+
std::move(context), std::move(shader)) {}
|
|
28
31
|
|
|
29
|
-
size_t getMemoryPressure()
|
|
32
|
+
size_t getMemoryPressure() override { return 1024 * 1024; }
|
|
30
33
|
|
|
31
|
-
|
|
34
|
+
static sk_sp<SkShader> fromValue(jsi::Runtime &runtime,
|
|
35
|
+
const jsi::Value &obj) {
|
|
36
|
+
return objectFromValue(runtime, obj);
|
|
37
|
+
}
|
|
32
38
|
|
|
33
|
-
|
|
34
|
-
|
|
39
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
40
|
+
installCommon(runtime, prototype);
|
|
41
|
+
}
|
|
35
42
|
};
|
|
36
43
|
} // namespace RNSkia
|
|
@@ -6,8 +6,13 @@
|
|
|
6
6
|
|
|
7
7
|
#include <jsi/jsi.h>
|
|
8
8
|
|
|
9
|
+
#include "JsiSkColor.h"
|
|
9
10
|
#include "JsiSkColorFilter.h"
|
|
10
|
-
#include "
|
|
11
|
+
#include "JsiSkConverters.h"
|
|
12
|
+
#include "JsiSkMatrix.h"
|
|
13
|
+
#include "JsiSkNativeObjects.h"
|
|
14
|
+
#include "JsiSkPoint.h"
|
|
15
|
+
#include "JsiSkShader.h"
|
|
11
16
|
|
|
12
17
|
#pragma clang diagnostic push
|
|
13
18
|
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
@@ -22,276 +27,192 @@ namespace RNSkia {
|
|
|
22
27
|
|
|
23
28
|
namespace jsi = facebook::jsi;
|
|
24
29
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
class JsiSkShaderFactory : public JsiSkNativeObject<JsiSkShaderFactory> {
|
|
31
|
+
public:
|
|
32
|
+
static constexpr const char *CLASS_NAME = "ShaderFactory";
|
|
33
|
+
|
|
34
|
+
std::shared_ptr<JsiSkShader>
|
|
35
|
+
MakeLinearGradient(SkPoint p1, SkPoint p2,
|
|
36
|
+
JsiOptional<std::vector<JsiColor>> jsiColors,
|
|
37
|
+
JsiOptional<std::vector<float>> jsiPositions,
|
|
38
|
+
JsiOptional<double> tileMode,
|
|
39
|
+
JsiOptional<std::shared_ptr<SkMatrix>> matrix,
|
|
40
|
+
JsiOptional<double> flag) {
|
|
41
|
+
SkPoint pts[] = {p1, p2};
|
|
42
|
+
auto colors = toColors(jsiColors);
|
|
43
|
+
auto positions = toPositions(jsiPositions, colors.size());
|
|
44
|
+
SkGradient::Colors gradColors(SkSpan(colors), toSpan(positions),
|
|
45
|
+
toTileMode(tileMode));
|
|
46
|
+
SkGradient grad(gradColors,
|
|
47
|
+
SkGradient::Interpolation::FromFlags(toFlag(flag)));
|
|
48
|
+
sk_sp<SkShader> gradient =
|
|
49
|
+
SkShaders::LinearGradient(pts, grad, toLocalMatrix(matrix));
|
|
50
|
+
return std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
28
51
|
}
|
|
29
|
-
return values[i].asNumber();
|
|
30
|
-
}
|
|
31
52
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
53
|
+
std::shared_ptr<JsiSkShader>
|
|
54
|
+
MakeRadialGradient(SkPoint center, double r,
|
|
55
|
+
JsiOptional<std::vector<JsiColor>> jsiColors,
|
|
56
|
+
JsiOptional<std::vector<float>> jsiPositions,
|
|
57
|
+
JsiOptional<double> tileMode,
|
|
58
|
+
JsiOptional<std::shared_ptr<SkMatrix>> matrix,
|
|
59
|
+
JsiOptional<double> flag) {
|
|
60
|
+
auto colors = toColors(jsiColors);
|
|
61
|
+
auto positions = toPositions(jsiPositions, colors.size());
|
|
62
|
+
SkGradient::Colors gradColors(SkSpan(colors), toSpan(positions),
|
|
63
|
+
toTileMode(tileMode));
|
|
64
|
+
SkGradient grad(gradColors,
|
|
65
|
+
SkGradient::Interpolation::FromFlags(toFlag(flag)));
|
|
66
|
+
sk_sp<SkShader> gradient =
|
|
67
|
+
SkShaders::RadialGradient(center, r, grad, toLocalMatrix(matrix));
|
|
68
|
+
return std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
36
69
|
}
|
|
37
|
-
return JsiSkMatrix::fromValue(runtime, values[i]).get();
|
|
38
|
-
}
|
|
39
70
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
71
|
+
std::shared_ptr<JsiSkShader>
|
|
72
|
+
MakeSweepGradient(double x, double y,
|
|
73
|
+
JsiOptional<std::vector<JsiColor>> jsiColors,
|
|
74
|
+
JsiOptional<std::vector<float>> jsiPositions,
|
|
75
|
+
JsiOptional<double> tileMode,
|
|
76
|
+
JsiOptional<std::shared_ptr<SkMatrix>> matrix,
|
|
77
|
+
JsiOptional<double> flag, JsiOptional<double> start,
|
|
78
|
+
JsiOptional<double> end) {
|
|
79
|
+
auto colors = toColors(jsiColors);
|
|
80
|
+
auto positions = toPositions(jsiPositions, colors.size());
|
|
81
|
+
auto startAngle =
|
|
82
|
+
start.has_value() ? static_cast<float>(*start) : 0.0f;
|
|
83
|
+
auto endAngle = end.has_value() ? static_cast<float>(*end) : 360.0f;
|
|
84
|
+
SkGradient::Colors gradColors(SkSpan(colors), toSpan(positions),
|
|
85
|
+
toTileMode(tileMode));
|
|
86
|
+
SkGradient grad(gradColors,
|
|
87
|
+
SkGradient::Interpolation::FromFlags(toFlag(flag)));
|
|
88
|
+
sk_sp<SkShader> gradient =
|
|
89
|
+
SkShaders::SweepGradient(SkPoint::Make(x, y), startAngle, endAngle,
|
|
90
|
+
grad, toLocalMatrix(matrix));
|
|
91
|
+
return std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
43
92
|
}
|
|
44
|
-
return static_cast<SkTileMode>(values[i].asNumber());
|
|
45
|
-
}
|
|
46
93
|
|
|
47
|
-
std::
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
94
|
+
std::shared_ptr<JsiSkShader>
|
|
95
|
+
MakeTwoPointConicalGradient(SkPoint start, double startRadius, SkPoint end,
|
|
96
|
+
double endRadius,
|
|
97
|
+
JsiOptional<std::vector<JsiColor>> jsiColors,
|
|
98
|
+
JsiOptional<std::vector<float>> jsiPositions,
|
|
99
|
+
JsiOptional<double> tileMode,
|
|
100
|
+
JsiOptional<std::shared_ptr<SkMatrix>> matrix,
|
|
101
|
+
JsiOptional<double> flag) {
|
|
102
|
+
auto colors = toColors(jsiColors);
|
|
103
|
+
auto positions = toPositions(jsiPositions, colors.size());
|
|
104
|
+
SkGradient::Colors gradColors(SkSpan(colors), toSpan(positions),
|
|
105
|
+
toTileMode(tileMode));
|
|
106
|
+
SkGradient grad(gradColors,
|
|
107
|
+
SkGradient::Interpolation::FromFlags(toFlag(flag)));
|
|
108
|
+
sk_sp<SkShader> gradient = SkShaders::TwoPointConicalGradient(
|
|
109
|
+
start, startRadius, end, endRadius, grad, toLocalMatrix(matrix));
|
|
110
|
+
return std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
59
111
|
}
|
|
60
|
-
return colors;
|
|
61
|
-
}
|
|
62
112
|
|
|
63
|
-
std::
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
SkScalar position = jsiPositions.getValueAtIndex(runtime, i).asNumber();
|
|
72
|
-
positions.push_back(position);
|
|
73
|
-
}
|
|
113
|
+
std::shared_ptr<JsiSkShader> MakeTurbulence(double baseFreqX,
|
|
114
|
+
double baseFreqY, double octaves,
|
|
115
|
+
double seed, double tileW,
|
|
116
|
+
double tileH) {
|
|
117
|
+
SkISize size = SkISize::Make(tileW, tileH);
|
|
118
|
+
sk_sp<SkShader> gradient =
|
|
119
|
+
SkShaders::MakeTurbulence(baseFreqX, baseFreqY, octaves, seed, &size);
|
|
120
|
+
return std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
74
121
|
}
|
|
75
|
-
return positions;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
class JsiSkShaderFactory : public JsiSkHostObject {
|
|
79
|
-
public:
|
|
80
|
-
JSI_HOST_FUNCTION(MakeLinearGradient) {
|
|
81
|
-
auto p1 =
|
|
82
|
-
*JsiSkPoint::fromValue(runtime, arguments[0].asObject(runtime)).get();
|
|
83
|
-
auto p2 =
|
|
84
|
-
*JsiSkPoint::fromValue(runtime, arguments[1].asObject(runtime)).get();
|
|
85
|
-
SkPoint pts[] = {p1, p2};
|
|
86
|
-
|
|
87
|
-
std::vector<SkColor4f> colors = getColors(runtime, arguments[2]);
|
|
88
|
-
auto colorsSize = colors.size();
|
|
89
|
-
if (colorsSize < 2) {
|
|
90
|
-
throw std::invalid_argument("colors must have at least 2 colors");
|
|
91
|
-
}
|
|
92
|
-
std::vector<SkScalar> positions = getPositions(runtime, arguments[3]);
|
|
93
|
-
if (!positions.empty() && positions.size() != colorsSize) {
|
|
94
|
-
throw std::invalid_argument(
|
|
95
|
-
"positions must be empty or have the same size as colors");
|
|
96
|
-
}
|
|
97
|
-
auto tileMode = getTileMode(arguments, 4, count);
|
|
98
|
-
auto flag = getFlag(arguments, 6, count);
|
|
99
|
-
auto localMatrix = getLocalMatrix(runtime, arguments, 5, count);
|
|
100
122
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
tileMode);
|
|
107
|
-
SkGradient grad(gradColors, SkGradient::Interpolation::FromFlags(flag));
|
|
123
|
+
std::shared_ptr<JsiSkShader> MakeFractalNoise(double baseFreqX,
|
|
124
|
+
double baseFreqY,
|
|
125
|
+
double octaves, double seed,
|
|
126
|
+
double tileW, double tileH) {
|
|
127
|
+
SkISize size = SkISize::Make(tileW, tileH);
|
|
108
128
|
sk_sp<SkShader> gradient =
|
|
109
|
-
SkShaders::
|
|
110
|
-
|
|
111
|
-
std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
112
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shader,
|
|
113
|
-
getContext());
|
|
129
|
+
SkShaders::MakeFractalNoise(baseFreqX, baseFreqY, octaves, seed, &size);
|
|
130
|
+
return std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
114
131
|
}
|
|
115
132
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
*JsiSkPoint::fromValue(runtime, arguments[0].asObject(runtime)).get();
|
|
119
|
-
auto r = arguments[1].asNumber();
|
|
120
|
-
|
|
121
|
-
std::vector<SkColor4f> colors = getColors(runtime, arguments[2]);
|
|
122
|
-
auto colorsSize = colors.size();
|
|
123
|
-
if (colorsSize < 2) {
|
|
124
|
-
throw std::invalid_argument("colors must have at least 2 colors");
|
|
125
|
-
}
|
|
126
|
-
std::vector<SkScalar> positions = getPositions(runtime, arguments[3]);
|
|
127
|
-
if (!positions.empty() && positions.size() != colorsSize) {
|
|
128
|
-
throw std::invalid_argument(
|
|
129
|
-
"positions must be empty or the same size as colors");
|
|
130
|
-
}
|
|
131
|
-
auto tileMode = getTileMode(arguments, 4, count);
|
|
132
|
-
auto flag = getFlag(arguments, 6, count);
|
|
133
|
-
auto localMatrix = getLocalMatrix(runtime, arguments, 5, count);
|
|
134
|
-
|
|
135
|
-
SkGradient::Colors gradColors(
|
|
136
|
-
SkSpan(colors),
|
|
137
|
-
!positions.empty()
|
|
138
|
-
? SkSpan<const float>(positions.data(), positions.size())
|
|
139
|
-
: SkSpan<const float>(),
|
|
140
|
-
tileMode);
|
|
141
|
-
SkGradient grad(gradColors, SkGradient::Interpolation::FromFlags(flag));
|
|
133
|
+
std::shared_ptr<JsiSkShader> MakeBlend(double blendMode, sk_sp<SkShader> one,
|
|
134
|
+
sk_sp<SkShader> two) {
|
|
142
135
|
sk_sp<SkShader> gradient =
|
|
143
|
-
SkShaders::
|
|
144
|
-
|
|
145
|
-
std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
146
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shader,
|
|
147
|
-
getContext());
|
|
136
|
+
SkShaders::Blend(static_cast<SkBlendMode>(blendMode), one, two);
|
|
137
|
+
return std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
148
138
|
}
|
|
149
139
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
std::vector<SkColor4f> colors = getColors(runtime, arguments[2]);
|
|
154
|
-
auto colorsSize = colors.size();
|
|
155
|
-
if (colorsSize < 2) {
|
|
156
|
-
throw std::invalid_argument("colors must have at least 2 colors");
|
|
157
|
-
}
|
|
158
|
-
std::vector<SkScalar> positions = getPositions(runtime, arguments[3]);
|
|
159
|
-
if (!positions.empty() && positions.size() != colorsSize) {
|
|
160
|
-
throw std::invalid_argument(
|
|
161
|
-
"positions must be empty or the same size as colors");
|
|
162
|
-
}
|
|
163
|
-
auto tileMode = getTileMode(arguments, 4, count);
|
|
164
|
-
auto localMatrix = getLocalMatrix(runtime, arguments, 5, count);
|
|
165
|
-
auto flag = getFlag(arguments, 6, count);
|
|
166
|
-
auto startAngle = (count < 8 || arguments[7].isUndefined())
|
|
167
|
-
? 0.0f
|
|
168
|
-
: static_cast<float>(arguments[7].asNumber());
|
|
169
|
-
auto endAngle = (count < 9 || arguments[8].isUndefined())
|
|
170
|
-
? 360.0f
|
|
171
|
-
: static_cast<float>(arguments[8].asNumber());
|
|
172
|
-
|
|
173
|
-
SkGradient::Colors gradColors(
|
|
174
|
-
SkSpan(colors),
|
|
175
|
-
!positions.empty()
|
|
176
|
-
? SkSpan<const float>(positions.data(), positions.size())
|
|
177
|
-
: SkSpan<const float>(),
|
|
178
|
-
tileMode);
|
|
179
|
-
SkGradient grad(gradColors, SkGradient::Interpolation::FromFlags(flag));
|
|
180
|
-
sk_sp<SkShader> gradient = SkShaders::SweepGradient(
|
|
181
|
-
SkPoint::Make(x, y), startAngle, endAngle, grad, localMatrix);
|
|
182
|
-
auto shader =
|
|
183
|
-
std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
184
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shader,
|
|
185
|
-
getContext());
|
|
140
|
+
std::shared_ptr<JsiSkShader> MakeColor(JsiColor color) {
|
|
141
|
+
sk_sp<SkShader> gradient = SkShaders::Color(color);
|
|
142
|
+
return std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
186
143
|
}
|
|
187
144
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
145
|
+
size_t getMemoryPressure() override { return 1024; }
|
|
146
|
+
|
|
147
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
148
|
+
installMethod(runtime, prototype, "MakeLinearGradient",
|
|
149
|
+
&JsiSkShaderFactory::MakeLinearGradient);
|
|
150
|
+
installMethod(runtime, prototype, "MakeRadialGradient",
|
|
151
|
+
&JsiSkShaderFactory::MakeRadialGradient);
|
|
152
|
+
installMethod(runtime, prototype, "MakeSweepGradient",
|
|
153
|
+
&JsiSkShaderFactory::MakeSweepGradient);
|
|
154
|
+
installMethod(runtime, prototype, "MakeTwoPointConicalGradient",
|
|
155
|
+
&JsiSkShaderFactory::MakeTwoPointConicalGradient);
|
|
156
|
+
installMethod(runtime, prototype, "MakeTurbulence",
|
|
157
|
+
&JsiSkShaderFactory::MakeTurbulence);
|
|
158
|
+
installMethod(runtime, prototype, "MakeFractalNoise",
|
|
159
|
+
&JsiSkShaderFactory::MakeFractalNoise);
|
|
160
|
+
installMethod(runtime, prototype, "MakeBlend",
|
|
161
|
+
&JsiSkShaderFactory::MakeBlend);
|
|
162
|
+
installMethod(runtime, prototype, "MakeColor",
|
|
163
|
+
&JsiSkShaderFactory::MakeColor);
|
|
164
|
+
}
|
|
196
165
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
166
|
+
explicit JsiSkShaderFactory(std::shared_ptr<RNSkPlatformContext> context)
|
|
167
|
+
: JsiSkNativeObject<JsiSkShaderFactory>(std::move(context)) {}
|
|
168
|
+
|
|
169
|
+
private:
|
|
170
|
+
static std::vector<SkColor4f>
|
|
171
|
+
toColors(const JsiOptional<std::vector<JsiColor>> &jsiColors) {
|
|
172
|
+
std::vector<SkColor4f> colors;
|
|
173
|
+
if (jsiColors.has_value()) {
|
|
174
|
+
colors.reserve(jsiColors->size());
|
|
175
|
+
for (const auto &color : *jsiColors) {
|
|
176
|
+
colors.push_back(SkColor4f::FromColor(color));
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (colors.size() < 2) {
|
|
200
180
|
throw std::invalid_argument("colors must have at least 2 colors");
|
|
201
181
|
}
|
|
202
|
-
|
|
182
|
+
return colors;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
static std::vector<float>
|
|
186
|
+
toPositions(const JsiOptional<std::vector<float>> &jsiPositions,
|
|
187
|
+
size_t colorsSize) {
|
|
188
|
+
std::vector<float> positions =
|
|
189
|
+
jsiPositions.has_value() ? *jsiPositions : std::vector<float>{};
|
|
203
190
|
if (!positions.empty() && positions.size() != colorsSize) {
|
|
204
191
|
throw std::invalid_argument(
|
|
205
|
-
"positions must be empty or the same size as colors");
|
|
192
|
+
"positions must be empty or have the same size as colors");
|
|
206
193
|
}
|
|
207
|
-
|
|
208
|
-
auto localMatrix = getLocalMatrix(runtime, arguments, 7, count);
|
|
209
|
-
auto flag = getFlag(arguments, 8, count);
|
|
210
|
-
|
|
211
|
-
SkGradient::Colors gradColors(
|
|
212
|
-
SkSpan(colors),
|
|
213
|
-
!positions.empty()
|
|
214
|
-
? SkSpan<const float>(positions.data(), positions.size())
|
|
215
|
-
: SkSpan<const float>(),
|
|
216
|
-
tileMode);
|
|
217
|
-
SkGradient grad(gradColors, SkGradient::Interpolation::FromFlags(flag));
|
|
218
|
-
sk_sp<SkShader> gradient = SkShaders::TwoPointConicalGradient(
|
|
219
|
-
start, startRadius, end, endRadius, grad, localMatrix);
|
|
220
|
-
|
|
221
|
-
auto shader =
|
|
222
|
-
std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
223
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shader,
|
|
224
|
-
getContext());
|
|
194
|
+
return positions;
|
|
225
195
|
}
|
|
226
196
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
auto seed = arguments[3].asNumber();
|
|
232
|
-
auto tileW = arguments[4].asNumber();
|
|
233
|
-
auto tileH = arguments[5].asNumber();
|
|
234
|
-
SkISize size = SkISize::Make(tileW, tileH);
|
|
235
|
-
sk_sp<SkShader> gradient =
|
|
236
|
-
SkShaders::MakeTurbulence(baseFreqX, baseFreqY, octaves, seed, &size);
|
|
237
|
-
auto shader =
|
|
238
|
-
std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
239
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shader,
|
|
240
|
-
getContext());
|
|
197
|
+
static SkSpan<const float> toSpan(const std::vector<float> &positions) {
|
|
198
|
+
return !positions.empty()
|
|
199
|
+
? SkSpan<const float>(positions.data(), positions.size())
|
|
200
|
+
: SkSpan<const float>();
|
|
241
201
|
}
|
|
242
202
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
auto octaves = arguments[2].asNumber();
|
|
247
|
-
auto seed = arguments[3].asNumber();
|
|
248
|
-
auto tileW = arguments[4].asNumber();
|
|
249
|
-
auto tileH = arguments[5].asNumber();
|
|
250
|
-
SkISize size = SkISize::Make(tileW, tileH);
|
|
251
|
-
sk_sp<SkShader> gradient =
|
|
252
|
-
SkShaders::MakeFractalNoise(baseFreqX, baseFreqY, octaves, seed, &size);
|
|
253
|
-
auto shader =
|
|
254
|
-
std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
255
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shader,
|
|
256
|
-
getContext());
|
|
203
|
+
static SkTileMode toTileMode(const JsiOptional<double> &tileMode) {
|
|
204
|
+
return tileMode.has_value() ? static_cast<SkTileMode>(*tileMode)
|
|
205
|
+
: SkTileMode::kClamp;
|
|
257
206
|
}
|
|
258
207
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
auto one = JsiSkShader::fromValue(runtime, arguments[1]);
|
|
262
|
-
auto two = JsiSkShader::fromValue(runtime, arguments[2]);
|
|
263
|
-
sk_sp<SkShader> gradient = SkShaders::Blend(blendMode, one, two);
|
|
264
|
-
auto shader =
|
|
265
|
-
std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
266
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shader,
|
|
267
|
-
getContext());
|
|
208
|
+
static int toFlag(const JsiOptional<double> &flag) {
|
|
209
|
+
return flag.has_value() ? static_cast<int>(*flag) : 0;
|
|
268
210
|
}
|
|
269
211
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
auto shader =
|
|
274
|
-
std::make_shared<JsiSkShader>(getContext(), std::move(gradient));
|
|
275
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shader,
|
|
276
|
-
getContext());
|
|
212
|
+
static SkMatrix *
|
|
213
|
+
toLocalMatrix(const JsiOptional<std::shared_ptr<SkMatrix>> &matrix) {
|
|
214
|
+
return matrix.has_value() ? matrix->get() : nullptr;
|
|
277
215
|
}
|
|
278
|
-
|
|
279
|
-
size_t getMemoryPressure() const override { return 1024; }
|
|
280
|
-
|
|
281
|
-
std::string getObjectType() const override { return "JsiSkShaderFactory"; }
|
|
282
|
-
|
|
283
|
-
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkShaderFactory, MakeLinearGradient),
|
|
284
|
-
JSI_EXPORT_FUNC(JsiSkShaderFactory, MakeRadialGradient),
|
|
285
|
-
JSI_EXPORT_FUNC(JsiSkShaderFactory, MakeSweepGradient),
|
|
286
|
-
JSI_EXPORT_FUNC(JsiSkShaderFactory,
|
|
287
|
-
MakeTwoPointConicalGradient),
|
|
288
|
-
JSI_EXPORT_FUNC(JsiSkShaderFactory, MakeTurbulence),
|
|
289
|
-
JSI_EXPORT_FUNC(JsiSkShaderFactory, MakeFractalNoise),
|
|
290
|
-
JSI_EXPORT_FUNC(JsiSkShaderFactory, MakeBlend),
|
|
291
|
-
JSI_EXPORT_FUNC(JsiSkShaderFactory, MakeColor))
|
|
292
|
-
|
|
293
|
-
explicit JsiSkShaderFactory(std::shared_ptr<RNSkPlatformContext> context)
|
|
294
|
-
: JsiSkHostObject(std::move(context)) {}
|
|
295
216
|
};
|
|
296
217
|
|
|
297
218
|
} // namespace RNSkia
|