@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
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
#include <jsi/jsi.h>
|
|
8
8
|
|
|
9
|
-
#include "
|
|
9
|
+
#include "JsiSkConverters.h"
|
|
10
10
|
#include "JsiSkMatrix.h"
|
|
11
|
+
#include "JsiSkNativeObjects.h"
|
|
11
12
|
#include "JsiSkPath.h"
|
|
12
13
|
#include "JsiSkPoint.h"
|
|
13
14
|
#include "JsiSkRRect.h"
|
|
@@ -27,372 +28,249 @@ namespace RNSkia {
|
|
|
27
28
|
namespace jsi = facebook::jsi;
|
|
28
29
|
|
|
29
30
|
class JsiSkPathBuilder
|
|
30
|
-
: public
|
|
31
|
+
: public JsiSkWrappingSharedPtrNativeObject<JsiSkPathBuilder,
|
|
32
|
+
SkPathBuilder> {
|
|
31
33
|
public:
|
|
34
|
+
static constexpr const char *CLASS_NAME = "PathBuilder";
|
|
35
|
+
|
|
32
36
|
// Movement methods
|
|
33
|
-
|
|
34
|
-
SkScalar x = arguments[0].asNumber();
|
|
35
|
-
SkScalar y = arguments[1].asNumber();
|
|
36
|
-
getObject()->moveTo(x, y);
|
|
37
|
-
return thisValue.getObject(runtime);
|
|
38
|
-
}
|
|
37
|
+
void moveTo(double x, double y) { getObject()->moveTo(x, y); }
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
SkScalar
|
|
42
|
-
SkScalar y = arguments[1].asNumber();
|
|
43
|
-
getObject()->rMoveTo({x, y});
|
|
44
|
-
return thisValue.getObject(runtime);
|
|
39
|
+
void rMoveTo(double x, double y) {
|
|
40
|
+
getObject()->rMoveTo({static_cast<SkScalar>(x), static_cast<SkScalar>(y)});
|
|
45
41
|
}
|
|
46
42
|
|
|
47
|
-
|
|
48
|
-
SkScalar x = arguments[0].asNumber();
|
|
49
|
-
SkScalar y = arguments[1].asNumber();
|
|
50
|
-
getObject()->lineTo(x, y);
|
|
51
|
-
return thisValue.getObject(runtime);
|
|
52
|
-
}
|
|
43
|
+
void lineTo(double x, double y) { getObject()->lineTo(x, y); }
|
|
53
44
|
|
|
54
|
-
|
|
55
|
-
SkScalar x = arguments[0].asNumber();
|
|
56
|
-
SkScalar y = arguments[1].asNumber();
|
|
57
|
-
getObject()->rLineTo(x, y);
|
|
58
|
-
return thisValue.getObject(runtime);
|
|
59
|
-
}
|
|
45
|
+
void rLineTo(double x, double y) { getObject()->rLineTo(x, y); }
|
|
60
46
|
|
|
61
47
|
// Curve methods
|
|
62
|
-
|
|
63
|
-
auto x1 = arguments[0].asNumber();
|
|
64
|
-
auto y1 = arguments[1].asNumber();
|
|
65
|
-
auto x2 = arguments[2].asNumber();
|
|
66
|
-
auto y2 = arguments[3].asNumber();
|
|
48
|
+
void quadTo(double x1, double y1, double x2, double y2) {
|
|
67
49
|
getObject()->quadTo(x1, y1, x2, y2);
|
|
68
|
-
return thisValue.getObject(runtime);
|
|
69
50
|
}
|
|
70
51
|
|
|
71
|
-
|
|
72
|
-
auto x1 = arguments[0].asNumber();
|
|
73
|
-
auto y1 = arguments[1].asNumber();
|
|
74
|
-
auto x2 = arguments[2].asNumber();
|
|
75
|
-
auto y2 = arguments[3].asNumber();
|
|
52
|
+
void rQuadTo(double x1, double y1, double x2, double y2) {
|
|
76
53
|
getObject()->rQuadTo(x1, y1, x2, y2);
|
|
77
|
-
return thisValue.getObject(runtime);
|
|
78
54
|
}
|
|
79
55
|
|
|
80
|
-
|
|
81
|
-
auto x1 = arguments[0].asNumber();
|
|
82
|
-
auto y1 = arguments[1].asNumber();
|
|
83
|
-
auto x2 = arguments[2].asNumber();
|
|
84
|
-
auto y2 = arguments[3].asNumber();
|
|
85
|
-
auto w = arguments[4].asNumber();
|
|
56
|
+
void conicTo(double x1, double y1, double x2, double y2, double w) {
|
|
86
57
|
getObject()->conicTo(x1, y1, x2, y2, w);
|
|
87
|
-
return thisValue.getObject(runtime);
|
|
88
58
|
}
|
|
89
59
|
|
|
90
|
-
|
|
91
|
-
auto x1 = arguments[0].asNumber();
|
|
92
|
-
auto y1 = arguments[1].asNumber();
|
|
93
|
-
auto x2 = arguments[2].asNumber();
|
|
94
|
-
auto y2 = arguments[3].asNumber();
|
|
95
|
-
auto w = arguments[4].asNumber();
|
|
60
|
+
void rConicTo(double x1, double y1, double x2, double y2, double w) {
|
|
96
61
|
getObject()->rConicTo(x1, y1, x2, y2, w);
|
|
97
|
-
return thisValue.getObject(runtime);
|
|
98
62
|
}
|
|
99
63
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
auto y1 = arguments[1].asNumber();
|
|
103
|
-
auto x2 = arguments[2].asNumber();
|
|
104
|
-
auto y2 = arguments[3].asNumber();
|
|
105
|
-
auto x3 = arguments[4].asNumber();
|
|
106
|
-
auto y3 = arguments[5].asNumber();
|
|
64
|
+
void cubicTo(double x1, double y1, double x2, double y2, double x3,
|
|
65
|
+
double y3) {
|
|
107
66
|
getObject()->cubicTo(x1, y1, x2, y2, x3, y3);
|
|
108
|
-
return thisValue.getObject(runtime);
|
|
109
67
|
}
|
|
110
68
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
auto y1 = arguments[1].asNumber();
|
|
114
|
-
auto x2 = arguments[2].asNumber();
|
|
115
|
-
auto y2 = arguments[3].asNumber();
|
|
116
|
-
auto x3 = arguments[4].asNumber();
|
|
117
|
-
auto y3 = arguments[5].asNumber();
|
|
69
|
+
void rCubicTo(double x1, double y1, double x2, double y2, double x3,
|
|
70
|
+
double y3) {
|
|
118
71
|
getObject()->rCubicTo(x1, y1, x2, y2, x3, y3);
|
|
119
|
-
return thisValue.getObject(runtime);
|
|
120
72
|
}
|
|
121
73
|
|
|
122
|
-
|
|
123
|
-
getObject()->close();
|
|
124
|
-
return thisValue.getObject(runtime);
|
|
125
|
-
}
|
|
74
|
+
void close() { getObject()->close(); }
|
|
126
75
|
|
|
127
76
|
// Arc methods
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
auto start = arguments[1].asNumber();
|
|
131
|
-
auto sweep = arguments[2].asNumber();
|
|
132
|
-
auto forceMoveTo = arguments[3].getBool();
|
|
77
|
+
void arcToOval(std::shared_ptr<SkRect> rect, double start, double sweep,
|
|
78
|
+
bool forceMoveTo) {
|
|
133
79
|
getObject()->arcTo(*rect, start, sweep, forceMoveTo);
|
|
134
|
-
return thisValue.getObject(runtime);
|
|
135
80
|
}
|
|
136
81
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
auto ry = arguments[1].asNumber();
|
|
140
|
-
auto xAxisRotate = arguments[2].asNumber();
|
|
141
|
-
auto useSmallArc = arguments[3].getBool();
|
|
82
|
+
void arcToRotated(double rx, double ry, double xAxisRotate, bool useSmallArc,
|
|
83
|
+
bool isCCW, double x, double y) {
|
|
142
84
|
auto arcSize = useSmallArc ? SkPathBuilder::ArcSize::kSmall_ArcSize
|
|
143
85
|
: SkPathBuilder::ArcSize::kLarge_ArcSize;
|
|
144
|
-
auto sweep =
|
|
145
|
-
arguments[4].getBool() ? SkPathDirection::kCCW : SkPathDirection::kCW;
|
|
146
|
-
auto x = arguments[5].asNumber();
|
|
147
|
-
auto y = arguments[6].asNumber();
|
|
86
|
+
auto sweep = isCCW ? SkPathDirection::kCCW : SkPathDirection::kCW;
|
|
148
87
|
getObject()->arcTo(SkPoint::Make(rx, ry), xAxisRotate, arcSize, sweep,
|
|
149
88
|
SkPoint::Make(x, y));
|
|
150
|
-
return thisValue.getObject(runtime);
|
|
151
89
|
}
|
|
152
90
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
auto ry = arguments[1].asNumber();
|
|
156
|
-
auto xAxisRotate = arguments[2].asNumber();
|
|
157
|
-
auto useSmallArc = arguments[3].getBool();
|
|
91
|
+
void rArcTo(double rx, double ry, double xAxisRotate, bool useSmallArc,
|
|
92
|
+
bool isCCW, double dx, double dy) {
|
|
158
93
|
auto arcSize = useSmallArc ? SkPathBuilder::ArcSize::kSmall_ArcSize
|
|
159
94
|
: SkPathBuilder::ArcSize::kLarge_ArcSize;
|
|
160
|
-
auto sweep =
|
|
161
|
-
arguments[4].getBool() ? SkPathDirection::kCCW : SkPathDirection::kCW;
|
|
162
|
-
auto dx = arguments[5].asNumber();
|
|
163
|
-
auto dy = arguments[6].asNumber();
|
|
95
|
+
auto sweep = isCCW ? SkPathDirection::kCCW : SkPathDirection::kCW;
|
|
164
96
|
SkPoint r(rx, ry);
|
|
165
97
|
SkVector d(dx, dy);
|
|
166
98
|
getObject()->rArcTo(r, xAxisRotate, arcSize, sweep, d);
|
|
167
|
-
return thisValue.getObject(runtime);
|
|
168
99
|
}
|
|
169
100
|
|
|
170
|
-
|
|
171
|
-
auto x1 = arguments[0].asNumber();
|
|
172
|
-
auto y1 = arguments[1].asNumber();
|
|
173
|
-
auto x2 = arguments[2].asNumber();
|
|
174
|
-
auto y2 = arguments[3].asNumber();
|
|
175
|
-
auto r = arguments[4].asNumber();
|
|
101
|
+
void arcToTangent(double x1, double y1, double x2, double y2, double r) {
|
|
176
102
|
getObject()->arcTo(SkPoint::Make(x1, y1), SkPoint::Make(x2, y2), r);
|
|
177
|
-
return thisValue.getObject(runtime);
|
|
178
103
|
}
|
|
179
104
|
|
|
180
105
|
// Shape methods
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
auto direction = SkPathDirection::kCW;
|
|
184
|
-
if (count >= 2 && arguments[1].getBool()) {
|
|
185
|
-
direction = SkPathDirection::kCCW;
|
|
186
|
-
}
|
|
187
|
-
getObject()->addRect(*rect, direction);
|
|
188
|
-
return thisValue.getObject(runtime);
|
|
106
|
+
void addRect(std::shared_ptr<SkRect> rect, JsiOptional<bool> isCCW) {
|
|
107
|
+
getObject()->addRect(*rect, toDirection(isCCW));
|
|
189
108
|
}
|
|
190
109
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
unsigned startIndex = count < 3 ? 0 : arguments[2].asNumber();
|
|
198
|
-
getObject()->addOval(*rect, direction, startIndex);
|
|
199
|
-
return thisValue.getObject(runtime);
|
|
110
|
+
void addOval(std::shared_ptr<SkRect> rect, JsiOptional<bool> isCCW,
|
|
111
|
+
JsiOptional<double> startIndex) {
|
|
112
|
+
getObject()->addOval(*rect, toDirection(isCCW),
|
|
113
|
+
startIndex.has_value()
|
|
114
|
+
? static_cast<unsigned>(*startIndex)
|
|
115
|
+
: 0);
|
|
200
116
|
}
|
|
201
117
|
|
|
202
|
-
|
|
203
|
-
auto rect = JsiSkRect::fromValue(runtime, arguments[0]);
|
|
204
|
-
auto start = arguments[1].asNumber();
|
|
205
|
-
auto sweep = arguments[2].asNumber();
|
|
118
|
+
void addArc(std::shared_ptr<SkRect> rect, double start, double sweep) {
|
|
206
119
|
getObject()->addArc(*rect, start, sweep);
|
|
207
|
-
return thisValue.getObject(runtime);
|
|
208
120
|
}
|
|
209
121
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
auto direction = SkPathDirection::kCW;
|
|
213
|
-
if (count >= 2 && arguments[1].getBool()) {
|
|
214
|
-
direction = SkPathDirection::kCCW;
|
|
215
|
-
}
|
|
216
|
-
getObject()->addRRect(*rrect, direction);
|
|
217
|
-
return thisValue.getObject(runtime);
|
|
122
|
+
void addRRect(std::shared_ptr<SkRRect> rrect, JsiOptional<bool> isCCW) {
|
|
123
|
+
getObject()->addRRect(*rrect, toDirection(isCCW));
|
|
218
124
|
}
|
|
219
125
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
auto y = arguments[1].asNumber();
|
|
223
|
-
auto r = arguments[2].asNumber();
|
|
224
|
-
auto direction = SkPathDirection::kCW;
|
|
225
|
-
if (count >= 4 && arguments[3].getBool()) {
|
|
226
|
-
direction = SkPathDirection::kCCW;
|
|
227
|
-
}
|
|
228
|
-
getObject()->addCircle(x, y, r, direction);
|
|
229
|
-
return thisValue.getObject(runtime);
|
|
126
|
+
void addCircle(double x, double y, double r, JsiOptional<bool> isCCW) {
|
|
127
|
+
getObject()->addCircle(x, y, r, toDirection(isCCW));
|
|
230
128
|
}
|
|
231
129
|
|
|
232
|
-
|
|
233
|
-
std::vector<SkPoint> points;
|
|
234
|
-
auto jsiPoints = arguments[0].asObject(runtime).asArray(runtime);
|
|
235
|
-
auto close = arguments[1].getBool();
|
|
236
|
-
auto pointsSize = jsiPoints.size(runtime);
|
|
237
|
-
points.reserve(pointsSize);
|
|
238
|
-
for (int i = 0; i < pointsSize; i++) {
|
|
239
|
-
std::shared_ptr<SkPoint> point = JsiSkPoint::fromValue(
|
|
240
|
-
runtime, jsiPoints.getValueAtIndex(runtime, i).asObject(runtime));
|
|
241
|
-
points.push_back(*point.get());
|
|
242
|
-
}
|
|
130
|
+
void addPoly(std::vector<SkPoint> points, bool close) {
|
|
243
131
|
getObject()->addPolygon(SkSpan(points.data(), points.size()), close);
|
|
244
|
-
return thisValue.getObject(runtime);
|
|
245
132
|
}
|
|
246
133
|
|
|
247
|
-
|
|
248
|
-
|
|
134
|
+
void addPath(std::shared_ptr<SkPathBuilder> src,
|
|
135
|
+
JsiOptional<std::shared_ptr<SkMatrix>> matrix,
|
|
136
|
+
JsiOptional<bool> extend) {
|
|
249
137
|
auto srcPath = src->snapshot();
|
|
250
|
-
auto
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
auto mode = count > 2 && arguments[2].isBool() && arguments[2].getBool()
|
|
255
|
-
? SkPath::kExtend_AddPathMode
|
|
256
|
-
: SkPath::kAppend_AddPathMode;
|
|
257
|
-
if (matrix == nullptr) {
|
|
258
|
-
getObject()->addPath(srcPath, mode);
|
|
138
|
+
auto mode = extend.has_value() && *extend ? SkPath::kExtend_AddPathMode
|
|
139
|
+
: SkPath::kAppend_AddPathMode;
|
|
140
|
+
if (matrix.has_value()) {
|
|
141
|
+
getObject()->addPath(srcPath, **matrix, mode);
|
|
259
142
|
} else {
|
|
260
|
-
getObject()->addPath(srcPath,
|
|
143
|
+
getObject()->addPath(srcPath, mode);
|
|
261
144
|
}
|
|
262
|
-
return thisValue.getObject(runtime);
|
|
263
145
|
}
|
|
264
146
|
|
|
265
147
|
// Configuration methods
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
getObject()->setFillType(ft);
|
|
269
|
-
return thisValue.getObject(runtime);
|
|
148
|
+
void setFillType(double ft) {
|
|
149
|
+
getObject()->setFillType(static_cast<SkPathFillType>(ft));
|
|
270
150
|
}
|
|
271
151
|
|
|
272
|
-
|
|
273
|
-
auto v = arguments[0].getBool();
|
|
274
|
-
getObject()->setIsVolatile(v);
|
|
275
|
-
return thisValue.getObject(runtime);
|
|
276
|
-
}
|
|
152
|
+
void setIsVolatile(bool v) { getObject()->setIsVolatile(v); }
|
|
277
153
|
|
|
278
|
-
|
|
279
|
-
getObject()->reset();
|
|
280
|
-
return thisValue.getObject(runtime);
|
|
281
|
-
}
|
|
154
|
+
void reset() { getObject()->reset(); }
|
|
282
155
|
|
|
283
|
-
|
|
284
|
-
SkScalar dx = arguments[0].asNumber();
|
|
285
|
-
SkScalar dy = arguments[1].asNumber();
|
|
286
|
-
getObject()->offset(dx, dy);
|
|
287
|
-
return thisValue.getObject(runtime);
|
|
288
|
-
}
|
|
156
|
+
void offset(double dx, double dy) { getObject()->offset(dx, dy); }
|
|
289
157
|
|
|
290
|
-
|
|
291
|
-
auto m3 = *JsiSkMatrix::fromValue(runtime, arguments[0]);
|
|
158
|
+
void transform(std::shared_ptr<SkMatrix> m3) {
|
|
292
159
|
// Create a path from current state, transform, then rebuild
|
|
293
|
-
auto path = getObject()->snapshot().makeTransform(m3);
|
|
160
|
+
auto path = getObject()->snapshot().makeTransform(*m3);
|
|
294
161
|
*getObject() = SkPathBuilder(path);
|
|
295
|
-
return thisValue.getObject(runtime);
|
|
296
162
|
}
|
|
297
163
|
|
|
298
164
|
// Query methods
|
|
299
|
-
|
|
165
|
+
std::shared_ptr<JsiSkRect> computeBounds() {
|
|
300
166
|
auto path = getObject()->snapshot();
|
|
301
|
-
|
|
302
|
-
auto hostObjectInstance = std::make_shared<JsiSkRect>(getContext(), result);
|
|
303
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
304
|
-
runtime, hostObjectInstance, getContext());
|
|
167
|
+
return std::make_shared<JsiSkRect>(getContext(), path.getBounds());
|
|
305
168
|
}
|
|
306
169
|
|
|
307
|
-
|
|
308
|
-
return jsi::Value(getObject()->snapshot().isEmpty());
|
|
309
|
-
}
|
|
170
|
+
bool isEmpty() { return getObject()->snapshot().isEmpty(); }
|
|
310
171
|
|
|
311
|
-
|
|
312
|
-
SkPoint last;
|
|
172
|
+
SkPoint getLastPt() {
|
|
173
|
+
SkPoint last = SkPoint::Make(0, 0);
|
|
313
174
|
getObject()->snapshot().getLastPt(&last);
|
|
314
|
-
|
|
315
|
-
point.setProperty(runtime, "x", static_cast<double>(last.fX));
|
|
316
|
-
point.setProperty(runtime, "y", static_cast<double>(last.fY));
|
|
317
|
-
return point;
|
|
175
|
+
return last;
|
|
318
176
|
}
|
|
319
177
|
|
|
320
|
-
|
|
321
|
-
auto points = getObject()->snapshot().countPoints();
|
|
322
|
-
return jsi::Value(points);
|
|
323
|
-
}
|
|
178
|
+
int countPoints() { return getObject()->snapshot().countPoints(); }
|
|
324
179
|
|
|
325
180
|
// Build methods
|
|
326
|
-
|
|
181
|
+
std::shared_ptr<JsiSkPath> build() {
|
|
327
182
|
// snapshot() returns a copy without resetting the builder
|
|
328
183
|
auto path = getObject()->snapshot();
|
|
329
|
-
|
|
330
|
-
std::make_shared<JsiSkPath>(getContext(), std::move(path));
|
|
331
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
332
|
-
runtime, hostObjectInstance, getContext());
|
|
184
|
+
return std::make_shared<JsiSkPath>(getContext(), std::move(path));
|
|
333
185
|
}
|
|
334
186
|
|
|
335
|
-
|
|
187
|
+
std::shared_ptr<JsiSkPath> detach() {
|
|
336
188
|
// detach() returns the path and resets the builder
|
|
337
189
|
auto path = getObject()->detach();
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
190
|
+
return std::make_shared<JsiSkPath>(getContext(), std::move(path));
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
194
|
+
installCommon(runtime, prototype);
|
|
195
|
+
// Movement
|
|
196
|
+
installChainableMethod(runtime, prototype, "moveTo",
|
|
197
|
+
&JsiSkPathBuilder::moveTo);
|
|
198
|
+
installChainableMethod(runtime, prototype, "rMoveTo",
|
|
199
|
+
&JsiSkPathBuilder::rMoveTo);
|
|
200
|
+
installChainableMethod(runtime, prototype, "lineTo",
|
|
201
|
+
&JsiSkPathBuilder::lineTo);
|
|
202
|
+
installChainableMethod(runtime, prototype, "rLineTo",
|
|
203
|
+
&JsiSkPathBuilder::rLineTo);
|
|
204
|
+
// Curves
|
|
205
|
+
installChainableMethod(runtime, prototype, "quadTo",
|
|
206
|
+
&JsiSkPathBuilder::quadTo);
|
|
207
|
+
installChainableMethod(runtime, prototype, "rQuadTo",
|
|
208
|
+
&JsiSkPathBuilder::rQuadTo);
|
|
209
|
+
installChainableMethod(runtime, prototype, "conicTo",
|
|
210
|
+
&JsiSkPathBuilder::conicTo);
|
|
211
|
+
installChainableMethod(runtime, prototype, "rConicTo",
|
|
212
|
+
&JsiSkPathBuilder::rConicTo);
|
|
213
|
+
installChainableMethod(runtime, prototype, "cubicTo",
|
|
214
|
+
&JsiSkPathBuilder::cubicTo);
|
|
215
|
+
installChainableMethod(runtime, prototype, "rCubicTo",
|
|
216
|
+
&JsiSkPathBuilder::rCubicTo);
|
|
217
|
+
installChainableMethod(runtime, prototype, "close",
|
|
218
|
+
&JsiSkPathBuilder::close);
|
|
219
|
+
// Arcs
|
|
220
|
+
installChainableMethod(runtime, prototype, "arcToOval",
|
|
221
|
+
&JsiSkPathBuilder::arcToOval);
|
|
222
|
+
installChainableMethod(runtime, prototype, "arcToRotated",
|
|
223
|
+
&JsiSkPathBuilder::arcToRotated);
|
|
224
|
+
installChainableMethod(runtime, prototype, "rArcTo",
|
|
225
|
+
&JsiSkPathBuilder::rArcTo);
|
|
226
|
+
installChainableMethod(runtime, prototype, "arcToTangent",
|
|
227
|
+
&JsiSkPathBuilder::arcToTangent);
|
|
228
|
+
// Shapes
|
|
229
|
+
installChainableMethod(runtime, prototype, "addRect",
|
|
230
|
+
&JsiSkPathBuilder::addRect);
|
|
231
|
+
installChainableMethod(runtime, prototype, "addOval",
|
|
232
|
+
&JsiSkPathBuilder::addOval);
|
|
233
|
+
installChainableMethod(runtime, prototype, "addArc",
|
|
234
|
+
&JsiSkPathBuilder::addArc);
|
|
235
|
+
installChainableMethod(runtime, prototype, "addRRect",
|
|
236
|
+
&JsiSkPathBuilder::addRRect);
|
|
237
|
+
installChainableMethod(runtime, prototype, "addCircle",
|
|
238
|
+
&JsiSkPathBuilder::addCircle);
|
|
239
|
+
installChainableMethod(runtime, prototype, "addPoly",
|
|
240
|
+
&JsiSkPathBuilder::addPoly);
|
|
241
|
+
installChainableMethod(runtime, prototype, "addPath",
|
|
242
|
+
&JsiSkPathBuilder::addPath);
|
|
243
|
+
// Config
|
|
244
|
+
installChainableMethod(runtime, prototype, "setFillType",
|
|
245
|
+
&JsiSkPathBuilder::setFillType);
|
|
246
|
+
installChainableMethod(runtime, prototype, "setIsVolatile",
|
|
247
|
+
&JsiSkPathBuilder::setIsVolatile);
|
|
248
|
+
installChainableMethod(runtime, prototype, "reset",
|
|
249
|
+
&JsiSkPathBuilder::reset);
|
|
250
|
+
installChainableMethod(runtime, prototype, "offset",
|
|
251
|
+
&JsiSkPathBuilder::offset);
|
|
252
|
+
installChainableMethod(runtime, prototype, "transform",
|
|
253
|
+
&JsiSkPathBuilder::transform);
|
|
254
|
+
// Query
|
|
255
|
+
installMethod(runtime, prototype, "computeBounds",
|
|
256
|
+
&JsiSkPathBuilder::computeBounds);
|
|
257
|
+
installMethod(runtime, prototype, "isEmpty", &JsiSkPathBuilder::isEmpty);
|
|
258
|
+
installMethod(runtime, prototype, "getLastPt",
|
|
259
|
+
&JsiSkPathBuilder::getLastPt);
|
|
260
|
+
installMethod(runtime, prototype, "countPoints",
|
|
261
|
+
&JsiSkPathBuilder::countPoints);
|
|
262
|
+
// Build
|
|
263
|
+
installMethod(runtime, prototype, "build", &JsiSkPathBuilder::build);
|
|
264
|
+
installMethod(runtime, prototype, "detach", &JsiSkPathBuilder::detach);
|
|
342
265
|
}
|
|
343
266
|
|
|
344
|
-
EXPORT_JSI_API_TYPENAME(JsiSkPathBuilder, PathBuilder)
|
|
345
|
-
|
|
346
|
-
JSI_EXPORT_FUNCTIONS(
|
|
347
|
-
// Movement
|
|
348
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, moveTo),
|
|
349
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, rMoveTo),
|
|
350
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, lineTo),
|
|
351
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, rLineTo),
|
|
352
|
-
// Curves
|
|
353
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, quadTo),
|
|
354
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, rQuadTo),
|
|
355
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, conicTo),
|
|
356
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, rConicTo),
|
|
357
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, cubicTo),
|
|
358
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, rCubicTo),
|
|
359
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, close),
|
|
360
|
-
// Arcs
|
|
361
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, arcToOval),
|
|
362
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, arcToRotated),
|
|
363
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, rArcTo),
|
|
364
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, arcToTangent),
|
|
365
|
-
// Shapes
|
|
366
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, addRect),
|
|
367
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, addOval),
|
|
368
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, addArc),
|
|
369
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, addRRect),
|
|
370
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, addCircle),
|
|
371
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, addPoly),
|
|
372
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, addPath),
|
|
373
|
-
// Config
|
|
374
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, setFillType),
|
|
375
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, setIsVolatile),
|
|
376
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, reset),
|
|
377
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, offset),
|
|
378
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, transform),
|
|
379
|
-
// Query
|
|
380
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, computeBounds),
|
|
381
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, isEmpty),
|
|
382
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, getLastPt),
|
|
383
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, countPoints),
|
|
384
|
-
// Build
|
|
385
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, build),
|
|
386
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, detach),
|
|
387
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilder, dispose))
|
|
388
|
-
|
|
389
267
|
JsiSkPathBuilder(std::shared_ptr<RNSkPlatformContext> context,
|
|
390
268
|
SkPathBuilder builder)
|
|
391
|
-
:
|
|
269
|
+
: JsiSkWrappingSharedPtrNativeObject<JsiSkPathBuilder, SkPathBuilder>(
|
|
392
270
|
std::move(context),
|
|
393
271
|
std::make_shared<SkPathBuilder>(std::move(builder))) {}
|
|
394
272
|
|
|
395
|
-
size_t getMemoryPressure()
|
|
273
|
+
size_t getMemoryPressure() override {
|
|
396
274
|
auto builder = getObject();
|
|
397
275
|
if (!builder)
|
|
398
276
|
return 0;
|
|
@@ -400,15 +278,17 @@ public:
|
|
|
400
278
|
return builder->snapshot().approximateBytesUsed();
|
|
401
279
|
}
|
|
402
280
|
|
|
403
|
-
std::string getObjectType() const override { return "JsiSkPathBuilder"; }
|
|
404
|
-
|
|
405
281
|
static jsi::Value toValue(jsi::Runtime &runtime,
|
|
406
282
|
std::shared_ptr<RNSkPlatformContext> context,
|
|
407
283
|
const SkPathBuilder &builder) {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
284
|
+
return makeJsiObject(runtime,
|
|
285
|
+
std::make_shared<JsiSkPathBuilder>(context, builder));
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
private:
|
|
289
|
+
static SkPathDirection toDirection(const JsiOptional<bool> &isCCW) {
|
|
290
|
+
return isCCW.has_value() && *isCCW ? SkPathDirection::kCCW
|
|
291
|
+
: SkPathDirection::kCW;
|
|
412
292
|
}
|
|
413
293
|
};
|
|
414
294
|
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
#include <jsi/jsi.h>
|
|
7
7
|
|
|
8
|
-
#include "
|
|
8
|
+
#include "JsiSkConverters.h"
|
|
9
|
+
#include "JsiSkNativeObjects.h"
|
|
10
|
+
#include "JsiSkPath.h"
|
|
9
11
|
#include "JsiSkPathBuilder.h"
|
|
10
12
|
|
|
11
13
|
#pragma clang diagnostic push
|
|
@@ -20,34 +22,31 @@ namespace RNSkia {
|
|
|
20
22
|
|
|
21
23
|
namespace jsi = facebook::jsi;
|
|
22
24
|
|
|
23
|
-
class JsiSkPathBuilderFactory
|
|
25
|
+
class JsiSkPathBuilderFactory
|
|
26
|
+
: public JsiSkNativeObject<JsiSkPathBuilderFactory> {
|
|
24
27
|
public:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return
|
|
29
|
-
runtime, hostObjectInstance, getContext());
|
|
28
|
+
static constexpr const char *CLASS_NAME = "PathBuilderFactory";
|
|
29
|
+
|
|
30
|
+
std::shared_ptr<JsiSkPathBuilder> Make() {
|
|
31
|
+
return std::make_shared<JsiSkPathBuilder>(getContext(), SkPathBuilder());
|
|
30
32
|
}
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
37
|
-
runtime, hostObjectInstance, getContext());
|
|
34
|
+
std::shared_ptr<JsiSkPathBuilder>
|
|
35
|
+
MakeFromPath(std::shared_ptr<SkPathBuilder> path) {
|
|
36
|
+
return std::make_shared<JsiSkPathBuilder>(getContext(),
|
|
37
|
+
SkPathBuilder(*path));
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
size_t getMemoryPressure()
|
|
40
|
+
size_t getMemoryPressure() override { return 1024; }
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
43
|
+
installMethod(runtime, prototype, "Make", &JsiSkPathBuilderFactory::Make);
|
|
44
|
+
installMethod(runtime, prototype, "MakeFromPath",
|
|
45
|
+
&JsiSkPathBuilderFactory::MakeFromPath);
|
|
44
46
|
}
|
|
45
47
|
|
|
46
|
-
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkPathBuilderFactory, Make),
|
|
47
|
-
JSI_EXPORT_FUNC(JsiSkPathBuilderFactory, MakeFromPath))
|
|
48
|
-
|
|
49
48
|
explicit JsiSkPathBuilderFactory(std::shared_ptr<RNSkPlatformContext> context)
|
|
50
|
-
:
|
|
49
|
+
: JsiSkNativeObject<JsiSkPathBuilderFactory>(std::move(context)) {}
|
|
51
50
|
};
|
|
52
51
|
|
|
53
52
|
} // namespace RNSkia
|
|
@@ -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,19 +18,29 @@ namespace RNSkia {
|
|
|
18
18
|
|
|
19
19
|
namespace jsi = facebook::jsi;
|
|
20
20
|
|
|
21
|
-
class JsiSkPathEffect
|
|
21
|
+
class JsiSkPathEffect
|
|
22
|
+
: public JsiSkWrappingSkPtrNativeObject<JsiSkPathEffect, SkPathEffect> {
|
|
22
23
|
public:
|
|
24
|
+
static constexpr const char *CLASS_NAME = "PathEffect";
|
|
25
|
+
|
|
23
26
|
JsiSkPathEffect(std::shared_ptr<RNSkPlatformContext> context,
|
|
24
27
|
sk_sp<SkPathEffect> pathEffect)
|
|
25
|
-
:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
size_t getMemoryPressure()
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
: JsiSkWrappingSkPtrNativeObject<JsiSkPathEffect, SkPathEffect>(
|
|
29
|
+
std::move(context), std::move(pathEffect)) {}
|
|
30
|
+
|
|
31
|
+
size_t getMemoryPressure() override { return 2048; }
|
|
32
|
+
|
|
33
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
34
|
+
installCommon(runtime, prototype);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
Returns the underlying object from a host object of this type
|
|
39
|
+
*/
|
|
40
|
+
static sk_sp<SkPathEffect> fromValue(jsi::Runtime &runtime,
|
|
41
|
+
const jsi::Value &obj) {
|
|
42
|
+
return objectFromValue(runtime, obj);
|
|
43
|
+
}
|
|
34
44
|
};
|
|
35
45
|
|
|
36
46
|
} // namespace RNSkia
|