@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
|
@@ -40,7 +40,16 @@ export interface NativeBufferFactory {
|
|
|
40
40
|
*/
|
|
41
41
|
MakeFromImage: (image: SkImage) => NativeBuffer;
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
43
|
+
* Create a native buffer of the given size filled with a procedural test
|
|
44
|
+
* pattern (RGB gradient + diagonal stripes), entirely on the CPU. Useful for
|
|
45
|
+
* examples and tests that need a buffer to feed into
|
|
46
|
+
* `GPUDevice.importExternalTexture` without a camera/video source. Release it
|
|
47
|
+
* with `Release`.
|
|
48
|
+
*/
|
|
49
|
+
MakeTestBuffer: (width: number, height: number) => NativeBuffer;
|
|
50
|
+
/**
|
|
51
|
+
* Release a native buffer that was created with `MakeFromImage` or
|
|
52
|
+
* `MakeTestBuffer`.
|
|
44
53
|
*/
|
|
45
54
|
Release: (nativeBuffer: NativeBuffer) => void;
|
|
46
55
|
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type { NativeBuffer } from "./NativeBuffer";
|
|
2
|
+
|
|
3
|
+
// Skia's Graphite/Dawn backend extends the standard WebGPU API (typed by
|
|
4
|
+
// @webgpu/types) with a few Skia- and Dawn-specific entry points. These are
|
|
5
|
+
// only available on native (SK_GRAPHITE) builds, reachable through
|
|
6
|
+
// `Skia.getDevice()`.
|
|
7
|
+
//
|
|
8
|
+
// The exported interfaces below describe the descriptors and objects those
|
|
9
|
+
// entry points use; the `declare global` block augments the standard WebGPU
|
|
10
|
+
// interfaces so the new methods are typed without casting to `any`.
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Descriptor for {@link GPUDevice.importExternalTexture} when the source is a
|
|
14
|
+
* Skia NativeBuffer (Skia has no WebCodecs `VideoFrame`).
|
|
15
|
+
*
|
|
16
|
+
* `source` is the handle returned by `Skia.NativeBuffer.MakeFromImage`: a
|
|
17
|
+
* `CVPixelBufferRef` on Apple, an `AHardwareBuffer*` on Android. The caller
|
|
18
|
+
* owns its lifetime (release it with `Skia.NativeBuffer.Release`) and must keep
|
|
19
|
+
* it alive until the imported texture is destroyed.
|
|
20
|
+
*/
|
|
21
|
+
export interface SkiaGPUExternalTextureDescriptor extends GPUObjectDescriptorBase {
|
|
22
|
+
source: NativeBuffer;
|
|
23
|
+
/** Rotation applied while sampling, in degrees. One of 0 | 90 | 180 | 270. */
|
|
24
|
+
rotation?: number;
|
|
25
|
+
/** Mirror horizontally while sampling. */
|
|
26
|
+
mirrored?: boolean;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Descriptor for {@link GPUDevice.importSharedTextureMemory}. `handle` is the
|
|
31
|
+
* NativeBuffer returned by `Skia.NativeBuffer.MakeFromImage` (see
|
|
32
|
+
* {@link SkiaGPUExternalTextureDescriptor} for the platform-specific types and
|
|
33
|
+
* lifetime rules).
|
|
34
|
+
*/
|
|
35
|
+
export interface GPUSharedTextureMemoryDescriptor extends GPUObjectDescriptorBase {
|
|
36
|
+
handle: NativeBuffer;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The kind of native synchronization primitive a {@link GPUSharedFence} wraps,
|
|
41
|
+
* matching the `shared-fence-*` device feature names. Limited to the kinds
|
|
42
|
+
* react-native-skia targets (iOS/Metal and Android/Vulkan); `importSharedFence`
|
|
43
|
+
* accepts these and `export()` reports them.
|
|
44
|
+
*/
|
|
45
|
+
export type GPUSharedFenceType =
|
|
46
|
+
| "mtl-shared-event"
|
|
47
|
+
| "sync-fd"
|
|
48
|
+
| "vk-semaphore-opaque-fd";
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Descriptor for {@link GPUDevice.importSharedFence}.
|
|
52
|
+
*/
|
|
53
|
+
export interface GPUSharedFenceDescriptor {
|
|
54
|
+
/**
|
|
55
|
+
* The fence kind to import. Must match a `shared-fence-*` feature enabled on
|
|
56
|
+
* the device.
|
|
57
|
+
*/
|
|
58
|
+
type: GPUSharedFenceType;
|
|
59
|
+
/**
|
|
60
|
+
* The raw native handle as a BigInt: an `id<MTLSharedEvent>` pointer for
|
|
61
|
+
* `"mtl-shared-event"`, or an OS file descriptor for the `*-fd` kinds.
|
|
62
|
+
*/
|
|
63
|
+
handle: bigint;
|
|
64
|
+
label?: string;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface GPUSharedFenceExportInfo {
|
|
68
|
+
type: GPUSharedFenceType;
|
|
69
|
+
/**
|
|
70
|
+
* An `id<MTLSharedEvent>` pointer (Apple) or file descriptor (Android), as a
|
|
71
|
+
* BigInt. The caller takes ownership; e.g. an exported sync-fd must be closed
|
|
72
|
+
* once consumed.
|
|
73
|
+
*/
|
|
74
|
+
handle: bigint;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* A native GPU synchronization primitive shared across queues/APIs. Produced by
|
|
79
|
+
* {@link GPUSharedTextureMemory.endAccess}, consumed by
|
|
80
|
+
* {@link GPUSharedTextureMemory.beginAccess}, or imported from a consumer's
|
|
81
|
+
* fence with {@link GPUDevice.importSharedFence}.
|
|
82
|
+
*/
|
|
83
|
+
export interface GPUSharedFence {
|
|
84
|
+
readonly __brand: "GPUSharedFence";
|
|
85
|
+
label: string;
|
|
86
|
+
export(): GPUSharedFenceExportInfo;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** A fence and the timeline value to wait for (0n for binary sync-fd fences). */
|
|
90
|
+
export interface GPUSharedFenceState {
|
|
91
|
+
fence: GPUSharedFence;
|
|
92
|
+
signaledValue: bigint;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* The result of {@link GPUSharedTextureMemory.endAccess}: each fence is signaled
|
|
97
|
+
* at its `signaledValue` once Dawn's GPU work for the access completes.
|
|
98
|
+
*/
|
|
99
|
+
export interface GPUSharedTextureMemoryEndAccessState {
|
|
100
|
+
initialized: boolean;
|
|
101
|
+
fences: GPUSharedFenceState[];
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Shared texture memory imported from a platform native buffer via
|
|
106
|
+
* {@link GPUDevice.importSharedTextureMemory}. Create a texture that aliases
|
|
107
|
+
* the memory, then bracket the GPU work that touches it with
|
|
108
|
+
* {@link GPUSharedTextureMemory.beginAccess} / {@link GPUSharedTextureMemory.endAccess}.
|
|
109
|
+
*/
|
|
110
|
+
export interface GPUSharedTextureMemory extends GPUObjectBase {
|
|
111
|
+
/** Create a texture that aliases the shared memory. */
|
|
112
|
+
createTexture(descriptor?: GPUTextureDescriptor): GPUTexture;
|
|
113
|
+
/**
|
|
114
|
+
* Acquire the memory for GPU access. `initialized` marks whether the existing
|
|
115
|
+
* contents should be preserved (pass `true` for an already-rendered frame).
|
|
116
|
+
* Optional `fences` are wait fences: Dawn waits for each to reach its
|
|
117
|
+
* `signaledValue` before writing the surface. Throws if the access could not
|
|
118
|
+
* be acquired.
|
|
119
|
+
*/
|
|
120
|
+
beginAccess(
|
|
121
|
+
texture: GPUTexture,
|
|
122
|
+
initialized: boolean,
|
|
123
|
+
fences?: GPUSharedFenceState[]
|
|
124
|
+
): void;
|
|
125
|
+
/**
|
|
126
|
+
* Release the memory after the GPU work that accessed it has been submitted,
|
|
127
|
+
* and return the fences Dawn produced for the access. Throws on failure.
|
|
128
|
+
*/
|
|
129
|
+
endAccess(texture: GPUTexture): GPUSharedTextureMemoryEndAccessState;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Dawn-specific toggles, passed via {@link GPUDeviceDescriptor.dawnToggles} to
|
|
134
|
+
* `adapter.requestDevice`. This is a non-spec, Dawn-only extension; see Dawn's
|
|
135
|
+
* toggle list for valid names.
|
|
136
|
+
*/
|
|
137
|
+
export interface GPUDawnTogglesDescriptor {
|
|
138
|
+
enabledToggles?: string[];
|
|
139
|
+
disabledToggles?: string[];
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
declare global {
|
|
143
|
+
interface GPUDeviceDescriptor {
|
|
144
|
+
/** Dawn-specific toggles (Skia/Graphite extension, non-spec). */
|
|
145
|
+
dawnToggles?: GPUDawnTogglesDescriptor;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
interface GPUExternalTexture {
|
|
149
|
+
/**
|
|
150
|
+
* Skia extension: end the imported buffer's shared-memory access window and
|
|
151
|
+
* release the underlying resources. Call right after the `queue.submit()`
|
|
152
|
+
* that sampled this texture (never before). Idempotent, and also runs at
|
|
153
|
+
* garbage collection as a fallback.
|
|
154
|
+
*/
|
|
155
|
+
destroy(): void;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
interface GPUDevice {
|
|
159
|
+
/**
|
|
160
|
+
* Skia extension: import a NativeBuffer (from
|
|
161
|
+
* `Skia.NativeBuffer.MakeFromImage`) as a {@link GPUExternalTexture}, sampled
|
|
162
|
+
* with `texture_external` in WGSL. The returned texture owns the
|
|
163
|
+
* shared-memory access window; call `destroy()` on it after the sampling
|
|
164
|
+
* `queue.submit()`.
|
|
165
|
+
*/
|
|
166
|
+
importExternalTexture(
|
|
167
|
+
descriptor: SkiaGPUExternalTextureDescriptor
|
|
168
|
+
): GPUExternalTexture;
|
|
169
|
+
/**
|
|
170
|
+
* Skia extension: import a NativeBuffer (from
|
|
171
|
+
* `Skia.NativeBuffer.MakeFromImage`) as {@link GPUSharedTextureMemory}, the
|
|
172
|
+
* lower-level path that lets you create an aliasing texture and manage the
|
|
173
|
+
* begin/end access window yourself.
|
|
174
|
+
*/
|
|
175
|
+
importSharedTextureMemory(
|
|
176
|
+
descriptor: GPUSharedTextureMemoryDescriptor
|
|
177
|
+
): GPUSharedTextureMemory;
|
|
178
|
+
/**
|
|
179
|
+
* Skia extension: import a native synchronization primitive (an
|
|
180
|
+
* `id<MTLSharedEvent>` on Apple, a sync-fd / VkSemaphore on Android) as a
|
|
181
|
+
* {@link GPUSharedFence}, e.g. to wait on a fence a consumer produced. The
|
|
182
|
+
* matching `shared-fence-*` feature must be enabled on the device.
|
|
183
|
+
*/
|
|
184
|
+
importSharedFence(descriptor: GPUSharedFenceDescriptor): GPUSharedFence;
|
|
185
|
+
}
|
|
186
|
+
}
|
package/src/skia/types/index.ts
CHANGED
|
@@ -25,6 +25,26 @@ export class JsiSkNativeBufferFactory
|
|
|
25
25
|
return canvas;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
MakeTestBuffer(width: number, height: number): NativeBuffer {
|
|
29
|
+
const pixels = new Uint8ClampedArray(width * height * 4);
|
|
30
|
+
for (let y = 0; y < height; y++) {
|
|
31
|
+
for (let x = 0; x < width; x++) {
|
|
32
|
+
const i = (y * width + x) * 4;
|
|
33
|
+
pixels[i + 0] = Math.floor((x * 255) / Math.max(width - 1, 1));
|
|
34
|
+
pixels[i + 1] = Math.floor((y * 255) / Math.max(height - 1, 1));
|
|
35
|
+
pixels[i + 2] = (x + y) & 0x20 ? 220 : 30;
|
|
36
|
+
pixels[i + 3] = 0xff;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const canvas = new OffscreenCanvas(width, height);
|
|
40
|
+
const ctx = canvas.getContext("2d");
|
|
41
|
+
if (!ctx) {
|
|
42
|
+
throw new Error("Failed to get 2d context from canvas");
|
|
43
|
+
}
|
|
44
|
+
ctx.putImageData(new ImageData(pixels, width, height), 0, 0);
|
|
45
|
+
return canvas;
|
|
46
|
+
}
|
|
47
|
+
|
|
28
48
|
Release(_nativeBuffer: NativeBuffer) {
|
|
29
49
|
// it's a noop on Web
|
|
30
50
|
}
|
|
@@ -447,7 +447,10 @@ export class JsiSkPath
|
|
|
447
447
|
}
|
|
448
448
|
|
|
449
449
|
simplify() {
|
|
450
|
-
warnDeprecatedPathMethod(
|
|
450
|
+
warnDeprecatedPathMethod(
|
|
451
|
+
"simplify",
|
|
452
|
+
"Use Skia.Path.Simplify(path) instead."
|
|
453
|
+
);
|
|
451
454
|
const path = this.asPath();
|
|
452
455
|
const result = path.makeSimplified();
|
|
453
456
|
path.delete();
|
|
@@ -500,7 +503,10 @@ export class JsiSkPath
|
|
|
500
503
|
}
|
|
501
504
|
|
|
502
505
|
stroke(opts?: StrokeOpts) {
|
|
503
|
-
warnDeprecatedPathMethod(
|
|
506
|
+
warnDeprecatedPathMethod(
|
|
507
|
+
"stroke",
|
|
508
|
+
"Use Skia.Path.Stroke(path, opts) instead."
|
|
509
|
+
);
|
|
504
510
|
const path = this.asPath();
|
|
505
511
|
const result = path.makeStroked(
|
|
506
512
|
opts === undefined
|
package/scripts/install-libs.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
const path = require("path");
|
|
5
|
-
const fs = require("fs");
|
|
6
|
-
|
|
7
|
-
const useGraphite =
|
|
8
|
-
process.env.SK_GRAPHITE === "1" ||
|
|
9
|
-
(process.env.SK_GRAPHITE || "").toLowerCase() === "true";
|
|
10
|
-
const prefix = useGraphite ? "react-native-skia-graphite" : "react-native-skia";
|
|
11
|
-
const libsDir = path.join(__dirname, "..", "libs");
|
|
12
|
-
|
|
13
|
-
function copySync(src, dest, options) {
|
|
14
|
-
if (!src.includes("*")) {
|
|
15
|
-
return fs.cpSync(src, dest, options);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const wildcardSplit = src.split("*");
|
|
19
|
-
const basePath = wildcardSplit[0];
|
|
20
|
-
const files = fs.readdirSync(basePath);
|
|
21
|
-
files
|
|
22
|
-
.filter((file) => file.endsWith(wildcardSplit[1]))
|
|
23
|
-
.forEach((file) => {
|
|
24
|
-
return fs.cpSync(
|
|
25
|
-
path.join(basePath, file),
|
|
26
|
-
path.join(dest, file),
|
|
27
|
-
options
|
|
28
|
-
);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// --- Apple platforms ---
|
|
33
|
-
|
|
34
|
-
let iosPackage, macosPackage;
|
|
35
|
-
try {
|
|
36
|
-
iosPackage = path.dirname(
|
|
37
|
-
require.resolve(prefix + "-apple-ios/package.json")
|
|
38
|
-
);
|
|
39
|
-
macosPackage = path.dirname(
|
|
40
|
-
require.resolve(prefix + "-apple-macos/package.json")
|
|
41
|
-
);
|
|
42
|
-
} catch (e) {
|
|
43
|
-
console.error(
|
|
44
|
-
"ERROR: Could not find " +
|
|
45
|
-
prefix +
|
|
46
|
-
"-apple-ios or " +
|
|
47
|
-
prefix +
|
|
48
|
-
"-apple-macos"
|
|
49
|
-
);
|
|
50
|
-
console.error("Make sure you have run yarn install or npm install");
|
|
51
|
-
process.exit(1);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Verify xcframeworks exist in the iOS package
|
|
55
|
-
const iosXcf = path.join(iosPackage, "libs");
|
|
56
|
-
if (
|
|
57
|
-
!fs.existsSync(iosXcf) ||
|
|
58
|
-
!fs.readdirSync(iosXcf).some((f) => f.endsWith(".xcframework"))
|
|
59
|
-
) {
|
|
60
|
-
console.error(
|
|
61
|
-
"ERROR: Skia prebuilt binaries not found in " + prefix + "-apple-ios!"
|
|
62
|
-
);
|
|
63
|
-
process.exit(1);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
console.log("-- Skia iOS package: " + iosPackage);
|
|
67
|
-
console.log("-- Skia macOS package: " + macosPackage);
|
|
68
|
-
|
|
69
|
-
// Clean and copy Apple frameworks
|
|
70
|
-
fs.rmSync(path.join(libsDir, "ios"), { recursive: true, force: true });
|
|
71
|
-
fs.rmSync(path.join(libsDir, "macos"), { recursive: true, force: true });
|
|
72
|
-
fs.rmSync(path.join(libsDir, "tvos"), { recursive: true, force: true });
|
|
73
|
-
fs.mkdirSync(path.join(libsDir, "ios"), { recursive: true });
|
|
74
|
-
fs.mkdirSync(path.join(libsDir, "macos"), { recursive: true });
|
|
75
|
-
|
|
76
|
-
copySync(iosPackage + "/libs/*.xcframework", path.join(libsDir, "ios"), {
|
|
77
|
-
recursive: true,
|
|
78
|
-
});
|
|
79
|
-
copySync(macosPackage + "/libs/*.xcframework", path.join(libsDir, "macos"), {
|
|
80
|
-
recursive: true,
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
// Handle tvOS (non-Graphite only)
|
|
84
|
-
if (!useGraphite) {
|
|
85
|
-
try {
|
|
86
|
-
const tvosPackage = path.dirname(
|
|
87
|
-
require.resolve(prefix + "-apple-tvos/package.json")
|
|
88
|
-
);
|
|
89
|
-
console.log("-- Skia tvOS package: " + tvosPackage);
|
|
90
|
-
fs.mkdirSync(path.join(libsDir, "tvos"), { recursive: true });
|
|
91
|
-
copySync(tvosPackage + "/libs/*.xcframework", path.join(libsDir, "tvos"), {
|
|
92
|
-
recursive: true,
|
|
93
|
-
});
|
|
94
|
-
} catch (e) {
|
|
95
|
-
console.log("-- tvOS package not found, skipping");
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
console.log("-- Copied Apple xcframeworks to libs/");
|
|
100
|
-
|
|
101
|
-
// --- Android ---
|
|
102
|
-
|
|
103
|
-
const androidPackageName = useGraphite
|
|
104
|
-
? "react-native-skia-graphite-android"
|
|
105
|
-
: "react-native-skia-android";
|
|
106
|
-
|
|
107
|
-
let androidPackage;
|
|
108
|
-
try {
|
|
109
|
-
androidPackage = path.dirname(
|
|
110
|
-
require.resolve(androidPackageName + "/package.json")
|
|
111
|
-
);
|
|
112
|
-
} catch (e) {
|
|
113
|
-
console.error("ERROR: Could not find " + androidPackageName);
|
|
114
|
-
console.error("Make sure you have run yarn install or npm install");
|
|
115
|
-
process.exit(1);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const androidSrcLibs = path.join(androidPackage, "libs");
|
|
119
|
-
if (!fs.existsSync(androidSrcLibs)) {
|
|
120
|
-
console.error(
|
|
121
|
-
"ERROR: Skia prebuilt binaries not found in " + androidPackageName + "!"
|
|
122
|
-
);
|
|
123
|
-
process.exit(1);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
console.log("-- Skia Android package: " + androidPackage);
|
|
127
|
-
|
|
128
|
-
// Copy Android libs (per-ABI static libraries)
|
|
129
|
-
const androidDest = path.join(libsDir, "android");
|
|
130
|
-
fs.rmSync(androidDest, { recursive: true, force: true });
|
|
131
|
-
copySync(androidSrcLibs, androidDest, { recursive: true });
|
|
132
|
-
|
|
133
|
-
console.log("-- Copied Android libs to libs/android/");
|