@shopify/react-native-skia 2.6.2 → 2.6.3-next.2
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 -4
- package/android/build.gradle +22 -3
- package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +62 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerDelegate.java +35 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerInterface.java +17 -0
- package/apple/RNSkApplePlatformContext.h +2 -0
- package/apple/RNSkApplePlatformContext.mm +71 -0
- package/apple/RNWebGPUAppleNativeBuffer.mm +33 -0
- package/cpp/api/JsiNativeBuffer.h +9 -1
- package/cpp/api/JsiSkAnimatedImage.h +1 -1
- package/cpp/api/JsiSkAnimatedImageFactory.h +1 -1
- package/cpp/api/JsiSkApi.h +3 -3
- package/cpp/api/JsiSkCanvas.h +34 -1
- package/cpp/api/JsiSkColor.h +1 -1
- package/cpp/api/JsiSkDataFactory.h +2 -2
- package/cpp/api/JsiSkFont.h +1 -1
- package/cpp/api/JsiSkFontMgr.h +1 -1
- package/cpp/api/JsiSkHostObjects.h +3 -3
- package/cpp/api/JsiSkImage.h +15 -7
- package/cpp/api/JsiSkImageFactory.h +2 -2
- package/cpp/api/JsiSkPath.h +1 -1
- package/cpp/api/JsiSkPathFactory.h +1 -1
- package/cpp/api/JsiSkSkottie.h +1 -1
- package/cpp/api/JsiSkSurface.h +18 -6
- package/cpp/api/JsiSkTypeface.h +1 -1
- package/cpp/api/JsiSkTypefaceFontProvider.h +1 -1
- package/cpp/api/JsiSkiaContext.h +2 -2
- package/cpp/api/JsiTextureInfo.h +1 -1
- package/cpp/api/JsiVideo.h +2 -2
- package/cpp/api/recorder/Convertor.h +1 -1
- package/cpp/api/recorder/Drawings.h +1 -1
- package/cpp/api/recorder/JsiRecorder.h +4 -4
- package/cpp/api/recorder/RNRecorder.h +1 -1
- package/cpp/api/third_party/SkottieUtils.cpp +1 -1
- package/cpp/api/third_party/base64.cpp +1 -1
- package/cpp/jsi/JsiHostObject.cpp +5 -7
- package/cpp/jsi/JsiPromises.h +1 -1
- package/cpp/jsi/ViewProperty.h +1 -1
- package/cpp/rnskia/RNDawnContext.h +13 -0
- package/cpp/rnskia/RNDawnUtils.h +11 -1
- package/cpp/rnskia/RNSkJsiViewApi.h +2 -2
- package/cpp/rnskia/RNSkManager.cpp +88 -2
- package/cpp/rnskia/RNSkPictureView.h +4 -4
- package/cpp/rnskia/RNSkPlatformContext.h +7 -0
- package/cpp/rnskia/RNSkView.h +9 -6
- package/cpp/rnwgpu/ArrayBuffer.h +51 -7
- package/cpp/rnwgpu/api/AppleNativeBuffer.h +22 -0
- package/cpp/rnwgpu/api/Convertors.h +33 -11
- package/cpp/rnwgpu/api/GPU.cpp +0 -3
- package/cpp/rnwgpu/api/GPUAdapter.cpp +37 -7
- package/cpp/rnwgpu/api/GPUBuffer.h +1 -1
- package/cpp/rnwgpu/api/GPUDevice.cpp +84 -6
- package/cpp/rnwgpu/api/GPUDevice.h +12 -0
- package/cpp/rnwgpu/api/GPUExternalTexture.cpp +139 -0
- package/cpp/rnwgpu/api/GPUExternalTexture.h +52 -2
- package/cpp/rnwgpu/api/GPUQueue.cpp +50 -45
- package/cpp/rnwgpu/api/GPUShaderModule.cpp +1 -1
- package/cpp/rnwgpu/api/GPUSharedFence.cpp +80 -0
- package/cpp/rnwgpu/api/GPUSharedFence.h +53 -0
- package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +135 -0
- package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +75 -0
- package/cpp/rnwgpu/api/ImageBitmap.h +62 -0
- package/cpp/rnwgpu/api/NativeBufferUtils.h +87 -0
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +4 -1
- package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +56 -0
- package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +10 -0
- package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +43 -24
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +9 -9
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +2 -2
- package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +58 -0
- package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +51 -0
- package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +73 -0
- package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +1 -1
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +1 -1
- package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +1 -1
- package/cpp/skia/include/android/SkAnimatedImage.h +1 -1
- package/cpp/skia/include/codec/SkCodec.h +0 -8
- package/cpp/skia/include/codec/SkEncodedOrigin.h +1 -1
- package/cpp/skia/include/codec/SkPngRustDecoder.h +1 -1
- package/cpp/skia/include/core/SkBitmap.h +2 -8
- package/cpp/skia/include/core/SkCPURecorder.h +3 -1
- package/cpp/skia/include/core/SkCanvasVirtualEnforcer.h +1 -1
- package/cpp/skia/include/core/SkColorType.h +5 -3
- package/cpp/skia/include/core/SkContourMeasure.h +1 -1
- package/cpp/skia/include/core/SkCoverageMode.h +1 -1
- package/cpp/skia/include/core/SkCubicMap.h +1 -1
- package/cpp/skia/include/core/SkExecutor.h +1 -1
- package/cpp/skia/include/core/SkFont.h +15 -0
- package/cpp/skia/include/core/SkFontArguments.h +6 -1
- package/cpp/skia/include/core/SkFontMetrics.h +1 -1
- package/cpp/skia/include/core/SkFontMgr.h +36 -1
- package/cpp/skia/include/core/SkFontParameters.h +1 -1
- package/cpp/skia/include/core/SkFontScanner.h +1 -1
- package/cpp/skia/include/core/SkFontTypes.h +1 -1
- package/cpp/skia/include/core/SkM44.h +1 -1
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkOpenTypeSVGDecoder.h +1 -1
- package/cpp/skia/include/core/SkPathBuilder.h +10 -4
- package/cpp/skia/include/core/SkPathIter.h +1 -1
- package/cpp/skia/include/core/SkPathTypes.h +1 -1
- package/cpp/skia/include/core/SkPixelRef.h +4 -1
- package/cpp/skia/include/core/SkRecorder.h +2 -1
- package/cpp/skia/include/core/SkRegion.h +17 -6
- package/cpp/skia/include/core/SkSamplingOptions.h +1 -1
- package/cpp/skia/include/core/SkSerialProcs.h +8 -1
- package/cpp/skia/include/core/SkShader.h +3 -5
- package/cpp/skia/include/core/SkSpan.h +1 -1
- package/cpp/skia/include/core/SkStream.h +1 -1
- package/cpp/skia/include/core/SkStrikeRef.h +80 -0
- package/cpp/skia/include/core/SkTileMode.h +1 -1
- package/cpp/skia/include/core/SkVertices.h +1 -1
- package/cpp/skia/include/core/SkYUVAPixmaps.h +3 -5
- package/cpp/skia/include/docs/SkPDFDocument.h +1 -1
- package/cpp/skia/include/docs/SkXPSDocument.h +1 -1
- package/cpp/skia/include/effects/SkGradient.h +1 -1
- package/cpp/skia/include/effects/SkHighContrastFilter.h +1 -1
- package/cpp/skia/include/effects/SkRuntimeEffect.h +2 -2
- package/cpp/skia/include/effects/SkShaderMaskFilter.h +1 -1
- package/cpp/skia/include/effects/SkTrimPathEffect.h +1 -1
- package/cpp/skia/include/encode/SkEncoder.h +1 -1
- package/cpp/skia/include/encode/SkJpegEncoder.h +1 -1
- package/cpp/skia/include/encode/SkPngEncoder.h +1 -1
- package/cpp/skia/include/encode/SkPngRustEncoder.h +1 -1
- package/cpp/skia/include/encode/SkWebpEncoder.h +1 -1
- package/cpp/skia/include/gpu/GpuTypes.h +2 -0
- package/cpp/skia/include/gpu/MutableTextureState.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +6 -62
- package/cpp/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +2 -1
- package/cpp/skia/include/gpu/ganesh/mock/GrMockBackendSurface.h +59 -0
- package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +1 -1
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendContext.h +1 -1
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlTypes.h +1 -1
- package/cpp/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +1 -1
- package/cpp/skia/include/gpu/graphite/Context.h +12 -5
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +6 -0
- package/cpp/skia/include/gpu/graphite/Image.h +82 -9
- package/cpp/skia/include/gpu/graphite/PrecompileContext.h +7 -2
- package/cpp/skia/include/gpu/graphite/Recorder.h +6 -4
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +11 -1
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +1 -0
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +1 -1
- package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +1 -1
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +1 -1
- package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +1 -1
- package/cpp/skia/include/gpu/vk/VulkanTypes.h +1 -1
- package/cpp/skia/include/ports/SkCFObject.h +1 -1
- package/cpp/skia/include/ports/SkFontMgr_Fontations.h +1 -1
- package/cpp/skia/include/ports/SkFontMgr_android_ndk.h +1 -1
- package/cpp/skia/include/ports/SkFontMgr_data.h +1 -1
- package/cpp/skia/include/ports/SkFontMgr_fuchsia.h +1 -1
- package/cpp/skia/include/ports/SkFontMgr_mac_ct.h +1 -1
- package/cpp/skia/include/ports/SkFontScanner_Fontations.h +1 -1
- package/cpp/skia/include/ports/SkFontScanner_FreeType.h +1 -1
- package/cpp/skia/include/ports/SkTypeface_fontations.h +1 -1
- package/cpp/skia/include/private/SkExif.h +1 -1
- package/cpp/skia/include/private/SkGainmapInfo.h +1 -1
- package/cpp/skia/include/private/SkGainmapShader.h +1 -1
- package/cpp/skia/include/private/SkHdrMetadata.h +21 -0
- package/cpp/skia/include/private/SkJpegGainmapEncoder.h +1 -1
- package/cpp/skia/include/private/SkPixelStorage.h +37 -0
- package/cpp/skia/include/private/SkXmp.h +1 -1
- package/cpp/skia/include/private/base/SkAssert.h +6 -5
- package/cpp/skia/include/private/base/SkContainers.h +1 -1
- package/cpp/skia/include/private/base/SkFeatures.h +30 -30
- package/cpp/skia/include/private/base/SkLog.h +1 -7
- package/cpp/skia/include/private/base/SkLogPriority.h +4 -5
- package/cpp/skia/include/private/base/SkMacros.h +1 -1
- package/cpp/skia/include/private/base/SkMalloc.h +1 -1
- package/cpp/skia/include/private/base/SkSafe32.h +1 -1
- package/cpp/skia/include/private/base/SkSpan_impl.h +1 -1
- package/cpp/skia/include/private/base/SkTDArray.h +13 -1
- package/cpp/skia/include/private/base/SkTPin.h +1 -1
- package/cpp/skia/include/private/base/SkTo.h +1 -1
- package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +1 -1
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -1
- package/cpp/skia/include/private/chromium/SkCodecsICCProfileChromium.h +52 -0
- package/cpp/skia/include/private/chromium/SkExifChromium.h +26 -0
- package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +2 -1
- package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +1 -1
- package/cpp/skia/include/sksl/SkSLDebugTrace.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_icd.h +41 -51
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_layer.h +42 -53
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_platform.h +2 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std.h +158 -154
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_decode.h +68 -65
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_encode.h +90 -87
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std.h +9 -9
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_decode.h +2 -2
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_encode.h +82 -79
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std.h +24 -24
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_decode.h +2 -2
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_encode.h +95 -96
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_vp9std.h +151 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_vp9std_decode.h +68 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codecs_common.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +5 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +7 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_beta.h +291 -158
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +13174 -10113
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_directfb.h +23 -19
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_fuchsia.h +159 -165
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ggp.h +22 -19
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ios.h +3 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_macos.h +3 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_metal.h +94 -88
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ohos.h +120 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_screen.h +55 -51
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_vi.h +18 -15
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_wayland.h +23 -19
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_win32.h +31 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xcb.h +5 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xlib.h +27 -27
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xlib_xrandr.h +20 -16
- package/cpp/skia/include/utils/SkEventTracer.h +6 -1
- package/cpp/skia/include/utils/SkOrderedFontMgr.h +1 -1
- package/cpp/skia/include/utils/SkShadowUtils.h +1 -1
- package/cpp/skia/include/utils/SkTextUtils.h +1 -1
- package/cpp/skia/modules/jsonreader/SkJSONReader.cpp +20 -4
- package/cpp/skia/modules/skcms/src/Transform_inl.h +11 -15
- package/cpp/skia/modules/skcms/src/skcms_public.h +2 -0
- package/cpp/skia/modules/skottie/include/ExternalLayer.h +1 -1
- package/cpp/skia/modules/skottie/include/Skottie.h +1 -1
- package/cpp/skia/modules/skottie/include/SkottieProperty.h +1 -1
- package/cpp/skia/modules/skottie/include/SlotManager.h +1 -1
- package/cpp/skia/modules/skottie/include/TextShaper.h +1 -1
- package/cpp/skia/modules/skottie/src/SkottieValue.h +1 -1
- package/cpp/skia/modules/skottie/src/animator/Animator.h +1 -1
- package/cpp/skia/modules/skottie/src/text/Font.h +1 -1
- package/cpp/skia/modules/skottie/src/text/TextAdapter.h +1 -1
- package/cpp/skia/modules/skottie/src/text/TextAnimator.h +3 -2
- package/cpp/skia/modules/skottie/src/text/TextValue.h +1 -1
- package/cpp/skia/modules/skparagraph/include/DartTypes.h +1 -1
- package/cpp/skia/modules/skparagraph/include/FontArguments.h +1 -1
- package/cpp/skia/modules/skparagraph/include/FontCollection.h +5 -1
- package/cpp/skia/modules/skparagraph/include/Metrics.h +1 -1
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +1 -1
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +1 -1
- package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +1 -1
- package/cpp/skia/modules/skparagraph/include/ParagraphPainter.h +1 -1
- package/cpp/skia/modules/skparagraph/include/ParagraphStyle.h +12 -5
- package/cpp/skia/modules/skparagraph/include/TextShadow.h +1 -1
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +1 -1
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGClipEffect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGColorFilter.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGDraw.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGEffectNode.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGGeometryEffect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGGeometryNode.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGGradient.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGGroup.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGImage.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGInvalidationController.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGMaskEffect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGMerge.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGNode.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGOpacityEffect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGPaint.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGPath.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGPlane.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGRect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGRenderEffect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGRenderNode.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGScene.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGText.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGTransform.h +1 -1
- package/cpp/skia/modules/skshaper/include/SkShaper_coretext.h +8 -1
- package/cpp/skia/modules/svg/include/SkSVGFe.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeImage.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFilter.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGImage.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGMask.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPattern.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGText.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGUse.h +1 -1
- package/cpp/skia/src/base/SkAutoLocaleSetter.h +94 -0
- package/cpp/skia/src/base/SkUTF.h +1 -1
- package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.d.ts +10 -1
- package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.js.map +1 -1
- package/lib/commonjs/skia/types/WebGPU.d.ts +153 -0
- package/lib/commonjs/skia/types/WebGPU.js +6 -0
- package/lib/commonjs/skia/types/WebGPU.js.map +1 -0
- package/lib/commonjs/skia/types/index.d.ts +1 -0
- package/lib/commonjs/skia/types/index.js +11 -0
- package/lib/commonjs/skia/types/index.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.d.ts +1 -0
- package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.js +19 -0
- package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPath.js.map +1 -1
- package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.d.ts +10 -1
- package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.js.map +1 -1
- package/lib/module/skia/types/WebGPU.d.ts +153 -0
- package/lib/module/skia/types/WebGPU.js +2 -0
- package/lib/module/skia/types/WebGPU.js.map +1 -0
- package/lib/module/skia/types/index.d.ts +1 -0
- package/lib/module/skia/types/index.js +1 -0
- package/lib/module/skia/types/index.js.map +1 -1
- package/lib/module/skia/web/JsiSkNativeBufferFactory.d.ts +1 -0
- package/lib/module/skia/web/JsiSkNativeBufferFactory.js +19 -0
- package/lib/module/skia/web/JsiSkNativeBufferFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkPath.js.map +1 -1
- package/lib/module/web/LoadSkiaWeb.js +1 -2
- package/lib/module/web/LoadSkiaWeb.js.map +1 -1
- package/lib/typescript/lib/commonjs/skia/types/WebGPU.d.ts +1 -0
- package/lib/typescript/lib/commonjs/skia/web/JsiSkNativeBufferFactory.d.ts +1 -0
- package/lib/typescript/lib/module/skia/types/WebGPU.d.ts +1 -0
- package/lib/typescript/lib/module/skia/types/index.d.ts +1 -0
- package/lib/typescript/lib/module/skia/web/JsiSkNativeBufferFactory.d.ts +1 -0
- package/lib/typescript/src/skia/types/NativeBuffer/NativeBufferFactory.d.ts +10 -1
- package/lib/typescript/src/skia/types/WebGPU.d.ts +153 -0
- package/lib/typescript/src/skia/types/index.d.ts +1 -0
- package/lib/typescript/src/skia/web/JsiSkNativeBufferFactory.d.ts +1 -0
- package/package.json +18 -15
- package/react-native-skia.podspec +59 -7
- package/src/skia/types/NativeBuffer/NativeBufferFactory.ts +10 -1
- package/src/skia/types/WebGPU.ts +186 -0
- package/src/skia/types/index.ts +1 -0
- package/src/skia/web/JsiSkNativeBufferFactory.ts +20 -0
- package/src/skia/web/JsiSkPath.ts +8 -2
- package/scripts/install-libs.js +0 -133
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PathVerb","getEnum","HostObject","optEnum","JsiSkPoint","JsiSkRect","JsiSkRRect","JsiSkMatrix","CommandCount","Move","Line","Quad","Conic","Cubic","Close","shownDeprecationWarnings","Set","warnDeprecatedPathMethod","methodName","suggestion","has","add","console","warn","toMatrix3x3","m","matrix","Array","from","fromValue","length","Error","JsiSkPath","constructor","CanvasKit","ref","asPath","snapshot","pathFromValue","value","addPath","src","extend","srcBuilder","srcPath","args","delete","addArc","oval","startAngleInDegrees","sweepAngleInDegrees","addOval","isCCW","startIndex","addPoly","points","close","addPolygon","map","p","flat","addRect","rect","addRRect","rrect","addCircle","x","y","r","moveTo","rMoveTo","lineTo","rLineTo","quadTo","x1","y1","x2","y2","rQuadTo","conicTo","w","rConicTo","cubicTo","cpx1","cpy1","cpx2","cpy2","rCubicTo","reset","newBuilder","PathBuilder","rewind","arcToOval","forceMoveTo","arcToRotated","rx","ry","xAxisRotateInDegrees","useSmallArc","rArcTo","dx","dy","arcToTangent","radius","setFillType","fill","setIsVolatile","_volatile","offset","transform","makeAsWinding","path","result","old","simplify","makeSimplified","op","self","other","makeCombined","dash","on","off","phase","makeDashed","stroke","opts","makeStroked","undefined","width","miter_limit","precision","join","cap","trim","start","stop","isComplement","startT","Math","min","max","stopT","makeTrimmed","countPoints","computeTightBounds","contains","copy","equals","p1","p2","getBounds","getFillType","getPoint","index","isEmpty","isVolatile","getLastPt","count","pt","toSVGString","isInterpolatable","path2","Path","CanInterpolate","interpolate","end","weight","output","MakeFromPathInterpolation","outRef","toCmds","cmds","reduce","acc","cmd","i","push","current"],"sources":["JsiSkPath.ts"],"sourcesContent":["import type { CanvasKit, PathBuilder as CKPathBuilder } from \"canvaskit-wasm\";\n\nimport { PathVerb } from \"../types\";\nimport type {\n FillType,\n PathCommand,\n PathOp,\n SkMatrix,\n SkPath,\n SkPoint,\n SkRect,\n InputRRect,\n StrokeOpts,\n InputMatrix,\n} from \"../types\";\n\nimport { getEnum, HostObject, optEnum } from \"./Host\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\n\nconst CommandCount = {\n [PathVerb.Move]: 3,\n [PathVerb.Line]: 3,\n [PathVerb.Quad]: 5,\n [PathVerb.Conic]: 6,\n [PathVerb.Cubic]: 7,\n [PathVerb.Close]: 1,\n};\n\n// Track which deprecation warnings have been shown to avoid spam\nconst shownDeprecationWarnings = new Set<string>();\n\nconst warnDeprecatedPathMethod = (\n methodName: string,\n suggestion: string\n): void => {\n if (shownDeprecationWarnings.has(methodName)) {\n return;\n }\n shownDeprecationWarnings.add(methodName);\n console.warn(\n `[react-native-skia] SkPath.${methodName}() is deprecated and will be removed in a future release. ${suggestion} See migration guide: https://shopify.github.io/react-native-skia/docs/shapes/path-migration`\n );\n};\n\nexport const toMatrix3x3 = (m: InputMatrix): number[] => {\n let matrix =\n m instanceof JsiSkMatrix\n ? Array.from(JsiSkMatrix.fromValue<Float32Array>(m))\n : (m as Exclude<InputMatrix, SkMatrix>);\n if (matrix.length === 16) {\n matrix = [\n matrix[0],\n matrix[1],\n matrix[3],\n matrix[4],\n matrix[5],\n matrix[7],\n matrix[12],\n matrix[13],\n matrix[15],\n ];\n } else if (matrix.length !== 9) {\n throw new Error(`Invalid matrix length: ${matrix.length}`);\n }\n return matrix as number[];\n};\n\n/**\n * SkPath wraps a CK PathBuilder internally, providing both mutable building\n * methods and immutable query methods. Use snapshot() internally to get\n * an immutable CK Path for read-only operations.\n */\nexport class JsiSkPath\n extends HostObject<CKPathBuilder, \"Path\">\n implements SkPath\n{\n constructor(CanvasKit: CanvasKit, ref: CKPathBuilder) {\n super(CanvasKit, ref, \"Path\");\n }\n\n /** Returns an immutable CK Path snapshot for read-only operations. */\n private asPath() {\n return this.ref.snapshot();\n }\n\n /** Extract an immutable CK Path from a JsiSkPath value (for CK interop). */\n static pathFromValue(value: SkPath) {\n return JsiSkPath.fromValue<CKPathBuilder>(value).snapshot();\n }\n\n // ---- Mutable building methods (deprecated) ----\n\n addPath(src: SkPath, matrix?: SkMatrix, extend = false) {\n warnDeprecatedPathMethod(\n \"addPath\",\n \"Use Skia.PathBuilder.Make().addPath() instead.\"\n );\n const srcBuilder = JsiSkPath.fromValue<CKPathBuilder>(src);\n const srcPath = srcBuilder.snapshot();\n const args = [\n srcPath,\n ...(matrix ? JsiSkMatrix.fromValue<Float32Array>(matrix) : []),\n extend,\n ];\n this.ref.addPath(...args);\n srcPath.delete();\n return this;\n }\n\n addArc(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number\n ) {\n warnDeprecatedPathMethod(\n \"addArc\",\n \"Use Skia.PathBuilder.Make().addArc() instead.\"\n );\n this.ref.addArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees\n );\n return this;\n }\n\n addOval(oval: SkRect, isCCW?: boolean, startIndex?: number) {\n warnDeprecatedPathMethod(\n \"addOval\",\n \"Use Skia.Path.Oval() or Skia.PathBuilder.Make().addOval() instead.\"\n );\n this.ref.addOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n isCCW,\n startIndex\n );\n return this;\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n warnDeprecatedPathMethod(\n \"addPoly\",\n \"Use Skia.Path.Polygon() or Skia.PathBuilder.Make().addPoly() instead.\"\n );\n this.ref.addPolygon(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return this;\n }\n\n addRect(rect: SkRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRect\",\n \"Use Skia.Path.Rect() or Skia.PathBuilder.Make().addRect() instead.\"\n );\n this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n return this;\n }\n\n addRRect(rrect: InputRRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRRect\",\n \"Use Skia.Path.RRect() or Skia.PathBuilder.Make().addRRect() instead.\"\n );\n this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return this;\n }\n\n addCircle(x: number, y: number, r: number) {\n warnDeprecatedPathMethod(\n \"addCircle\",\n \"Use Skia.Path.Circle() or Skia.PathBuilder.Make().addCircle() instead.\"\n );\n this.ref.addCircle(x, y, r);\n return this;\n }\n\n moveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"moveTo\",\n \"Use Skia.PathBuilder.Make().moveTo() instead.\"\n );\n this.ref.moveTo(x, y);\n return this;\n }\n\n rMoveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rMoveTo\",\n \"Use Skia.PathBuilder.Make().rMoveTo() instead.\"\n );\n this.ref.rMoveTo(x, y);\n return this;\n }\n\n lineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"lineTo\",\n \"Use Skia.PathBuilder.Make().lineTo() instead.\"\n );\n this.ref.lineTo(x, y);\n return this;\n }\n\n rLineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rLineTo\",\n \"Use Skia.PathBuilder.Make().rLineTo() instead.\"\n );\n this.ref.rLineTo(x, y);\n return this;\n }\n\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"quadTo\",\n \"Use Skia.PathBuilder.Make().quadTo() instead.\"\n );\n this.ref.quadTo(x1, y1, x2, y2);\n return this;\n }\n\n rQuadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"rQuadTo\",\n \"Use Skia.PathBuilder.Make().rQuadTo() instead.\"\n );\n this.ref.rQuadTo(x1, y1, x2, y2);\n return this;\n }\n\n conicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"conicTo\",\n \"Use Skia.PathBuilder.Make().conicTo() instead.\"\n );\n this.ref.conicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n rConicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"rConicTo\",\n \"Use Skia.PathBuilder.Make().rConicTo() instead.\"\n );\n this.ref.rConicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n cubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n warnDeprecatedPathMethod(\n \"cubicTo\",\n \"Use Skia.PathBuilder.Make().cubicTo() instead.\"\n );\n this.ref.cubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n rCubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n warnDeprecatedPathMethod(\n \"rCubicTo\",\n \"Use Skia.PathBuilder.Make().rCubicTo() instead.\"\n );\n this.ref.rCubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n close() {\n warnDeprecatedPathMethod(\n \"close\",\n \"Use Skia.PathBuilder.Make().close() instead.\"\n );\n this.ref.close();\n return this;\n }\n\n reset() {\n warnDeprecatedPathMethod(\n \"reset\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n // CK PathBuilder has no reset — recreate\n const newBuilder = new this.CanvasKit.PathBuilder();\n if (\n this.ref !== null &&\n typeof this.ref === \"object\" &&\n \"delete\" in this.ref &&\n typeof this.ref.delete === \"function\"\n ) {\n this.ref.delete();\n }\n this.ref = newBuilder;\n return this;\n }\n\n rewind() {\n warnDeprecatedPathMethod(\n \"rewind\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n return this.reset();\n }\n\n arcToOval(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number,\n forceMoveTo: boolean\n ) {\n warnDeprecatedPathMethod(\n \"arcToOval\",\n \"Use Skia.PathBuilder.Make().arcToOval() instead.\"\n );\n this.ref.arcToOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees,\n forceMoveTo\n );\n return this;\n }\n\n arcToRotated(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n x: number,\n y: number\n ) {\n warnDeprecatedPathMethod(\n \"arcToRotated\",\n \"Use Skia.PathBuilder.Make().arcToRotated() instead.\"\n );\n this.ref.arcToRotated(\n rx,\n ry,\n xAxisRotateInDegrees,\n useSmallArc,\n isCCW,\n x,\n y\n );\n return this;\n }\n\n rArcTo(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n dx: number,\n dy: number\n ) {\n warnDeprecatedPathMethod(\n \"rArcTo\",\n \"Use Skia.PathBuilder.Make().rArcTo() instead.\"\n );\n this.ref.rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy);\n return this;\n }\n\n arcToTangent(x1: number, y1: number, x2: number, y2: number, radius: number) {\n warnDeprecatedPathMethod(\n \"arcToTangent\",\n \"Use Skia.PathBuilder.Make().arcToTangent() instead.\"\n );\n this.ref.arcToTangent(x1, y1, x2, y2, radius);\n return this;\n }\n\n setFillType(fill: FillType) {\n warnDeprecatedPathMethod(\n \"setFillType\",\n \"Use Skia.PathBuilder.Make().setFillType() instead.\"\n );\n this.ref.setFillType(getEnum(this.CanvasKit, \"FillType\", fill));\n return this;\n }\n\n setIsVolatile(_volatile: boolean) {\n warnDeprecatedPathMethod(\n \"setIsVolatile\",\n \"Use Skia.PathBuilder.Make().setIsVolatile() instead.\"\n );\n // Not supported in CK PathBuilder — no-op\n return this;\n }\n\n // ---- Mutable path operations (deprecated) ----\n\n offset(dx: number, dy: number) {\n warnDeprecatedPathMethod(\n \"offset\",\n \"Use Skia.PathBuilder.Make().offset() instead.\"\n );\n this.ref.offset(dx, dy);\n return this;\n }\n\n transform(m: InputMatrix) {\n warnDeprecatedPathMethod(\n \"transform\",\n \"Use Skia.PathBuilder.Make().transform() instead.\"\n );\n const matrix = toMatrix3x3(m);\n this.ref.transform(matrix);\n return this;\n }\n\n makeAsWinding() {\n warnDeprecatedPathMethod(\n \"makeAsWinding\",\n \"Use Skia.Path.AsWinding(path) instead.\"\n );\n const path = this.asPath();\n const result = path.makeAsWinding();\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n simplify() {\n warnDeprecatedPathMethod(\"simplify\", \"Use Skia.Path.Simplify(path) instead.\");\n const path = this.asPath();\n const result = path.makeSimplified();\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n op(path: SkPath, op: PathOp) {\n warnDeprecatedPathMethod(\"op\", \"Use Skia.Path.MakeFromOp() instead.\");\n const self = this.asPath();\n const other = JsiSkPath.fromValue<CKPathBuilder>(path).snapshot();\n const result = self.makeCombined(\n other,\n getEnum(this.CanvasKit, \"PathOp\", op)\n );\n self.delete();\n other.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n dash(on: number, off: number, phase: number) {\n warnDeprecatedPathMethod(\n \"dash\",\n \"Use Skia.Path.Dash(path, on, off, phase) instead.\"\n );\n const path = this.asPath();\n const result = path.makeDashed(on, off, phase);\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n stroke(opts?: StrokeOpts) {\n warnDeprecatedPathMethod(\"stroke\", \"Use Skia.Path.Stroke(path, opts) instead.\");\n const path = this.asPath();\n const result = path.makeStroked(\n opts === undefined\n ? undefined\n : {\n width: opts.width,\n // eslint-disable-next-line camelcase\n miter_limit: opts.miter_limit,\n precision: opts.precision,\n join: optEnum(this.CanvasKit, \"StrokeJoin\", opts.join),\n cap: optEnum(this.CanvasKit, \"StrokeCap\", opts.cap),\n }\n );\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n trim(start: number, stop: number, isComplement: boolean) {\n warnDeprecatedPathMethod(\n \"trim\",\n \"Use Skia.Path.Trim(path, start, end, isComplement) instead.\"\n );\n const startT = Math.min(Math.max(start, 0), 1);\n const stopT = Math.min(Math.max(stop, 0), 1);\n if (startT === 0 && stopT === 1 && !isComplement) {\n return this;\n }\n const path = this.asPath();\n const result = path.makeTrimmed(startT, stopT, isComplement);\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n // ---- Query methods (use snapshot for read-only) ----\n\n countPoints() {\n return this.ref.countPoints();\n }\n\n computeTightBounds(): SkRect {\n const path = this.asPath();\n const result = new JsiSkRect(this.CanvasKit, path.computeTightBounds());\n path.delete();\n return result;\n }\n\n contains(x: number, y: number) {\n const path = this.asPath();\n const result = path.contains(x, y);\n path.delete();\n return result;\n }\n\n copy() {\n const path = this.asPath();\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n equals(other: SkPath) {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(other).snapshot();\n const result = p1.equals(p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n getBounds() {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n getFillType(): FillType {\n const path = this.asPath();\n const result = path.getFillType().value;\n path.delete();\n return result;\n }\n\n getPoint(index: number): SkPoint {\n const path = this.asPath();\n const result = new JsiSkPoint(this.CanvasKit, path.getPoint(index));\n path.delete();\n return result;\n }\n\n isEmpty() {\n return this.ref.isEmpty();\n }\n\n isVolatile() {\n return false;\n }\n\n getLastPt() {\n const count = this.ref.countPoints();\n if (count === 0) {\n return { x: 0, y: 0 };\n }\n const path = this.asPath();\n const pt = path.getPoint(count - 1);\n path.delete();\n return { x: pt[0], y: pt[1] };\n }\n\n toSVGString() {\n const path = this.asPath();\n const result = path.toSVGString();\n path.delete();\n return result;\n }\n\n isInterpolatable(path2: SkPath): boolean {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(path2).snapshot();\n const result = this.CanvasKit.Path.CanInterpolate(p1, p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n interpolate(end: SkPath, weight: number, output?: SkPath): SkPath | null {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(end).snapshot();\n const path = this.CanvasKit.Path.MakeFromPathInterpolation(p1, p2, weight);\n p1.delete();\n p2.delete();\n if (path === null) {\n return null;\n }\n if (output) {\n const outRef = output as JsiSkPath;\n const old = outRef.ref;\n outRef.ref = new this.CanvasKit.PathBuilder(path);\n path.delete();\n old.delete();\n return output;\n }\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n toCmds() {\n const path = this.asPath();\n const cmds = path.toCmds();\n path.delete();\n const result = cmds.reduce<PathCommand[]>((acc, cmd, i) => {\n if (i === 0) {\n acc.push([]);\n }\n const current = acc[acc.length - 1];\n if (current.length === 0) {\n current.push(cmd);\n const length = CommandCount[current[0] as PathVerb];\n if (current.length === length && i !== cmds.length - 1) {\n acc.push([]);\n }\n } else {\n const length = CommandCount[current[0] as PathVerb];\n if (current.length < length) {\n current.push(cmd);\n }\n if (current.length === length && i !== cmds.length - 1) {\n acc.push([]);\n }\n }\n return acc;\n }, []);\n return result;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["PathVerb","getEnum","HostObject","optEnum","JsiSkPoint","JsiSkRect","JsiSkRRect","JsiSkMatrix","CommandCount","Move","Line","Quad","Conic","Cubic","Close","shownDeprecationWarnings","Set","warnDeprecatedPathMethod","methodName","suggestion","has","add","console","warn","toMatrix3x3","m","matrix","Array","from","fromValue","length","Error","JsiSkPath","constructor","CanvasKit","ref","asPath","snapshot","pathFromValue","value","addPath","src","extend","srcBuilder","srcPath","args","delete","addArc","oval","startAngleInDegrees","sweepAngleInDegrees","addOval","isCCW","startIndex","addPoly","points","close","addPolygon","map","p","flat","addRect","rect","addRRect","rrect","addCircle","x","y","r","moveTo","rMoveTo","lineTo","rLineTo","quadTo","x1","y1","x2","y2","rQuadTo","conicTo","w","rConicTo","cubicTo","cpx1","cpy1","cpx2","cpy2","rCubicTo","reset","newBuilder","PathBuilder","rewind","arcToOval","forceMoveTo","arcToRotated","rx","ry","xAxisRotateInDegrees","useSmallArc","rArcTo","dx","dy","arcToTangent","radius","setFillType","fill","setIsVolatile","_volatile","offset","transform","makeAsWinding","path","result","old","simplify","makeSimplified","op","self","other","makeCombined","dash","on","off","phase","makeDashed","stroke","opts","makeStroked","undefined","width","miter_limit","precision","join","cap","trim","start","stop","isComplement","startT","Math","min","max","stopT","makeTrimmed","countPoints","computeTightBounds","contains","copy","equals","p1","p2","getBounds","getFillType","getPoint","index","isEmpty","isVolatile","getLastPt","count","pt","toSVGString","isInterpolatable","path2","Path","CanInterpolate","interpolate","end","weight","output","MakeFromPathInterpolation","outRef","toCmds","cmds","reduce","acc","cmd","i","push","current"],"sources":["JsiSkPath.ts"],"sourcesContent":["import type { CanvasKit, PathBuilder as CKPathBuilder } from \"canvaskit-wasm\";\n\nimport { PathVerb } from \"../types\";\nimport type {\n FillType,\n PathCommand,\n PathOp,\n SkMatrix,\n SkPath,\n SkPoint,\n SkRect,\n InputRRect,\n StrokeOpts,\n InputMatrix,\n} from \"../types\";\n\nimport { getEnum, HostObject, optEnum } from \"./Host\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\n\nconst CommandCount = {\n [PathVerb.Move]: 3,\n [PathVerb.Line]: 3,\n [PathVerb.Quad]: 5,\n [PathVerb.Conic]: 6,\n [PathVerb.Cubic]: 7,\n [PathVerb.Close]: 1,\n};\n\n// Track which deprecation warnings have been shown to avoid spam\nconst shownDeprecationWarnings = new Set<string>();\n\nconst warnDeprecatedPathMethod = (\n methodName: string,\n suggestion: string\n): void => {\n if (shownDeprecationWarnings.has(methodName)) {\n return;\n }\n shownDeprecationWarnings.add(methodName);\n console.warn(\n `[react-native-skia] SkPath.${methodName}() is deprecated and will be removed in a future release. ${suggestion} See migration guide: https://shopify.github.io/react-native-skia/docs/shapes/path-migration`\n );\n};\n\nexport const toMatrix3x3 = (m: InputMatrix): number[] => {\n let matrix =\n m instanceof JsiSkMatrix\n ? Array.from(JsiSkMatrix.fromValue<Float32Array>(m))\n : (m as Exclude<InputMatrix, SkMatrix>);\n if (matrix.length === 16) {\n matrix = [\n matrix[0],\n matrix[1],\n matrix[3],\n matrix[4],\n matrix[5],\n matrix[7],\n matrix[12],\n matrix[13],\n matrix[15],\n ];\n } else if (matrix.length !== 9) {\n throw new Error(`Invalid matrix length: ${matrix.length}`);\n }\n return matrix as number[];\n};\n\n/**\n * SkPath wraps a CK PathBuilder internally, providing both mutable building\n * methods and immutable query methods. Use snapshot() internally to get\n * an immutable CK Path for read-only operations.\n */\nexport class JsiSkPath\n extends HostObject<CKPathBuilder, \"Path\">\n implements SkPath\n{\n constructor(CanvasKit: CanvasKit, ref: CKPathBuilder) {\n super(CanvasKit, ref, \"Path\");\n }\n\n /** Returns an immutable CK Path snapshot for read-only operations. */\n private asPath() {\n return this.ref.snapshot();\n }\n\n /** Extract an immutable CK Path from a JsiSkPath value (for CK interop). */\n static pathFromValue(value: SkPath) {\n return JsiSkPath.fromValue<CKPathBuilder>(value).snapshot();\n }\n\n // ---- Mutable building methods (deprecated) ----\n\n addPath(src: SkPath, matrix?: SkMatrix, extend = false) {\n warnDeprecatedPathMethod(\n \"addPath\",\n \"Use Skia.PathBuilder.Make().addPath() instead.\"\n );\n const srcBuilder = JsiSkPath.fromValue<CKPathBuilder>(src);\n const srcPath = srcBuilder.snapshot();\n const args = [\n srcPath,\n ...(matrix ? JsiSkMatrix.fromValue<Float32Array>(matrix) : []),\n extend,\n ];\n this.ref.addPath(...args);\n srcPath.delete();\n return this;\n }\n\n addArc(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number\n ) {\n warnDeprecatedPathMethod(\n \"addArc\",\n \"Use Skia.PathBuilder.Make().addArc() instead.\"\n );\n this.ref.addArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees\n );\n return this;\n }\n\n addOval(oval: SkRect, isCCW?: boolean, startIndex?: number) {\n warnDeprecatedPathMethod(\n \"addOval\",\n \"Use Skia.Path.Oval() or Skia.PathBuilder.Make().addOval() instead.\"\n );\n this.ref.addOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n isCCW,\n startIndex\n );\n return this;\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n warnDeprecatedPathMethod(\n \"addPoly\",\n \"Use Skia.Path.Polygon() or Skia.PathBuilder.Make().addPoly() instead.\"\n );\n this.ref.addPolygon(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return this;\n }\n\n addRect(rect: SkRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRect\",\n \"Use Skia.Path.Rect() or Skia.PathBuilder.Make().addRect() instead.\"\n );\n this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n return this;\n }\n\n addRRect(rrect: InputRRect, isCCW?: boolean) {\n warnDeprecatedPathMethod(\n \"addRRect\",\n \"Use Skia.Path.RRect() or Skia.PathBuilder.Make().addRRect() instead.\"\n );\n this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return this;\n }\n\n addCircle(x: number, y: number, r: number) {\n warnDeprecatedPathMethod(\n \"addCircle\",\n \"Use Skia.Path.Circle() or Skia.PathBuilder.Make().addCircle() instead.\"\n );\n this.ref.addCircle(x, y, r);\n return this;\n }\n\n moveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"moveTo\",\n \"Use Skia.PathBuilder.Make().moveTo() instead.\"\n );\n this.ref.moveTo(x, y);\n return this;\n }\n\n rMoveTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rMoveTo\",\n \"Use Skia.PathBuilder.Make().rMoveTo() instead.\"\n );\n this.ref.rMoveTo(x, y);\n return this;\n }\n\n lineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"lineTo\",\n \"Use Skia.PathBuilder.Make().lineTo() instead.\"\n );\n this.ref.lineTo(x, y);\n return this;\n }\n\n rLineTo(x: number, y: number) {\n warnDeprecatedPathMethod(\n \"rLineTo\",\n \"Use Skia.PathBuilder.Make().rLineTo() instead.\"\n );\n this.ref.rLineTo(x, y);\n return this;\n }\n\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"quadTo\",\n \"Use Skia.PathBuilder.Make().quadTo() instead.\"\n );\n this.ref.quadTo(x1, y1, x2, y2);\n return this;\n }\n\n rQuadTo(x1: number, y1: number, x2: number, y2: number) {\n warnDeprecatedPathMethod(\n \"rQuadTo\",\n \"Use Skia.PathBuilder.Make().rQuadTo() instead.\"\n );\n this.ref.rQuadTo(x1, y1, x2, y2);\n return this;\n }\n\n conicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"conicTo\",\n \"Use Skia.PathBuilder.Make().conicTo() instead.\"\n );\n this.ref.conicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n rConicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n warnDeprecatedPathMethod(\n \"rConicTo\",\n \"Use Skia.PathBuilder.Make().rConicTo() instead.\"\n );\n this.ref.rConicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n cubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n warnDeprecatedPathMethod(\n \"cubicTo\",\n \"Use Skia.PathBuilder.Make().cubicTo() instead.\"\n );\n this.ref.cubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n rCubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n warnDeprecatedPathMethod(\n \"rCubicTo\",\n \"Use Skia.PathBuilder.Make().rCubicTo() instead.\"\n );\n this.ref.rCubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n close() {\n warnDeprecatedPathMethod(\n \"close\",\n \"Use Skia.PathBuilder.Make().close() instead.\"\n );\n this.ref.close();\n return this;\n }\n\n reset() {\n warnDeprecatedPathMethod(\n \"reset\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n // CK PathBuilder has no reset — recreate\n const newBuilder = new this.CanvasKit.PathBuilder();\n if (\n this.ref !== null &&\n typeof this.ref === \"object\" &&\n \"delete\" in this.ref &&\n typeof this.ref.delete === \"function\"\n ) {\n this.ref.delete();\n }\n this.ref = newBuilder;\n return this;\n }\n\n rewind() {\n warnDeprecatedPathMethod(\n \"rewind\",\n \"Use Skia.PathBuilder.Make().reset() instead.\"\n );\n return this.reset();\n }\n\n arcToOval(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number,\n forceMoveTo: boolean\n ) {\n warnDeprecatedPathMethod(\n \"arcToOval\",\n \"Use Skia.PathBuilder.Make().arcToOval() instead.\"\n );\n this.ref.arcToOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees,\n forceMoveTo\n );\n return this;\n }\n\n arcToRotated(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n x: number,\n y: number\n ) {\n warnDeprecatedPathMethod(\n \"arcToRotated\",\n \"Use Skia.PathBuilder.Make().arcToRotated() instead.\"\n );\n this.ref.arcToRotated(\n rx,\n ry,\n xAxisRotateInDegrees,\n useSmallArc,\n isCCW,\n x,\n y\n );\n return this;\n }\n\n rArcTo(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n dx: number,\n dy: number\n ) {\n warnDeprecatedPathMethod(\n \"rArcTo\",\n \"Use Skia.PathBuilder.Make().rArcTo() instead.\"\n );\n this.ref.rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy);\n return this;\n }\n\n arcToTangent(x1: number, y1: number, x2: number, y2: number, radius: number) {\n warnDeprecatedPathMethod(\n \"arcToTangent\",\n \"Use Skia.PathBuilder.Make().arcToTangent() instead.\"\n );\n this.ref.arcToTangent(x1, y1, x2, y2, radius);\n return this;\n }\n\n setFillType(fill: FillType) {\n warnDeprecatedPathMethod(\n \"setFillType\",\n \"Use Skia.PathBuilder.Make().setFillType() instead.\"\n );\n this.ref.setFillType(getEnum(this.CanvasKit, \"FillType\", fill));\n return this;\n }\n\n setIsVolatile(_volatile: boolean) {\n warnDeprecatedPathMethod(\n \"setIsVolatile\",\n \"Use Skia.PathBuilder.Make().setIsVolatile() instead.\"\n );\n // Not supported in CK PathBuilder — no-op\n return this;\n }\n\n // ---- Mutable path operations (deprecated) ----\n\n offset(dx: number, dy: number) {\n warnDeprecatedPathMethod(\n \"offset\",\n \"Use Skia.PathBuilder.Make().offset() instead.\"\n );\n this.ref.offset(dx, dy);\n return this;\n }\n\n transform(m: InputMatrix) {\n warnDeprecatedPathMethod(\n \"transform\",\n \"Use Skia.PathBuilder.Make().transform() instead.\"\n );\n const matrix = toMatrix3x3(m);\n this.ref.transform(matrix);\n return this;\n }\n\n makeAsWinding() {\n warnDeprecatedPathMethod(\n \"makeAsWinding\",\n \"Use Skia.Path.AsWinding(path) instead.\"\n );\n const path = this.asPath();\n const result = path.makeAsWinding();\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n simplify() {\n warnDeprecatedPathMethod(\n \"simplify\",\n \"Use Skia.Path.Simplify(path) instead.\"\n );\n const path = this.asPath();\n const result = path.makeSimplified();\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n op(path: SkPath, op: PathOp) {\n warnDeprecatedPathMethod(\"op\", \"Use Skia.Path.MakeFromOp() instead.\");\n const self = this.asPath();\n const other = JsiSkPath.fromValue<CKPathBuilder>(path).snapshot();\n const result = self.makeCombined(\n other,\n getEnum(this.CanvasKit, \"PathOp\", op)\n );\n self.delete();\n other.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n dash(on: number, off: number, phase: number) {\n warnDeprecatedPathMethod(\n \"dash\",\n \"Use Skia.Path.Dash(path, on, off, phase) instead.\"\n );\n const path = this.asPath();\n const result = path.makeDashed(on, off, phase);\n path.delete();\n if (result === null) {\n return false;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return true;\n }\n\n stroke(opts?: StrokeOpts) {\n warnDeprecatedPathMethod(\n \"stroke\",\n \"Use Skia.Path.Stroke(path, opts) instead.\"\n );\n const path = this.asPath();\n const result = path.makeStroked(\n opts === undefined\n ? undefined\n : {\n width: opts.width,\n // eslint-disable-next-line camelcase\n miter_limit: opts.miter_limit,\n precision: opts.precision,\n join: optEnum(this.CanvasKit, \"StrokeJoin\", opts.join),\n cap: optEnum(this.CanvasKit, \"StrokeCap\", opts.cap),\n }\n );\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n trim(start: number, stop: number, isComplement: boolean) {\n warnDeprecatedPathMethod(\n \"trim\",\n \"Use Skia.Path.Trim(path, start, end, isComplement) instead.\"\n );\n const startT = Math.min(Math.max(start, 0), 1);\n const stopT = Math.min(Math.max(stop, 0), 1);\n if (startT === 0 && stopT === 1 && !isComplement) {\n return this;\n }\n const path = this.asPath();\n const result = path.makeTrimmed(startT, stopT, isComplement);\n path.delete();\n if (result === null) {\n return null;\n }\n const old = this.ref;\n this.ref = new this.CanvasKit.PathBuilder(result);\n result.delete();\n old.delete();\n return this;\n }\n\n // ---- Query methods (use snapshot for read-only) ----\n\n countPoints() {\n return this.ref.countPoints();\n }\n\n computeTightBounds(): SkRect {\n const path = this.asPath();\n const result = new JsiSkRect(this.CanvasKit, path.computeTightBounds());\n path.delete();\n return result;\n }\n\n contains(x: number, y: number) {\n const path = this.asPath();\n const result = path.contains(x, y);\n path.delete();\n return result;\n }\n\n copy() {\n const path = this.asPath();\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n equals(other: SkPath) {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(other).snapshot();\n const result = p1.equals(p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n getBounds() {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n getFillType(): FillType {\n const path = this.asPath();\n const result = path.getFillType().value;\n path.delete();\n return result;\n }\n\n getPoint(index: number): SkPoint {\n const path = this.asPath();\n const result = new JsiSkPoint(this.CanvasKit, path.getPoint(index));\n path.delete();\n return result;\n }\n\n isEmpty() {\n return this.ref.isEmpty();\n }\n\n isVolatile() {\n return false;\n }\n\n getLastPt() {\n const count = this.ref.countPoints();\n if (count === 0) {\n return { x: 0, y: 0 };\n }\n const path = this.asPath();\n const pt = path.getPoint(count - 1);\n path.delete();\n return { x: pt[0], y: pt[1] };\n }\n\n toSVGString() {\n const path = this.asPath();\n const result = path.toSVGString();\n path.delete();\n return result;\n }\n\n isInterpolatable(path2: SkPath): boolean {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(path2).snapshot();\n const result = this.CanvasKit.Path.CanInterpolate(p1, p2);\n p1.delete();\n p2.delete();\n return result;\n }\n\n interpolate(end: SkPath, weight: number, output?: SkPath): SkPath | null {\n const p1 = this.asPath();\n const p2 = JsiSkPath.fromValue<CKPathBuilder>(end).snapshot();\n const path = this.CanvasKit.Path.MakeFromPathInterpolation(p1, p2, weight);\n p1.delete();\n p2.delete();\n if (path === null) {\n return null;\n }\n if (output) {\n const outRef = output as JsiSkPath;\n const old = outRef.ref;\n outRef.ref = new this.CanvasKit.PathBuilder(path);\n path.delete();\n old.delete();\n return output;\n }\n const result = new JsiSkPath(\n this.CanvasKit,\n new this.CanvasKit.PathBuilder(path)\n );\n path.delete();\n return result;\n }\n\n toCmds() {\n const path = this.asPath();\n const cmds = path.toCmds();\n path.delete();\n const result = cmds.reduce<PathCommand[]>((acc, cmd, i) => {\n if (i === 0) {\n acc.push([]);\n }\n const current = acc[acc.length - 1];\n if (current.length === 0) {\n current.push(cmd);\n const length = CommandCount[current[0] as PathVerb];\n if (current.length === length && i !== cmds.length - 1) {\n acc.push([]);\n }\n } else {\n const length = CommandCount[current[0] as PathVerb];\n if (current.length < length) {\n current.push(cmd);\n }\n if (current.length === length && i !== cmds.length - 1) {\n acc.push([]);\n }\n }\n return acc;\n }, []);\n return result;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
import CanvasKitInit from "canvaskit-wasm/bin/full/canvaskit";
|
|
4
4
|
let ckSharedPromise;
|
|
5
5
|
export const LoadSkiaWeb = async opts => {
|
|
6
|
-
var _ckSharedPromise;
|
|
7
6
|
if (global.CanvasKit !== undefined) {
|
|
8
7
|
return;
|
|
9
8
|
}
|
|
10
|
-
ckSharedPromise =
|
|
9
|
+
ckSharedPromise = ckSharedPromise !== null && ckSharedPromise !== void 0 ? ckSharedPromise : CanvasKitInit(opts);
|
|
11
10
|
const CanvasKit = await ckSharedPromise;
|
|
12
11
|
// The CanvasKit API is stored on the global object and used
|
|
13
12
|
// to create the JsiSKApi in the Skia.web.ts file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CanvasKitInit","ckSharedPromise","LoadSkiaWeb","opts","
|
|
1
|
+
{"version":3,"names":["CanvasKitInit","ckSharedPromise","LoadSkiaWeb","opts","global","CanvasKit","undefined","LoadSkia"],"sources":["LoadSkiaWeb.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport CanvasKitInit from \"canvaskit-wasm/bin/full/canvaskit\";\nimport type {\n CanvasKit as CanvasKitType,\n CanvasKitInitOptions,\n} from \"canvaskit-wasm\";\n\ndeclare global {\n var CanvasKit: CanvasKitType;\n}\n\nlet ckSharedPromise: Promise<CanvasKitType>;\n\nexport const LoadSkiaWeb = async (opts?: CanvasKitInitOptions) => {\n if (global.CanvasKit !== undefined) {\n return;\n }\n ckSharedPromise = ckSharedPromise ?? CanvasKitInit(opts);\n const CanvasKit = await ckSharedPromise;\n // The CanvasKit API is stored on the global object and used\n // to create the JsiSKApi in the Skia.web.ts file.\n global.CanvasKit = CanvasKit;\n};\n\n// We keep this function for backward compatibility\nexport const LoadSkia = LoadSkiaWeb;\n"],"mappings":"AAAA;AACA;AACA,OAAOA,aAAa,MAAM,mCAAmC;AAU7D,IAAIC,eAAuC;AAE3C,OAAO,MAAMC,WAAW,GAAG,MAAOC,IAA2B,IAAK;EAChE,IAAIC,MAAM,CAACC,SAAS,KAAKC,SAAS,EAAE;IAClC;EACF;EACAL,eAAe,GAAGA,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAID,aAAa,CAACG,IAAI,CAAC;EACxD,MAAME,SAAS,GAAG,MAAMJ,eAAe;EACvC;EACA;EACAG,MAAM,CAACC,SAAS,GAAGA,SAAS;AAC9B,CAAC;;AAED;AACA,OAAO,MAAME,QAAQ,GAAGL,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const __esModule: boolean;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export const __esModule: boolean;
|
|
2
2
|
export class JsiSkNativeBufferFactory extends _Host.Host {
|
|
3
3
|
MakeFromImage(image: any): OffscreenCanvas;
|
|
4
|
+
MakeTestBuffer(width: any, height: any): OffscreenCanvas;
|
|
4
5
|
Release(_nativeBuffer: any): void;
|
|
5
6
|
}
|
|
6
7
|
import _Host = require("./Host");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -14,7 +14,16 @@ export interface NativeBufferFactory {
|
|
|
14
14
|
*/
|
|
15
15
|
MakeFromImage: (image: SkImage) => NativeBuffer;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Create a native buffer of the given size filled with a procedural test
|
|
18
|
+
* pattern (RGB gradient + diagonal stripes), entirely on the CPU. Useful for
|
|
19
|
+
* examples and tests that need a buffer to feed into
|
|
20
|
+
* `GPUDevice.importExternalTexture` without a camera/video source. Release it
|
|
21
|
+
* with `Release`.
|
|
22
|
+
*/
|
|
23
|
+
MakeTestBuffer: (width: number, height: number) => NativeBuffer;
|
|
24
|
+
/**
|
|
25
|
+
* Release a native buffer that was created with `MakeFromImage` or
|
|
26
|
+
* `MakeTestBuffer`.
|
|
18
27
|
*/
|
|
19
28
|
Release: (nativeBuffer: NativeBuffer) => void;
|
|
20
29
|
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import type { NativeBuffer } from "./NativeBuffer";
|
|
2
|
+
/**
|
|
3
|
+
* Descriptor for {@link GPUDevice.importExternalTexture} when the source is a
|
|
4
|
+
* Skia NativeBuffer (Skia has no WebCodecs `VideoFrame`).
|
|
5
|
+
*
|
|
6
|
+
* `source` is the handle returned by `Skia.NativeBuffer.MakeFromImage`: a
|
|
7
|
+
* `CVPixelBufferRef` on Apple, an `AHardwareBuffer*` on Android. The caller
|
|
8
|
+
* owns its lifetime (release it with `Skia.NativeBuffer.Release`) and must keep
|
|
9
|
+
* it alive until the imported texture is destroyed.
|
|
10
|
+
*/
|
|
11
|
+
export interface SkiaGPUExternalTextureDescriptor extends GPUObjectDescriptorBase {
|
|
12
|
+
source: NativeBuffer;
|
|
13
|
+
/** Rotation applied while sampling, in degrees. One of 0 | 90 | 180 | 270. */
|
|
14
|
+
rotation?: number;
|
|
15
|
+
/** Mirror horizontally while sampling. */
|
|
16
|
+
mirrored?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Descriptor for {@link GPUDevice.importSharedTextureMemory}. `handle` is the
|
|
20
|
+
* NativeBuffer returned by `Skia.NativeBuffer.MakeFromImage` (see
|
|
21
|
+
* {@link SkiaGPUExternalTextureDescriptor} for the platform-specific types and
|
|
22
|
+
* lifetime rules).
|
|
23
|
+
*/
|
|
24
|
+
export interface GPUSharedTextureMemoryDescriptor extends GPUObjectDescriptorBase {
|
|
25
|
+
handle: NativeBuffer;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The kind of native synchronization primitive a {@link GPUSharedFence} wraps,
|
|
29
|
+
* matching the `shared-fence-*` device feature names. Limited to the kinds
|
|
30
|
+
* react-native-skia targets (iOS/Metal and Android/Vulkan); `importSharedFence`
|
|
31
|
+
* accepts these and `export()` reports them.
|
|
32
|
+
*/
|
|
33
|
+
export type GPUSharedFenceType = "mtl-shared-event" | "sync-fd" | "vk-semaphore-opaque-fd";
|
|
34
|
+
/**
|
|
35
|
+
* Descriptor for {@link GPUDevice.importSharedFence}.
|
|
36
|
+
*/
|
|
37
|
+
export interface GPUSharedFenceDescriptor {
|
|
38
|
+
/**
|
|
39
|
+
* The fence kind to import. Must match a `shared-fence-*` feature enabled on
|
|
40
|
+
* the device.
|
|
41
|
+
*/
|
|
42
|
+
type: GPUSharedFenceType;
|
|
43
|
+
/**
|
|
44
|
+
* The raw native handle as a BigInt: an `id<MTLSharedEvent>` pointer for
|
|
45
|
+
* `"mtl-shared-event"`, or an OS file descriptor for the `*-fd` kinds.
|
|
46
|
+
*/
|
|
47
|
+
handle: bigint;
|
|
48
|
+
label?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface GPUSharedFenceExportInfo {
|
|
51
|
+
type: GPUSharedFenceType;
|
|
52
|
+
/**
|
|
53
|
+
* An `id<MTLSharedEvent>` pointer (Apple) or file descriptor (Android), as a
|
|
54
|
+
* BigInt. The caller takes ownership; e.g. an exported sync-fd must be closed
|
|
55
|
+
* once consumed.
|
|
56
|
+
*/
|
|
57
|
+
handle: bigint;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A native GPU synchronization primitive shared across queues/APIs. Produced by
|
|
61
|
+
* {@link GPUSharedTextureMemory.endAccess}, consumed by
|
|
62
|
+
* {@link GPUSharedTextureMemory.beginAccess}, or imported from a consumer's
|
|
63
|
+
* fence with {@link GPUDevice.importSharedFence}.
|
|
64
|
+
*/
|
|
65
|
+
export interface GPUSharedFence {
|
|
66
|
+
readonly __brand: "GPUSharedFence";
|
|
67
|
+
label: string;
|
|
68
|
+
export(): GPUSharedFenceExportInfo;
|
|
69
|
+
}
|
|
70
|
+
/** A fence and the timeline value to wait for (0n for binary sync-fd fences). */
|
|
71
|
+
export interface GPUSharedFenceState {
|
|
72
|
+
fence: GPUSharedFence;
|
|
73
|
+
signaledValue: bigint;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The result of {@link GPUSharedTextureMemory.endAccess}: each fence is signaled
|
|
77
|
+
* at its `signaledValue` once Dawn's GPU work for the access completes.
|
|
78
|
+
*/
|
|
79
|
+
export interface GPUSharedTextureMemoryEndAccessState {
|
|
80
|
+
initialized: boolean;
|
|
81
|
+
fences: GPUSharedFenceState[];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Shared texture memory imported from a platform native buffer via
|
|
85
|
+
* {@link GPUDevice.importSharedTextureMemory}. Create a texture that aliases
|
|
86
|
+
* the memory, then bracket the GPU work that touches it with
|
|
87
|
+
* {@link GPUSharedTextureMemory.beginAccess} / {@link GPUSharedTextureMemory.endAccess}.
|
|
88
|
+
*/
|
|
89
|
+
export interface GPUSharedTextureMemory extends GPUObjectBase {
|
|
90
|
+
/** Create a texture that aliases the shared memory. */
|
|
91
|
+
createTexture(descriptor?: GPUTextureDescriptor): GPUTexture;
|
|
92
|
+
/**
|
|
93
|
+
* Acquire the memory for GPU access. `initialized` marks whether the existing
|
|
94
|
+
* contents should be preserved (pass `true` for an already-rendered frame).
|
|
95
|
+
* Optional `fences` are wait fences: Dawn waits for each to reach its
|
|
96
|
+
* `signaledValue` before writing the surface. Throws if the access could not
|
|
97
|
+
* be acquired.
|
|
98
|
+
*/
|
|
99
|
+
beginAccess(texture: GPUTexture, initialized: boolean, fences?: GPUSharedFenceState[]): void;
|
|
100
|
+
/**
|
|
101
|
+
* Release the memory after the GPU work that accessed it has been submitted,
|
|
102
|
+
* and return the fences Dawn produced for the access. Throws on failure.
|
|
103
|
+
*/
|
|
104
|
+
endAccess(texture: GPUTexture): GPUSharedTextureMemoryEndAccessState;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Dawn-specific toggles, passed via {@link GPUDeviceDescriptor.dawnToggles} to
|
|
108
|
+
* `adapter.requestDevice`. This is a non-spec, Dawn-only extension; see Dawn's
|
|
109
|
+
* toggle list for valid names.
|
|
110
|
+
*/
|
|
111
|
+
export interface GPUDawnTogglesDescriptor {
|
|
112
|
+
enabledToggles?: string[];
|
|
113
|
+
disabledToggles?: string[];
|
|
114
|
+
}
|
|
115
|
+
declare global {
|
|
116
|
+
interface GPUDeviceDescriptor {
|
|
117
|
+
/** Dawn-specific toggles (Skia/Graphite extension, non-spec). */
|
|
118
|
+
dawnToggles?: GPUDawnTogglesDescriptor;
|
|
119
|
+
}
|
|
120
|
+
interface GPUExternalTexture {
|
|
121
|
+
/**
|
|
122
|
+
* Skia extension: end the imported buffer's shared-memory access window and
|
|
123
|
+
* release the underlying resources. Call right after the `queue.submit()`
|
|
124
|
+
* that sampled this texture (never before). Idempotent, and also runs at
|
|
125
|
+
* garbage collection as a fallback.
|
|
126
|
+
*/
|
|
127
|
+
destroy(): void;
|
|
128
|
+
}
|
|
129
|
+
interface GPUDevice {
|
|
130
|
+
/**
|
|
131
|
+
* Skia extension: import a NativeBuffer (from
|
|
132
|
+
* `Skia.NativeBuffer.MakeFromImage`) as a {@link GPUExternalTexture}, sampled
|
|
133
|
+
* with `texture_external` in WGSL. The returned texture owns the
|
|
134
|
+
* shared-memory access window; call `destroy()` on it after the sampling
|
|
135
|
+
* `queue.submit()`.
|
|
136
|
+
*/
|
|
137
|
+
importExternalTexture(descriptor: SkiaGPUExternalTextureDescriptor): GPUExternalTexture;
|
|
138
|
+
/**
|
|
139
|
+
* Skia extension: import a NativeBuffer (from
|
|
140
|
+
* `Skia.NativeBuffer.MakeFromImage`) as {@link GPUSharedTextureMemory}, the
|
|
141
|
+
* lower-level path that lets you create an aliasing texture and manage the
|
|
142
|
+
* begin/end access window yourself.
|
|
143
|
+
*/
|
|
144
|
+
importSharedTextureMemory(descriptor: GPUSharedTextureMemoryDescriptor): GPUSharedTextureMemory;
|
|
145
|
+
/**
|
|
146
|
+
* Skia extension: import a native synchronization primitive (an
|
|
147
|
+
* `id<MTLSharedEvent>` on Apple, a sync-fd / VkSemaphore on Android) as a
|
|
148
|
+
* {@link GPUSharedFence}, e.g. to wait on a fence a consumer produced. The
|
|
149
|
+
* matching `shared-fence-*` feature must be enabled on the device.
|
|
150
|
+
*/
|
|
151
|
+
importSharedFence(descriptor: GPUSharedFenceDescriptor): GPUSharedFence;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -4,5 +4,6 @@ import { Host } from "./Host";
|
|
|
4
4
|
export declare class JsiSkNativeBufferFactory extends Host implements NativeBufferFactory {
|
|
5
5
|
constructor(CanvasKit: CanvasKit);
|
|
6
6
|
MakeFromImage(image: SkImage): NativeBuffer;
|
|
7
|
+
MakeTestBuffer(width: number, height: number): NativeBuffer;
|
|
7
8
|
Release(_nativeBuffer: NativeBuffer): void;
|
|
8
9
|
}
|
package/package.json
CHANGED
|
@@ -5,11 +5,10 @@
|
|
|
5
5
|
"provenance": true
|
|
6
6
|
},
|
|
7
7
|
"bin": {
|
|
8
|
-
"install-skia": "scripts/install-libs.js",
|
|
9
8
|
"setup-skia-web": "scripts/setup-canvaskit.js"
|
|
10
9
|
},
|
|
11
10
|
"title": "React Native Skia",
|
|
12
|
-
"version": "2.6.2",
|
|
11
|
+
"version": "2.6.3-next.2",
|
|
13
12
|
"description": "High-performance React Native Graphics using Skia",
|
|
14
13
|
"main": "lib/module/index.js",
|
|
15
14
|
"react-native": "src/index.ts",
|
|
@@ -17,7 +16,6 @@
|
|
|
17
16
|
"types": "lib/typescript/index.d.ts",
|
|
18
17
|
"files": [
|
|
19
18
|
"scripts/setup-canvaskit.js",
|
|
20
|
-
"scripts/install-libs.js",
|
|
21
19
|
"src/**",
|
|
22
20
|
"lib/**",
|
|
23
21
|
"!**/__tests__/**",
|
|
@@ -37,7 +35,6 @@
|
|
|
37
35
|
"dist/**"
|
|
38
36
|
],
|
|
39
37
|
"scripts": {
|
|
40
|
-
"postinstall": "node scripts/install-libs.js",
|
|
41
38
|
"lint": "eslint . --ext .ts,.tsx --max-warnings 0 --cache --fix",
|
|
42
39
|
"tsc": "tsc --noEmit",
|
|
43
40
|
"test": "jest",
|
|
@@ -47,8 +44,8 @@
|
|
|
47
44
|
"clean-skia": "yarn rimraf ./libs && yarn rimraf ../../externals/skia/out",
|
|
48
45
|
"build-skia": "tsx ./scripts/build-skia.ts",
|
|
49
46
|
"copy-skia-headers": "tsx ./scripts/copy-skia-headers.ts",
|
|
47
|
+
"install-skia": "tsx ./scripts/install-skia.ts",
|
|
50
48
|
"install-skia-graphite": "tsx ./scripts/install-skia-graphite.ts",
|
|
51
|
-
"install-skia": "node scripts/install-libs.js",
|
|
52
49
|
"clang-format": "yarn clang-format-ios && yarn clang-format-android && yarn clang-format-common",
|
|
53
50
|
"clang-format-ios": "find apple/ -iname '*.h' -o -iname '*.mm' -o -iname '*.cpp' | xargs clang-format -i",
|
|
54
51
|
"clang-format-android": "find android/cpp/ -iname '*.h' -o -iname '*.m' -o -iname '*.cpp' | xargs clang-format -i",
|
|
@@ -92,8 +89,13 @@
|
|
|
92
89
|
}
|
|
93
90
|
},
|
|
94
91
|
"devDependencies": {
|
|
95
|
-
"@babel/plugin-
|
|
92
|
+
"@babel/plugin-transform-class-properties": "^7.28.0",
|
|
96
93
|
"@babel/plugin-transform-explicit-resource-management": "^7.28.0",
|
|
94
|
+
"@babel/plugin-transform-nullish-coalescing-operator": "^7.28.0",
|
|
95
|
+
"@babel/preset-env": "^7.28.0",
|
|
96
|
+
"@babel/preset-flow": "^7.28.0",
|
|
97
|
+
"@babel/preset-react": "^7.28.0",
|
|
98
|
+
"@babel/preset-typescript": "^7.28.0",
|
|
97
99
|
"@blazediff/core": "^1.4.0",
|
|
98
100
|
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
99
101
|
"@semantic-release/exec": "^7.0.3",
|
|
@@ -116,23 +118,23 @@
|
|
|
116
118
|
"react": "19.0.0",
|
|
117
119
|
"react-native": "0.83.1",
|
|
118
120
|
"react-native-builder-bob": "0.18.2",
|
|
119
|
-
"react-native-reanimated": "
|
|
120
|
-
"react-native-worklets": "
|
|
121
|
+
"react-native-reanimated": "4.3.1",
|
|
122
|
+
"react-native-worklets": "0.8.3",
|
|
121
123
|
"rimraf": "3.0.2",
|
|
122
124
|
"semantic-release": "^24.1.0",
|
|
123
125
|
"semantic-release-yarn": "^3.0.2",
|
|
124
|
-
"tar": "^7.5.
|
|
126
|
+
"tar": "^7.5.16",
|
|
125
127
|
"ts-jest": "29.4.3",
|
|
126
128
|
"tsx": "^4.21.0",
|
|
127
129
|
"typescript": "^5.2.2",
|
|
128
|
-
"ws": "8.
|
|
130
|
+
"ws": "8.21.0"
|
|
129
131
|
},
|
|
130
132
|
"dependencies": {
|
|
131
133
|
"canvaskit-wasm": "0.41.0",
|
|
132
|
-
"react-native-skia-android": "
|
|
133
|
-
"react-native-skia-apple-ios": "
|
|
134
|
-
"react-native-skia-apple-macos": "
|
|
135
|
-
"react-native-skia-
|
|
134
|
+
"react-native-skia-graphite-android": "150.0.0",
|
|
135
|
+
"react-native-skia-graphite-apple-ios": "150.0.0",
|
|
136
|
+
"react-native-skia-graphite-apple-macos": "150.0.0",
|
|
137
|
+
"react-native-skia-graphite-headers": "150.0.0",
|
|
136
138
|
"react-reconciler": "0.31.0"
|
|
137
139
|
},
|
|
138
140
|
"eslintIgnore": [
|
|
@@ -171,5 +173,6 @@
|
|
|
171
173
|
}
|
|
172
174
|
]
|
|
173
175
|
]
|
|
174
|
-
}
|
|
176
|
+
},
|
|
177
|
+
"stableVersion": "0.0.0"
|
|
175
178
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# @shopify/react-native-skia.podspec
|
|
2
2
|
|
|
3
3
|
require "json"
|
|
4
|
+
require "fileutils"
|
|
4
5
|
|
|
5
6
|
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
6
7
|
|
|
@@ -8,6 +9,55 @@ package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
|
8
9
|
use_graphite = File.exist?(File.join(__dir__, 'libs', '.graphite'))
|
|
9
10
|
puts "-- SK_GRAPHITE: #{use_graphite ? 'ON' : 'OFF'} (detected via libs/.graphite marker file)"
|
|
10
11
|
|
|
12
|
+
# Resolve a node package directory using Node's own module resolution
|
|
13
|
+
# (mirrors `require.resolve(pkg/package.json)`). Returns nil if it can't be found.
|
|
14
|
+
# Defined as a lambda (not a `def`) because CocoaPods evaluates the podspec inside
|
|
15
|
+
# the `Pod` module, where top-level methods are not reachable at the call site.
|
|
16
|
+
resolve_node_package = lambda do |name, base_dir|
|
|
17
|
+
script = "process.stdout.write(require('path').dirname(require.resolve('#{name}/package.json')))"
|
|
18
|
+
dir = Dir.chdir(base_dir) { `node -e "#{script}" 2>/dev/null`.strip }
|
|
19
|
+
dir.empty? ? nil : dir
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Copy the prebuilt xcframeworks from the Skia npm packages into libs/<platform>.
|
|
23
|
+
#
|
|
24
|
+
# This replaces what the old npm `postinstall` script used to do. We do it here, at
|
|
25
|
+
# `pod install` time, so we no longer rely on a lifecycle script. CocoaPods always
|
|
26
|
+
# re-evaluates the podspec for path-based pods, so this runs on every install; to keep
|
|
27
|
+
# it cache-friendly we stamp the copied package version into libs/<platform>/.version
|
|
28
|
+
# and skip the copy when it already matches. On a version bump the frameworks are
|
|
29
|
+
# re-copied and CocoaPods picks up the change. This is best-effort: if `pod install`
|
|
30
|
+
# does not detect the change, a clean reinstall fixes it (acceptable until the upcoming
|
|
31
|
+
# Swift Package Manager migration).
|
|
32
|
+
install_apple_skia_libs = lambda do |base_dir|
|
|
33
|
+
{ 'ios' => 'react-native-skia-apple-ios',
|
|
34
|
+
'macos' => 'react-native-skia-apple-macos',
|
|
35
|
+
'tvos' => 'react-native-skia-apple-tvos' }.each do |platform, pkg_name|
|
|
36
|
+
pkg_dir = resolve_node_package.call(pkg_name, base_dir)
|
|
37
|
+
next if pkg_dir.nil?
|
|
38
|
+
|
|
39
|
+
src = File.join(pkg_dir, 'libs')
|
|
40
|
+
next unless Dir.exist?(src) && !Dir.glob(File.join(src, '*.xcframework')).empty?
|
|
41
|
+
|
|
42
|
+
version = JSON.parse(File.read(File.join(pkg_dir, 'package.json')))['version'].to_s
|
|
43
|
+
dest = File.join(base_dir, 'libs', platform)
|
|
44
|
+
marker = File.join(dest, '.version')
|
|
45
|
+
|
|
46
|
+
# Already up to date: leave the files untouched so CocoaPods keeps its cache.
|
|
47
|
+
next if File.exist?(marker) && File.read(marker).strip == version
|
|
48
|
+
|
|
49
|
+
Pod::UI.puts "react-native-skia: installing #{platform} Skia frameworks (#{version})"
|
|
50
|
+
FileUtils.rm_rf(dest)
|
|
51
|
+
FileUtils.mkdir_p(dest)
|
|
52
|
+
Dir.glob(File.join(src, '*.xcframework')).each { |xcf| FileUtils.cp_r(xcf, dest) }
|
|
53
|
+
File.write(marker, version)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Graphite downloads its binaries directly into libs/; only the default build needs
|
|
58
|
+
# the npm packages copied in.
|
|
59
|
+
install_apple_skia_libs.call(__dir__) unless use_graphite
|
|
60
|
+
|
|
11
61
|
# Set preprocessor definitions based on GRAPHITE flag
|
|
12
62
|
preprocessor_defs = use_graphite ?
|
|
13
63
|
'$(inherited) SK_GRAPHITE=1 SK_IMAGE_READ_PIXELS_DISABLE_LEGACY_API=1 SK_DISABLE_LEGACY_SHAPER_FACTORY=1' :
|
|
@@ -21,22 +71,24 @@ framework_names = ['libskia', 'libsvg', 'libskshaper', 'libskparagraph',
|
|
|
21
71
|
# Add Dawn library for Graphite builds (contains dawn::native symbols)
|
|
22
72
|
framework_names += ['libdawn_combined'] if use_graphite
|
|
23
73
|
|
|
24
|
-
# Verify that prebuilt binaries
|
|
74
|
+
# Verify that the prebuilt binaries are available (copied in above, or downloaded by
|
|
75
|
+
# install-skia-graphite for Graphite builds).
|
|
25
76
|
unless Dir.exist?(File.join(__dir__, 'libs', 'ios')) && Dir.exist?(File.join(__dir__, 'libs', 'macos'))
|
|
26
77
|
Pod::UI.warn "#{'-' * 72}"
|
|
27
78
|
Pod::UI.warn "react-native-skia: Skia prebuilt binaries not found in libs/!"
|
|
28
79
|
Pod::UI.warn ""
|
|
29
|
-
Pod::UI.warn "
|
|
30
|
-
Pod::UI.warn "
|
|
80
|
+
Pod::UI.warn "Make sure dependencies are installed (yarn install / npm install) so that"
|
|
81
|
+
Pod::UI.warn "the react-native-skia-apple-* packages are present, then run `pod install` again."
|
|
31
82
|
Pod::UI.warn "#{'-' * 72}"
|
|
32
|
-
raise "react-native-skia: Skia prebuilt binaries not found. Run `
|
|
83
|
+
raise "react-native-skia: Skia prebuilt binaries not found. Run `yarn install` then `pod install` to fix this."
|
|
33
84
|
end
|
|
34
85
|
|
|
35
86
|
# Build platform-specific framework paths (relative to pod's libs directory)
|
|
36
|
-
# xcframeworks are copied into libs/ by
|
|
87
|
+
# xcframeworks are copied into libs/ by install_apple_skia_libs above (default build)
|
|
88
|
+
# or downloaded by install-skia-graphite (Graphite build).
|
|
37
89
|
ios_frameworks = framework_names.map { |f| "libs/ios/#{f}.xcframework" }
|
|
38
90
|
osx_frameworks = framework_names.map { |f| "libs/macos/#{f}.xcframework" }
|
|
39
|
-
# tvOS frameworks - check if libs/tvos/ exists (populated
|
|
91
|
+
# tvOS frameworks - check if libs/tvos/ exists (only populated for the default build)
|
|
40
92
|
tvos_frameworks = if use_graphite || !Dir.exist?(File.join(__dir__, 'libs', 'tvos'))
|
|
41
93
|
[]
|
|
42
94
|
else
|
|
@@ -65,7 +117,7 @@ Pod::Spec.new do |s|
|
|
|
65
117
|
'GCC_PREPROCESSOR_DEFINITIONS' => preprocessor_defs,
|
|
66
118
|
'CLANG_CXX_LANGUAGE_STANDARD' => 'c++17',
|
|
67
119
|
'DEFINES_MODULE' => 'YES',
|
|
68
|
-
"HEADER_SEARCH_PATHS" => '"$(PODS_TARGET_SRCROOT)/cpp
|
|
120
|
+
"HEADER_SEARCH_PATHS" => '"$(PODS_TARGET_SRCROOT)/cpp"/** "$(PODS_TARGET_SRCROOT)/cpp" "$(PODS_TARGET_SRCROOT)/cpp/skia" "$(PODS_TARGET_SRCROOT)/cpp/dawn/include"'
|
|
69
121
|
}
|
|
70
122
|
|
|
71
123
|
s.frameworks = ['MetalKit', 'AVFoundation', 'AVKit', 'CoreMedia']
|