@shopify/react-native-skia 0.1.158 → 0.1.159
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 +35 -11
- package/android/build.gradle +21 -25
- package/android/cpp/jni/JniLoad.cpp +2 -0
- package/android/cpp/jni/include/JniSkiaDomView.h +89 -0
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +4 -3
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +4 -3
- package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +2 -1
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomView.java +45 -0
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +64 -0
- package/cpp/api/JsiSkHostObjects.h +6 -0
- package/cpp/api/JsiSkImageFilterFactory.h +1 -1
- package/cpp/api/JsiSkPaint.h +9 -2
- package/cpp/api/JsiSkPath.h +1 -0
- package/cpp/api/JsiSkRuntimeEffect.h +36 -36
- package/cpp/jsi/JsiHostObject.cpp +16 -28
- package/cpp/jsi/JsiHostObject.h +127 -7
- package/cpp/jsi/JsiValue.cpp +346 -0
- package/cpp/jsi/JsiValue.h +222 -0
- package/cpp/jsi/JsiValueWrapper.h +33 -5
- package/cpp/rnskia/RNSkDomView.cpp +220 -0
- package/cpp/rnskia/RNSkDomView.h +140 -0
- package/cpp/rnskia/RNSkJsView.cpp +0 -4
- package/cpp/rnskia/RNSkJsView.h +6 -4
- package/cpp/rnskia/RNSkManager.cpp +7 -0
- package/cpp/rnskia/RNSkPictureView.h +5 -8
- package/cpp/rnskia/RNSkView.h +113 -5
- package/cpp/rnskia/dom/JsiDomApi.h +167 -0
- package/cpp/rnskia/dom/base/BaseNodeProp.h +72 -0
- package/cpp/rnskia/dom/base/DerivedNodeProp.h +187 -0
- package/cpp/rnskia/dom/base/DrawingContext.cpp +227 -0
- package/cpp/rnskia/dom/base/DrawingContext.h +136 -0
- package/cpp/rnskia/dom/base/JsiDependencyManager.h +294 -0
- package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +176 -0
- package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +50 -0
- package/cpp/rnskia/dom/base/JsiDomNode.h +361 -0
- package/cpp/rnskia/dom/base/JsiDomRenderNode.h +267 -0
- package/cpp/rnskia/dom/base/NodeProp.h +130 -0
- package/cpp/rnskia/dom/base/NodePropsContainer.h +119 -0
- package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +38 -0
- package/cpp/rnskia/dom/nodes/JsiBlendNode.h +112 -0
- package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +78 -0
- package/cpp/rnskia/dom/nodes/JsiBoxNode.h +104 -0
- package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +33 -0
- package/cpp/rnskia/dom/nodes/JsiCircleNode.h +38 -0
- package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +192 -0
- package/cpp/rnskia/dom/nodes/JsiCustomDrawingNode.h +123 -0
- package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +42 -0
- package/cpp/rnskia/dom/nodes/JsiFillNode.h +22 -0
- package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +56 -0
- package/cpp/rnskia/dom/nodes/JsiGroupNode.h +26 -0
- package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +415 -0
- package/cpp/rnskia/dom/nodes/JsiImageNode.h +34 -0
- package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +44 -0
- package/cpp/rnskia/dom/nodes/JsiLayerNode.h +64 -0
- package/cpp/rnskia/dom/nodes/JsiLineNode.h +43 -0
- package/cpp/rnskia/dom/nodes/JsiOvalNode.h +34 -0
- package/cpp/rnskia/dom/nodes/JsiPaintNode.h +77 -0
- package/cpp/rnskia/dom/nodes/JsiPatchNode.h +54 -0
- package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +315 -0
- package/cpp/rnskia/dom/nodes/JsiPathNode.h +181 -0
- package/cpp/rnskia/dom/nodes/JsiPictureNode.h +32 -0
- package/cpp/rnskia/dom/nodes/JsiPointsNode.h +51 -0
- package/cpp/rnskia/dom/nodes/JsiRRectNode.h +34 -0
- package/cpp/rnskia/dom/nodes/JsiRectNode.h +34 -0
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +517 -0
- package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +47 -0
- package/cpp/rnskia/dom/nodes/JsiTextNode.h +54 -0
- package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +32 -0
- package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +43 -0
- package/cpp/rnskia/dom/props/BezierProps.h +63 -0
- package/cpp/rnskia/dom/props/BlendModeProp.h +101 -0
- package/cpp/rnskia/dom/props/BoxShadowProps.h +61 -0
- package/cpp/rnskia/dom/props/CircleProp.h +46 -0
- package/cpp/rnskia/dom/props/ClipProp.h +62 -0
- package/cpp/rnskia/dom/props/ColorProp.h +80 -0
- package/cpp/rnskia/dom/props/DrawingProp.h +33 -0
- package/cpp/rnskia/dom/props/FontProp.h +34 -0
- package/cpp/rnskia/dom/props/GlyphsProp.h +53 -0
- package/cpp/rnskia/dom/props/ImageProps.h +173 -0
- package/cpp/rnskia/dom/props/LayerProp.h +50 -0
- package/cpp/rnskia/dom/props/MatrixProp.h +33 -0
- package/cpp/rnskia/dom/props/NumbersProp.h +63 -0
- package/cpp/rnskia/dom/props/PaintProps.h +172 -0
- package/cpp/rnskia/dom/props/PathProp.h +55 -0
- package/cpp/rnskia/dom/props/PictureProp.h +38 -0
- package/cpp/rnskia/dom/props/PointProp.h +72 -0
- package/cpp/rnskia/dom/props/PointsProp.h +83 -0
- package/cpp/rnskia/dom/props/RRectProp.h +134 -0
- package/cpp/rnskia/dom/props/RadiusProp.h +43 -0
- package/cpp/rnskia/dom/props/RectProp.h +118 -0
- package/cpp/rnskia/dom/props/StrokeProps.h +75 -0
- package/cpp/rnskia/dom/props/SvgProp.h +37 -0
- package/cpp/rnskia/dom/props/TextBlobProp.h +128 -0
- package/cpp/rnskia/dom/props/TileModeProp.h +50 -0
- package/cpp/rnskia/dom/props/TransformProp.h +80 -0
- package/cpp/rnskia/dom/props/TransformsProps.h +68 -0
- package/cpp/rnskia/dom/props/UniformsProp.h +194 -0
- package/cpp/rnskia/dom/props/VertexModeProp.h +47 -0
- package/cpp/rnskia/dom/props/VerticesProps.h +67 -0
- package/cpp/rnskia/values/RNSkReadonlyValue.h +13 -4
- package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +35 -1
- package/cpp/skia/include/codec/SkAndroidCodec.h +17 -1
- package/cpp/skia/include/codec/SkCodec.h +8 -5
- package/cpp/skia/include/core/SkAnnotation.h +2 -0
- package/cpp/skia/include/core/SkBitmap.h +52 -1
- package/cpp/skia/include/core/SkBlendMode.h +2 -0
- package/cpp/skia/include/core/SkCanvas.h +52 -31
- package/cpp/skia/include/core/SkCapabilities.h +44 -0
- package/cpp/skia/include/core/SkColor.h +7 -0
- package/cpp/skia/include/core/SkColorFilter.h +37 -0
- package/cpp/skia/include/core/SkColorSpace.h +1 -1
- package/cpp/skia/include/core/SkFont.h +4 -0
- package/cpp/skia/include/core/SkFontMgr.h +3 -0
- package/cpp/skia/include/core/SkGraphics.h +9 -0
- package/cpp/skia/include/core/SkImage.h +77 -17
- package/cpp/skia/include/core/SkImageEncoder.h +5 -3
- package/cpp/skia/include/core/SkImageGenerator.h +27 -17
- package/cpp/skia/include/core/SkM44.h +1 -0
- package/cpp/skia/include/core/SkMesh.h +120 -34
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkOverdrawCanvas.h +2 -1
- package/cpp/skia/include/core/SkPaint.h +15 -2
- package/cpp/skia/include/core/SkPath.h +4 -0
- package/cpp/skia/include/core/SkPathBuilder.h +1 -1
- package/cpp/skia/include/core/SkPicture.h +0 -3
- package/cpp/skia/include/core/SkPictureRecorder.h +0 -2
- package/cpp/skia/include/core/SkPixmap.h +19 -0
- package/cpp/skia/include/core/SkRasterHandleAllocator.h +3 -1
- package/cpp/skia/include/core/SkRect.h +11 -4
- package/cpp/skia/include/core/SkRefCnt.h +13 -1
- package/cpp/skia/include/core/SkRegion.h +6 -0
- package/cpp/skia/include/core/SkSamplingOptions.h +8 -6
- package/cpp/skia/include/core/SkScalar.h +6 -25
- package/cpp/skia/include/core/SkShader.h +20 -12
- package/cpp/skia/include/core/SkSpan.h +51 -19
- package/cpp/skia/include/core/SkStream.h +2 -2
- package/cpp/skia/include/core/SkString.h +11 -3
- package/cpp/skia/include/core/SkSurface.h +85 -8
- package/cpp/skia/include/core/SkTextBlob.h +5 -2
- package/cpp/skia/include/core/SkTypes.h +11 -10
- package/cpp/skia/include/docs/SkPDFDocument.h +0 -5
- package/cpp/skia/include/effects/Sk1DPathEffect.h +6 -1
- package/cpp/skia/include/effects/Sk2DPathEffect.h +4 -1
- package/cpp/skia/include/effects/SkColorMatrix.h +1 -0
- package/cpp/skia/include/effects/SkColorMatrixFilter.h +5 -8
- package/cpp/skia/include/effects/SkCornerPathEffect.h +5 -1
- package/cpp/skia/include/effects/SkDashPathEffect.h +5 -1
- package/cpp/skia/include/effects/SkGradientShader.h +68 -38
- package/cpp/skia/include/effects/SkHighContrastFilter.h +5 -1
- package/cpp/skia/include/effects/SkImageFilters.h +5 -4
- package/cpp/skia/include/effects/SkLumaColorFilter.h +4 -1
- package/cpp/skia/include/effects/SkOpPathEffect.h +6 -2
- package/cpp/skia/include/effects/SkOverdrawColorFilter.h +5 -2
- package/cpp/skia/include/effects/SkRuntimeEffect.h +54 -62
- package/cpp/skia/include/effects/SkShaderMaskFilter.h +3 -1
- package/cpp/skia/include/effects/SkTableColorFilter.h +8 -21
- package/cpp/skia/include/effects/SkTableMaskFilter.h +5 -1
- package/cpp/skia/include/effects/SkTrimPathEffect.h +5 -1
- package/cpp/skia/include/encode/SkEncoder.h +17 -0
- package/cpp/skia/include/encode/SkWebpEncoder.h +17 -0
- package/cpp/skia/include/gpu/GpuTypes.h +18 -0
- package/cpp/skia/include/gpu/GrBackendSurface.h +38 -17
- package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +6 -71
- package/cpp/skia/include/gpu/GrContextOptions.h +1 -1
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +10 -9
- package/cpp/skia/include/gpu/GrDirectContext.h +42 -22
- package/cpp/skia/include/gpu/GrRecordingContext.h +6 -3
- package/cpp/skia/include/gpu/GrTypes.h +11 -11
- package/cpp/skia/include/gpu/MutableTextureState.h +122 -0
- package/cpp/skia/include/gpu/gl/GrGLFunctions.h +1 -0
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +1 -0
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +7 -0
- package/cpp/skia/include/gpu/graphite/CombinationBuilder.h +195 -0
- package/cpp/skia/include/gpu/graphite/Context.h +47 -55
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +85 -0
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +1 -17
- package/cpp/skia/include/gpu/graphite/ImageProvider.h +61 -0
- package/cpp/skia/include/gpu/graphite/Recorder.h +87 -8
- package/cpp/skia/include/gpu/graphite/Recording.h +19 -9
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +40 -8
- package/cpp/skia/include/gpu/graphite/dawn/DawnBackendContext.h +25 -0
- package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +3 -2
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +69 -0
- package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +39 -0
- package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +21 -19
- package/cpp/skia/include/gpu/vk/GrVkExtensions.h +2 -50
- package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +2 -127
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +5 -43
- package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +46 -0
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +67 -0
- package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +116 -0
- package/cpp/skia/include/gpu/vk/VulkanTypes.h +59 -0
- package/cpp/skia/include/pathops/SkPathOps.h +1 -1
- package/cpp/skia/include/private/SkColorData.h +10 -40
- package/cpp/skia/include/private/SkEncodedInfo.h +9 -3
- package/cpp/skia/include/private/SkFloatingPoint.h +9 -6
- package/cpp/skia/include/private/SkHalf.h +5 -52
- package/cpp/skia/include/private/SkMacros.h +1 -1
- package/cpp/skia/include/private/SkMalloc.h +4 -0
- package/cpp/skia/include/private/SkPathRef.h +10 -10
- package/cpp/skia/include/private/SkSLModifiers.h +59 -23
- package/cpp/skia/include/private/SkSLProgramKind.h +1 -0
- package/cpp/skia/include/private/SkSLSymbol.h +7 -3
- package/cpp/skia/include/private/SkStringView.h +4 -0
- package/cpp/skia/include/private/SkTArray.h +21 -7
- package/cpp/skia/include/private/SkTDArray.h +173 -285
- package/cpp/skia/include/private/SkTHash.h +33 -32
- package/cpp/skia/include/private/SkTemplates.h +24 -26
- package/cpp/skia/include/private/SkVx.h +218 -135
- package/cpp/skia/include/private/chromium/GrSlug.h +3 -65
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +6 -3
- package/cpp/skia/include/private/chromium/Slug.h +76 -0
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +6 -1
- package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +5 -39
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +63 -0
- package/cpp/skia/include/{gpu/vk/GrVkVulkan.h → private/gpu/vk/SkiaVulkan.h} +2 -2
- package/cpp/skia/include/private/gpu/vk/VulkanTypesPriv.h +57 -0
- package/cpp/skia/include/sksl/DSL.h +0 -1
- package/cpp/skia/include/sksl/DSLBlock.h +4 -18
- package/cpp/skia/include/sksl/DSLCase.h +2 -8
- package/cpp/skia/include/sksl/DSLCore.h +8 -15
- package/cpp/skia/include/sksl/DSLExpression.h +51 -142
- package/cpp/skia/include/sksl/DSLFunction.h +7 -15
- package/cpp/skia/include/sksl/DSLModifiers.h +5 -2
- package/cpp/skia/include/sksl/DSLStatement.h +4 -39
- package/cpp/skia/include/sksl/DSLSymbols.h +1 -11
- package/cpp/skia/include/sksl/DSLType.h +20 -12
- package/cpp/skia/include/sksl/DSLVar.h +56 -146
- package/cpp/skia/include/sksl/SkSLErrorReporter.h +2 -15
- package/cpp/skia/include/sksl/SkSLOperator.h +62 -59
- package/cpp/skia/include/sksl/SkSLPosition.h +2 -0
- package/cpp/skia/include/sksl/SkSLVersion.h +27 -0
- package/cpp/skia/include/svg/SkSVGCanvas.h +1 -0
- package/cpp/skia/include/utils/SkAnimCodecPlayer.h +1 -1
- package/cpp/skia/include/utils/SkBase64.h +2 -0
- package/cpp/skia/include/utils/SkCustomTypeface.h +24 -11
- package/cpp/skia/include/utils/SkEventTracer.h +12 -1
- package/cpp/skia/include/utils/SkNWayCanvas.h +11 -4
- package/cpp/skia/include/utils/SkPaintFilterCanvas.h +9 -4
- package/cpp/skia/include/utils/SkParse.h +3 -0
- package/cpp/skia/include/utils/SkShadowUtils.h +2 -0
- package/cpp/skia/include/utils/SkTextUtils.h +2 -1
- package/cpp/skia/{include/third_party → modules}/skcms/skcms.h +10 -0
- package/cpp/skia/modules/skcms/skcms_internal.h +56 -0
- package/cpp/skia/modules/skcms/src/Transform_inl.h +1609 -0
- package/cpp/skia/modules/skparagraph/include/DartTypes.h +153 -0
- package/cpp/skia/modules/skparagraph/include/FontArguments.h +46 -0
- package/cpp/skia/modules/skparagraph/include/FontCollection.h +84 -0
- package/cpp/skia/modules/skparagraph/include/Metrics.h +98 -0
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +111 -0
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +69 -0
- package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +77 -0
- package/cpp/skia/modules/skparagraph/include/ParagraphStyle.h +143 -0
- package/cpp/skia/modules/skparagraph/include/TextShadow.h +30 -0
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +352 -0
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +81 -0
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGTypes.h +3 -3
- package/cpp/skia/src/core/SkLRUCache.h +126 -0
- package/cpp/skia/src/core/SkTInternalLList.h +302 -0
- package/cpp/utils/RNSkTimingInfo.h +1 -0
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.h +15 -4
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +40 -54
- package/ios/RNSkia-iOS/SkiaDomViewManager.h +8 -0
- package/ios/RNSkia-iOS/SkiaDomViewManager.mm +51 -0
- package/lib/commonjs/dom/nodes/JsiSkDOM.js +56 -56
- package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/commonjs/dom/nodes/RenderNode.js +1 -1
- package/lib/commonjs/dom/nodes/RenderNode.js.map +1 -1
- package/lib/commonjs/renderer/Canvas.js +19 -63
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/renderer/DependencyManager.js +0 -5
- package/lib/commonjs/renderer/DependencyManager.js.map +1 -1
- package/lib/commonjs/renderer/HostComponents.js.map +1 -1
- package/lib/commonjs/renderer/useCanvas.js +4 -18
- package/lib/commonjs/renderer/useCanvas.js.map +1 -1
- package/lib/commonjs/views/SkiaBaseWebView.js +7 -0
- package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -1
- package/lib/commonjs/views/SkiaDomView.js +152 -0
- package/lib/commonjs/views/SkiaDomView.js.map +1 -0
- package/lib/commonjs/views/SkiaDomView.web.js +55 -0
- package/lib/commonjs/views/SkiaDomView.web.js.map +1 -0
- package/lib/commonjs/views/SkiaPictureView.js +16 -2
- package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
- package/lib/commonjs/views/SkiaView.js +17 -2
- package/lib/commonjs/views/SkiaView.js.map +1 -1
- package/lib/commonjs/views/index.js +13 -0
- package/lib/commonjs/views/index.js.map +1 -1
- package/lib/commonjs/views/types.js.map +1 -1
- package/lib/module/dom/nodes/JsiSkDOM.js +56 -56
- package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/module/dom/nodes/RenderNode.js +1 -1
- package/lib/module/dom/nodes/RenderNode.js.map +1 -1
- package/lib/module/renderer/Canvas.js +20 -64
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/renderer/DependencyManager.js +0 -5
- package/lib/module/renderer/DependencyManager.js.map +1 -1
- package/lib/module/renderer/HostComponents.js.map +1 -1
- package/lib/module/renderer/useCanvas.js +2 -13
- package/lib/module/renderer/useCanvas.js.map +1 -1
- package/lib/module/views/SkiaBaseWebView.js +7 -0
- package/lib/module/views/SkiaBaseWebView.js.map +1 -1
- package/lib/module/views/SkiaDomView.js +128 -0
- package/lib/module/views/SkiaDomView.js.map +1 -0
- package/lib/module/views/SkiaDomView.web.js +41 -0
- package/lib/module/views/SkiaDomView.web.js.map +1 -0
- package/lib/module/views/SkiaPictureView.js +14 -2
- package/lib/module/views/SkiaPictureView.js.map +1 -1
- package/lib/module/views/SkiaView.js +15 -2
- package/lib/module/views/SkiaView.js.map +1 -1
- package/lib/module/views/index.js +1 -0
- package/lib/module/views/index.js.map +1 -1
- package/lib/module/views/types.js.map +1 -1
- package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +57 -64
- package/lib/typescript/src/renderer/Canvas.d.ts +5 -8
- package/lib/typescript/src/renderer/DependencyManager.d.ts +0 -2
- package/lib/typescript/src/renderer/HostComponents.d.ts +66 -3
- package/lib/typescript/src/renderer/useCanvas.d.ts +0 -6
- package/lib/typescript/src/views/SkiaBaseWebView.d.ts +4 -0
- package/lib/typescript/src/views/SkiaDomView.d.ts +31 -0
- package/lib/typescript/src/views/SkiaDomView.web.d.ts +7 -0
- package/lib/typescript/src/views/index.d.ts +1 -0
- package/lib/typescript/src/views/types.d.ts +12 -2
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libskparagraph.a +0 -0
- package/libs/android/arm64-v8a/libsksg.a +0 -0
- package/libs/android/arm64-v8a/libskshaper.a +0 -0
- package/libs/android/arm64-v8a/libskunicode.a +0 -0
- package/libs/android/arm64-v8a/libsvg.a +0 -0
- package/libs/android/armeabi-v7a/libskia.a +0 -0
- package/libs/android/armeabi-v7a/libskottie.a +0 -0
- package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
- package/libs/android/armeabi-v7a/libsksg.a +0 -0
- package/libs/android/armeabi-v7a/libskshaper.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode.a +0 -0
- package/libs/android/armeabi-v7a/libsvg.a +0 -0
- package/libs/android/x86/libskia.a +0 -0
- package/libs/android/x86/libskottie.a +0 -0
- package/libs/android/x86/libskparagraph.a +0 -0
- package/libs/android/x86/libsksg.a +0 -0
- package/libs/android/x86/libskshaper.a +0 -0
- package/libs/android/x86/libskunicode.a +0 -0
- package/libs/android/x86/libsvg.a +0 -0
- package/libs/android/x86_64/libskia.a +0 -0
- package/libs/android/x86_64/libskottie.a +0 -0
- package/libs/android/x86_64/libskparagraph.a +0 -0
- package/libs/android/x86_64/libsksg.a +0 -0
- package/libs/android/x86_64/libskshaper.a +0 -0
- package/libs/android/x86_64/libskunicode.a +0 -0
- package/libs/android/x86_64/libsvg.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/ios/libskparagraph.xcframework/Info.plist +42 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/ios/libsksg.xcframework/Info.plist +5 -5
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/ios/libskunicode.xcframework/Info.plist +42 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +5 -3
- package/react-native-skia.podspec +3 -1
- package/src/dom/nodes/JsiSkDOM.ts +170 -56
- package/src/dom/nodes/RenderNode.ts +1 -1
- package/src/renderer/Canvas.tsx +32 -56
- package/src/renderer/DependencyManager.tsx +0 -5
- package/src/renderer/HostComponents.ts +152 -1
- package/src/renderer/useCanvas.ts +1 -15
- package/src/views/SkiaBaseWebView.tsx +4 -0
- package/src/views/SkiaDomView.tsx +120 -0
- package/src/views/SkiaDomView.web.tsx +37 -0
- package/src/views/SkiaPictureView.tsx +10 -2
- package/src/views/SkiaView.tsx +11 -3
- package/src/views/index.ts +1 -0
- package/src/views/types.ts +19 -2
- package/cpp/jsi/JsiSimpleValueWrapper.h +0 -99
- package/cpp/skia/include/c/sk_canvas.h +0 -159
- package/cpp/skia/include/c/sk_colorspace.h +0 -25
- package/cpp/skia/include/c/sk_data.h +0 -65
- package/cpp/skia/include/c/sk_image.h +0 -71
- package/cpp/skia/include/c/sk_imageinfo.h +0 -62
- package/cpp/skia/include/c/sk_maskfilter.h +0 -47
- package/cpp/skia/include/c/sk_matrix.h +0 -49
- package/cpp/skia/include/c/sk_paint.h +0 -145
- package/cpp/skia/include/c/sk_path.h +0 -102
- package/cpp/skia/include/c/sk_picture.h +0 -70
- package/cpp/skia/include/c/sk_shader.h +0 -143
- package/cpp/skia/include/c/sk_surface.h +0 -73
- package/cpp/skia/include/c/sk_types.h +0 -278
- package/cpp/skia/include/gpu/graphite/SkStuff.h +0 -47
- package/cpp/skia/include/private/SkNx.h +0 -430
- package/cpp/skia/include/private/SkNx_neon.h +0 -713
- package/cpp/skia/include/private/SkNx_sse.h +0 -823
- package/cpp/skia/include/sksl/DSLRuntimeEffects.h +0 -32
- package/cpp/skia/include/sksl/DSLWrapper.h +0 -77
|
@@ -127,232 +127,346 @@ export class JsiSkDOM implements SkDOM {
|
|
|
127
127
|
constructor(private ctx: NodeContext) {}
|
|
128
128
|
|
|
129
129
|
Layer(props?: ChildrenProps) {
|
|
130
|
-
return
|
|
130
|
+
return global.SkiaDomApi && global.SkiaDomApi.LayerNode
|
|
131
|
+
? global.SkiaDomApi.LayerNode(props ?? {})
|
|
132
|
+
: new LayerNode(this.ctx, props ?? {});
|
|
131
133
|
}
|
|
132
134
|
|
|
133
135
|
Group(props?: GroupProps) {
|
|
134
|
-
return
|
|
136
|
+
return global.SkiaDomApi && global.SkiaDomApi.GroupNode
|
|
137
|
+
? global.SkiaDomApi.GroupNode(props ?? {})
|
|
138
|
+
: new GroupNode(this.ctx, props ?? {});
|
|
135
139
|
}
|
|
136
140
|
|
|
137
141
|
Paint(props: PaintProps) {
|
|
138
|
-
return
|
|
142
|
+
return global.SkiaDomApi && global.SkiaDomApi.PaintNode
|
|
143
|
+
? global.SkiaDomApi.PaintNode(props ?? {})
|
|
144
|
+
: new PaintNode(this.ctx, props);
|
|
139
145
|
}
|
|
140
146
|
|
|
141
147
|
// Drawings
|
|
142
148
|
Fill(props?: DrawingNodeProps) {
|
|
143
|
-
return
|
|
149
|
+
return global.SkiaDomApi && global.SkiaDomApi.FillNode
|
|
150
|
+
? global.SkiaDomApi.FillNode(props ?? {})
|
|
151
|
+
: new FillNode(this.ctx, props);
|
|
144
152
|
}
|
|
145
153
|
|
|
146
154
|
Image(props: ImageProps) {
|
|
147
|
-
return
|
|
155
|
+
return global.SkiaDomApi && global.SkiaDomApi.ImageNode
|
|
156
|
+
? global.SkiaDomApi.ImageNode(props ?? {})
|
|
157
|
+
: new ImageNode(this.ctx, props);
|
|
148
158
|
}
|
|
149
159
|
|
|
150
160
|
Circle(props: CircleProps) {
|
|
151
|
-
return
|
|
161
|
+
return global.SkiaDomApi && global.SkiaDomApi.CircleNode
|
|
162
|
+
? global.SkiaDomApi.CircleNode(props ?? {})
|
|
163
|
+
: new CircleNode(this.ctx, props);
|
|
152
164
|
}
|
|
153
165
|
|
|
154
166
|
Path(props: PathProps) {
|
|
155
|
-
return
|
|
167
|
+
return global.SkiaDomApi && global.SkiaDomApi.PathNode
|
|
168
|
+
? global.SkiaDomApi.PathNode(props ?? {})
|
|
169
|
+
: new PathNode(this.ctx, props);
|
|
156
170
|
}
|
|
157
171
|
|
|
158
172
|
CustomDrawing(props: CustomDrawingNodeProps) {
|
|
159
|
-
return
|
|
173
|
+
return global.SkiaDomApi && global.SkiaDomApi.CustomDrawingNode
|
|
174
|
+
? global.SkiaDomApi.CustomDrawingNode(props ?? {})
|
|
175
|
+
: new CustomDrawingNode(this.ctx, props);
|
|
160
176
|
}
|
|
161
177
|
|
|
162
178
|
Line(props: LineProps) {
|
|
163
|
-
return
|
|
179
|
+
return global.SkiaDomApi && global.SkiaDomApi.LineNode
|
|
180
|
+
? global.SkiaDomApi.LineNode(props ?? {})
|
|
181
|
+
: new LineNode(this.ctx, props);
|
|
164
182
|
}
|
|
165
183
|
|
|
166
184
|
Oval(props: OvalProps) {
|
|
167
|
-
return
|
|
185
|
+
return global.SkiaDomApi && global.SkiaDomApi.OvalNode
|
|
186
|
+
? global.SkiaDomApi.OvalNode(props ?? {})
|
|
187
|
+
: new OvalNode(this.ctx, props);
|
|
168
188
|
}
|
|
169
189
|
|
|
170
190
|
Patch(props: PatchProps) {
|
|
171
|
-
return
|
|
191
|
+
return global.SkiaDomApi && global.SkiaDomApi.PatchNode
|
|
192
|
+
? global.SkiaDomApi.PatchNode(props ?? {})
|
|
193
|
+
: new PatchNode(this.ctx, props);
|
|
172
194
|
}
|
|
173
195
|
|
|
174
196
|
Points(props: PointsProps) {
|
|
175
|
-
return
|
|
197
|
+
return global.SkiaDomApi && global.SkiaDomApi.PointsNode
|
|
198
|
+
? global.SkiaDomApi.PointsNode(props ?? {})
|
|
199
|
+
: new PointsNode(this.ctx, props);
|
|
176
200
|
}
|
|
177
201
|
|
|
178
202
|
Rect(props: RectProps) {
|
|
179
|
-
return
|
|
203
|
+
return global.SkiaDomApi && global.SkiaDomApi.RectNode
|
|
204
|
+
? global.SkiaDomApi.RectNode(props)
|
|
205
|
+
: new RectNode(this.ctx, props);
|
|
180
206
|
}
|
|
181
207
|
|
|
182
208
|
RRect(props: RoundedRectProps) {
|
|
183
|
-
return
|
|
209
|
+
return global.SkiaDomApi && global.SkiaDomApi.RRectNode
|
|
210
|
+
? global.SkiaDomApi.RRectNode(props)
|
|
211
|
+
: new RRectNode(this.ctx, props);
|
|
184
212
|
}
|
|
185
213
|
|
|
186
214
|
Vertices(props: VerticesProps) {
|
|
187
|
-
return
|
|
215
|
+
return global.SkiaDomApi && global.SkiaDomApi.VerticesNode
|
|
216
|
+
? global.SkiaDomApi.VerticesNode(props)
|
|
217
|
+
: new VerticesNode(this.ctx, props);
|
|
188
218
|
}
|
|
189
219
|
|
|
190
220
|
Text(props: TextProps) {
|
|
191
|
-
return
|
|
221
|
+
return global.SkiaDomApi && global.SkiaDomApi.TextNode
|
|
222
|
+
? global.SkiaDomApi.TextNode(props)
|
|
223
|
+
: new TextNode(this.ctx, props);
|
|
192
224
|
}
|
|
193
225
|
|
|
194
226
|
TextPath(props: TextPathProps) {
|
|
195
|
-
return
|
|
227
|
+
return global.SkiaDomApi && global.SkiaDomApi.TextPathNode
|
|
228
|
+
? global.SkiaDomApi.TextPathNode(props)
|
|
229
|
+
: new TextPathNode(this.ctx, props);
|
|
196
230
|
}
|
|
197
231
|
|
|
198
232
|
TextBlob(props: TextBlobProps) {
|
|
199
|
-
return
|
|
233
|
+
return global.SkiaDomApi && global.SkiaDomApi.TextBlobNode
|
|
234
|
+
? global.SkiaDomApi.TextBlobNode(props)
|
|
235
|
+
: new TextBlobNode(this.ctx, props);
|
|
200
236
|
}
|
|
201
237
|
|
|
202
238
|
Glyphs(props: GlyphsProps) {
|
|
203
|
-
return
|
|
239
|
+
return global.SkiaDomApi && global.SkiaDomApi.GlyphsNode
|
|
240
|
+
? global.SkiaDomApi.GlyphsNode(props)
|
|
241
|
+
: new GlyphsNode(this.ctx, props);
|
|
204
242
|
}
|
|
205
243
|
|
|
206
244
|
DiffRect(props: DiffRectProps) {
|
|
207
|
-
return
|
|
245
|
+
return global.SkiaDomApi && global.SkiaDomApi.DiffRectNode
|
|
246
|
+
? global.SkiaDomApi.DiffRectNode(props)
|
|
247
|
+
: new DiffRectNode(this.ctx, props);
|
|
208
248
|
}
|
|
209
249
|
|
|
210
250
|
Picture(props: PictureProps) {
|
|
211
|
-
return
|
|
251
|
+
return global.SkiaDomApi && global.SkiaDomApi.PictureNode
|
|
252
|
+
? global.SkiaDomApi.PictureNode(props)
|
|
253
|
+
: new PictureNode(this.ctx, props);
|
|
212
254
|
}
|
|
213
255
|
|
|
214
256
|
ImageSVG(props: ImageSVGProps) {
|
|
215
|
-
return
|
|
257
|
+
return global.SkiaDomApi && global.SkiaDomApi.ImageSVGNode
|
|
258
|
+
? global.SkiaDomApi.ImageSVGNode(props)
|
|
259
|
+
: new ImageSVGNode(this.ctx, props);
|
|
216
260
|
}
|
|
217
261
|
|
|
218
262
|
// BlurMaskFilters
|
|
219
263
|
BlurMaskFilter(props: BlurMaskFilterProps) {
|
|
220
|
-
return
|
|
264
|
+
return global.SkiaDomApi && global.SkiaDomApi.BlurMaskFilterNode
|
|
265
|
+
? global.SkiaDomApi.BlurMaskFilterNode(props)
|
|
266
|
+
: new BlurMaskFilterNode(this.ctx, props);
|
|
221
267
|
}
|
|
222
268
|
|
|
223
269
|
// ImageFilters
|
|
224
270
|
BlendImageFilter(props: BlendImageFilterProps) {
|
|
225
|
-
return
|
|
271
|
+
return global.SkiaDomApi && global.SkiaDomApi.BlendImageFilterNode
|
|
272
|
+
? global.SkiaDomApi.BlendImageFilterNode(props)
|
|
273
|
+
: new BlendImageFilterNode(this.ctx, props);
|
|
226
274
|
}
|
|
227
275
|
|
|
228
276
|
DropShadowImageFilter(props: DropShadowImageFilterProps) {
|
|
229
|
-
return
|
|
277
|
+
return global.SkiaDomApi && global.SkiaDomApi.DropShadowImageFilterNode
|
|
278
|
+
? global.SkiaDomApi.DropShadowImageFilterNode(props)
|
|
279
|
+
: new DropShadowImageFilterNode(this.ctx, props);
|
|
230
280
|
}
|
|
231
281
|
|
|
232
282
|
DisplacementMapImageFilter(props: DisplacementMapImageFilterProps) {
|
|
233
|
-
return
|
|
283
|
+
return global.SkiaDomApi && global.SkiaDomApi.DisplacementMapImageFilterNode
|
|
284
|
+
? global.SkiaDomApi.DisplacementMapImageFilterNode(props)
|
|
285
|
+
: new DisplacementMapImageFilterNode(this.ctx, props);
|
|
234
286
|
}
|
|
235
287
|
|
|
236
288
|
BlurImageFilter(props: BlurImageFilterProps) {
|
|
237
|
-
return
|
|
289
|
+
return global.SkiaDomApi && global.SkiaDomApi.BlurImageFilterNode
|
|
290
|
+
? global.SkiaDomApi.BlurImageFilterNode(props)
|
|
291
|
+
: new BlurImageFilterNode(this.ctx, props);
|
|
238
292
|
}
|
|
239
293
|
|
|
240
294
|
OffsetImageFilter(props: OffsetImageFilterProps) {
|
|
241
|
-
return
|
|
295
|
+
return global.SkiaDomApi && global.SkiaDomApi.OffsetImageFilterNode
|
|
296
|
+
? global.SkiaDomApi.OffsetImageFilterNode(props)
|
|
297
|
+
: new OffsetImageFilterNode(this.ctx, props);
|
|
242
298
|
}
|
|
243
299
|
|
|
244
300
|
MorphologyImageFilter(props: MorphologyImageFilterProps) {
|
|
245
|
-
return
|
|
301
|
+
return global.SkiaDomApi && global.SkiaDomApi.MorphologyImageFilterNode
|
|
302
|
+
? global.SkiaDomApi.MorphologyImageFilterNode(props)
|
|
303
|
+
: new MorphologyImageFilterNode(this.ctx, props);
|
|
246
304
|
}
|
|
247
305
|
|
|
248
306
|
RuntimeShaderImageFilter(props: RuntimeShaderImageFilterProps) {
|
|
249
|
-
return
|
|
307
|
+
return global.SkiaDomApi && global.SkiaDomApi.RuntimeShaderImageFilterNode
|
|
308
|
+
? global.SkiaDomApi.RuntimeShaderImageFilterNode(props)
|
|
309
|
+
: new RuntimeShaderImageFilterNode(this.ctx, props);
|
|
250
310
|
}
|
|
251
311
|
|
|
252
312
|
// Color Filters
|
|
253
313
|
MatrixColorFilter(props: MatrixColorFilterProps) {
|
|
254
|
-
return
|
|
314
|
+
return global.SkiaDomApi && global.SkiaDomApi.MatrixColorFilterNode
|
|
315
|
+
? global.SkiaDomApi.MatrixColorFilterNode(props)
|
|
316
|
+
: new MatrixColorFilterNode(this.ctx, props);
|
|
255
317
|
}
|
|
256
318
|
|
|
257
319
|
BlendColorFilter(props: BlendColorFilterProps) {
|
|
258
|
-
return
|
|
320
|
+
return global.SkiaDomApi && global.SkiaDomApi.BlendColorFilterNode
|
|
321
|
+
? global.SkiaDomApi.BlendColorFilterNode(props)
|
|
322
|
+
: new BlendColorFilterNode(this.ctx, props);
|
|
259
323
|
}
|
|
260
324
|
|
|
261
325
|
LumaColorFilter() {
|
|
262
|
-
return
|
|
326
|
+
return global.SkiaDomApi && global.SkiaDomApi.LumaColorFilterNode
|
|
327
|
+
? global.SkiaDomApi.LumaColorFilterNode()
|
|
328
|
+
: new LumaColorFilterNode(this.ctx);
|
|
263
329
|
}
|
|
264
330
|
|
|
265
331
|
LinearToSRGBGammaColorFilter() {
|
|
266
|
-
return
|
|
332
|
+
return global.SkiaDomApi &&
|
|
333
|
+
global.SkiaDomApi.LinearToSRGBGammaColorFilterNode
|
|
334
|
+
? global.SkiaDomApi.LinearToSRGBGammaColorFilterNode()
|
|
335
|
+
: new LinearToSRGBGammaColorFilterNode(this.ctx);
|
|
267
336
|
}
|
|
268
337
|
|
|
269
338
|
SRGBToLinearGammaColorFilter() {
|
|
270
|
-
return
|
|
339
|
+
return global.SkiaDomApi &&
|
|
340
|
+
global.SkiaDomApi.SRGBToLinearGammaColorFilterNode
|
|
341
|
+
? global.SkiaDomApi.SRGBToLinearGammaColorFilterNode()
|
|
342
|
+
: new SRGBToLinearGammaColorFilterNode(this.ctx);
|
|
271
343
|
}
|
|
272
344
|
|
|
273
345
|
LerpColorFilter(props: LerpColorFilterProps) {
|
|
274
|
-
return
|
|
346
|
+
return global.SkiaDomApi && global.SkiaDomApi.LerpColorFilterNode
|
|
347
|
+
? global.SkiaDomApi.LerpColorFilterNode(props)
|
|
348
|
+
: new LerpColorFilterNode(this.ctx, props);
|
|
275
349
|
}
|
|
276
350
|
|
|
277
351
|
// Shaders
|
|
278
352
|
Shader(props: ShaderProps) {
|
|
279
|
-
return
|
|
353
|
+
return global.SkiaDomApi && global.SkiaDomApi.ShaderNode
|
|
354
|
+
? global.SkiaDomApi.ShaderNode(props)
|
|
355
|
+
: new ShaderNode(this.ctx, props);
|
|
280
356
|
}
|
|
281
357
|
|
|
282
358
|
ImageShader(props: ImageShaderProps) {
|
|
283
|
-
return
|
|
359
|
+
return global.SkiaDomApi && global.SkiaDomApi.ImageShaderNode
|
|
360
|
+
? global.SkiaDomApi.ImageShaderNode(props)
|
|
361
|
+
: new ImageShaderNode(this.ctx, props);
|
|
284
362
|
}
|
|
285
363
|
|
|
286
364
|
ColorShader(props: ColorProps) {
|
|
287
|
-
return
|
|
365
|
+
return global.SkiaDomApi && global.SkiaDomApi.ColorShaderNode
|
|
366
|
+
? global.SkiaDomApi.ColorShaderNode(props)
|
|
367
|
+
: new ColorNode(this.ctx, props);
|
|
288
368
|
}
|
|
289
369
|
|
|
290
370
|
SweepGradient(props: SweepGradientProps) {
|
|
291
|
-
return
|
|
371
|
+
return global.SkiaDomApi && global.SkiaDomApi.SweepGradientNode
|
|
372
|
+
? global.SkiaDomApi.SweepGradientNode(props)
|
|
373
|
+
: new SweepGradientNode(this.ctx, props);
|
|
292
374
|
}
|
|
293
375
|
|
|
294
376
|
Turbulence(props: TurbulenceProps) {
|
|
295
|
-
return
|
|
377
|
+
return global.SkiaDomApi && global.SkiaDomApi.TurbulenceNode
|
|
378
|
+
? global.SkiaDomApi.TurbulenceNode(props)
|
|
379
|
+
: new TurbulenceNode(this.ctx, props);
|
|
296
380
|
}
|
|
297
381
|
|
|
298
382
|
FractalNoise(props: FractalNoiseProps) {
|
|
299
|
-
return
|
|
383
|
+
return global.SkiaDomApi && global.SkiaDomApi.FractalNoiseNode
|
|
384
|
+
? global.SkiaDomApi.FractalNoiseNode(props)
|
|
385
|
+
: new FractalNoiseNode(this.ctx, props);
|
|
300
386
|
}
|
|
301
387
|
|
|
302
388
|
LinearGradient(props: LinearGradientProps) {
|
|
303
|
-
return
|
|
389
|
+
return global.SkiaDomApi && global.SkiaDomApi.LinearGradientNode
|
|
390
|
+
? global.SkiaDomApi.LinearGradientNode(props)
|
|
391
|
+
: new LinearGradientNode(this.ctx, props);
|
|
304
392
|
}
|
|
305
393
|
|
|
306
394
|
RadialGradient(props: RadialGradientProps) {
|
|
307
|
-
return
|
|
395
|
+
return global.SkiaDomApi && global.SkiaDomApi.RadialGradientNode
|
|
396
|
+
? global.SkiaDomApi.RadialGradientNode(props)
|
|
397
|
+
: new RadialGradientNode(this.ctx, props);
|
|
308
398
|
}
|
|
309
399
|
|
|
310
400
|
TwoPointConicalGradient(props: TwoPointConicalGradientProps) {
|
|
311
|
-
return
|
|
401
|
+
return global.SkiaDomApi && global.SkiaDomApi.TwoPointConicalGradientNode
|
|
402
|
+
? global.SkiaDomApi.TwoPointConicalGradientNode(props)
|
|
403
|
+
: new TwoPointConicalGradientNode(this.ctx, props);
|
|
312
404
|
}
|
|
313
405
|
|
|
314
406
|
// Path Effects
|
|
315
407
|
CornerPathEffect(props: CornerPathEffectProps) {
|
|
316
|
-
return
|
|
408
|
+
return global.SkiaDomApi && global.SkiaDomApi.CornerPathEffectNode
|
|
409
|
+
? global.SkiaDomApi.CornerPathEffectNode(props)
|
|
410
|
+
: new CornerPathEffectNode(this.ctx, props);
|
|
317
411
|
}
|
|
318
412
|
|
|
319
413
|
DiscretePathEffect(props: DiscretePathEffectProps) {
|
|
320
|
-
return
|
|
414
|
+
return global.SkiaDomApi && global.SkiaDomApi.DiscretePathEffectNode
|
|
415
|
+
? global.SkiaDomApi.DiscretePathEffectNode(props)
|
|
416
|
+
: new DiscretePathEffectNode(this.ctx, props);
|
|
321
417
|
}
|
|
322
418
|
|
|
323
419
|
DashPathEffect(props: DashPathEffectProps) {
|
|
324
|
-
return
|
|
420
|
+
return global.SkiaDomApi && global.SkiaDomApi.DashPathEffectNode
|
|
421
|
+
? global.SkiaDomApi.DashPathEffectNode(props)
|
|
422
|
+
: new DashPathEffectNode(this.ctx, props);
|
|
325
423
|
}
|
|
326
424
|
|
|
327
425
|
Path1DPathEffect(props: Path1DPathEffectProps) {
|
|
328
|
-
return
|
|
426
|
+
return global.SkiaDomApi && global.SkiaDomApi.Path1DPathEffectNode
|
|
427
|
+
? global.SkiaDomApi.Path1DPathEffectNode(props)
|
|
428
|
+
: new Path1DPathEffectNode(this.ctx, props);
|
|
329
429
|
}
|
|
330
430
|
|
|
331
431
|
Path2DPathEffect(props: Path2DPathEffectProps) {
|
|
332
|
-
return
|
|
432
|
+
return global.SkiaDomApi && global.SkiaDomApi.Path2DPathEffectNode
|
|
433
|
+
? global.SkiaDomApi.Path2DPathEffectNode(props)
|
|
434
|
+
: new Path2DPathEffectNode(this.ctx, props);
|
|
333
435
|
}
|
|
334
436
|
|
|
335
437
|
SumPathEffect() {
|
|
336
|
-
return
|
|
438
|
+
return global.SkiaDomApi && global.SkiaDomApi.SumPathEffectNode
|
|
439
|
+
? global.SkiaDomApi.SumPathEffectNode()
|
|
440
|
+
: new SumPathEffectNode(this.ctx);
|
|
337
441
|
}
|
|
338
442
|
|
|
339
443
|
Line2DPathEffect(props: Line2DPathEffectProps) {
|
|
340
|
-
return
|
|
444
|
+
return global.SkiaDomApi && global.SkiaDomApi.Line2DPathEffectNode
|
|
445
|
+
? global.SkiaDomApi.Line2DPathEffectNode(props)
|
|
446
|
+
: new Line2DPathEffectNode(this.ctx, props);
|
|
341
447
|
}
|
|
342
448
|
|
|
343
449
|
Blend(props: BlendProps) {
|
|
344
|
-
return
|
|
450
|
+
return global.SkiaDomApi && global.SkiaDomApi.BlendNode
|
|
451
|
+
? global.SkiaDomApi.BlendNode(props)
|
|
452
|
+
: new BlendNode(this.ctx, props);
|
|
345
453
|
}
|
|
346
454
|
|
|
347
455
|
BackdropFilter(props: ChildrenProps) {
|
|
348
|
-
return
|
|
456
|
+
return global.SkiaDomApi && global.SkiaDomApi.BackdropFilterNode
|
|
457
|
+
? global.SkiaDomApi.BackdropFilterNode(props)
|
|
458
|
+
: new BackdropFilterNode(this.ctx, props);
|
|
349
459
|
}
|
|
350
460
|
|
|
351
461
|
Box(props: BoxProps) {
|
|
352
|
-
return
|
|
462
|
+
return global.SkiaDomApi && global.SkiaDomApi.BoxNode
|
|
463
|
+
? global.SkiaDomApi.BoxNode(props)
|
|
464
|
+
: new BoxNode(this.ctx, props);
|
|
353
465
|
}
|
|
354
466
|
|
|
355
467
|
BoxShadow(props: BoxShadowProps) {
|
|
356
|
-
return
|
|
468
|
+
return global.SkiaDomApi && global.SkiaDomApi.BoxShadowNode
|
|
469
|
+
? global.SkiaDomApi.BoxShadowNode(props)
|
|
470
|
+
: new BoxShadowNode(this.ctx, props);
|
|
357
471
|
}
|
|
358
472
|
}
|
package/src/renderer/Canvas.tsx
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React, {
|
|
2
2
|
useEffect,
|
|
3
|
-
useState,
|
|
4
3
|
useCallback,
|
|
5
4
|
useMemo,
|
|
6
5
|
forwardRef,
|
|
7
6
|
useRef,
|
|
7
|
+
useState,
|
|
8
8
|
} from "react";
|
|
9
9
|
import type {
|
|
10
10
|
RefObject,
|
|
@@ -15,13 +15,12 @@ import type {
|
|
|
15
15
|
} from "react";
|
|
16
16
|
import type { OpaqueRoot } from "react-reconciler";
|
|
17
17
|
import ReactReconciler from "react-reconciler";
|
|
18
|
+
import { Platform } from "react-native";
|
|
18
19
|
|
|
19
|
-
import {
|
|
20
|
+
import { SkiaDomView } from "../views";
|
|
20
21
|
import type { TouchHandler } from "../views";
|
|
21
|
-
import { useValue } from "../values/hooks/useValue";
|
|
22
22
|
import { Skia } from "../skia/Skia";
|
|
23
|
-
import type { SkiaValue
|
|
24
|
-
import type { SkSize } from "../skia/types";
|
|
23
|
+
import type { SkiaValue } from "../values";
|
|
25
24
|
|
|
26
25
|
import { debug as hostDebug, skHostConfig } from "./HostConfig";
|
|
27
26
|
// import { debugTree } from "./nodes";
|
|
@@ -44,25 +43,31 @@ const render = (element: ReactNode, root: OpaqueRoot, container: Container) => {
|
|
|
44
43
|
});
|
|
45
44
|
};
|
|
46
45
|
|
|
47
|
-
export const useCanvasRef = () => useRef<
|
|
46
|
+
export const useCanvasRef = () => useRef<SkiaDomView>(null);
|
|
47
|
+
|
|
48
|
+
const createDependencyManager = (
|
|
49
|
+
registerValues: (values: Array<SkiaValue<unknown>>) => () => void
|
|
50
|
+
) =>
|
|
51
|
+
global.SkiaDomApi && global.SkiaDomApi.DependencyManager
|
|
52
|
+
? global.SkiaDomApi.DependencyManager(registerValues)
|
|
53
|
+
: new DependencyManager(registerValues);
|
|
48
54
|
|
|
49
|
-
export interface CanvasProps extends ComponentProps<typeof
|
|
50
|
-
ref?: RefObject<
|
|
55
|
+
export interface CanvasProps extends ComponentProps<typeof SkiaDomView> {
|
|
56
|
+
ref?: RefObject<SkiaDomView>;
|
|
51
57
|
children: ReactNode;
|
|
52
58
|
onTouch?: TouchHandler;
|
|
53
|
-
onSize?: SkiaMutableValue<SkSize>;
|
|
54
59
|
}
|
|
55
60
|
|
|
56
|
-
export const Canvas = forwardRef<
|
|
61
|
+
export const Canvas = forwardRef<SkiaDomView, CanvasProps>(
|
|
57
62
|
({ children, style, debug, mode, onTouch, onSize }, forwardedRef) => {
|
|
58
|
-
const size = useValue({ width: 0, height: 0 });
|
|
59
|
-
const canvasCtx = useMemo(() => ({ Skia, size }), [size]);
|
|
60
63
|
const innerRef = useCanvasRef();
|
|
61
64
|
const ref = useCombinedRefs(forwardedRef, innerRef);
|
|
62
|
-
const [
|
|
65
|
+
const [, setTick] = useState(0);
|
|
63
66
|
const redraw = useCallback(() => {
|
|
64
|
-
|
|
65
|
-
|
|
67
|
+
Platform.OS === "web"
|
|
68
|
+
? setTick((tick) => tick + 1)
|
|
69
|
+
: innerRef.current?.redraw();
|
|
70
|
+
}, [innerRef]);
|
|
66
71
|
|
|
67
72
|
const registerValues = useCallback(
|
|
68
73
|
(values: Array<SkiaValue<unknown>>) => {
|
|
@@ -75,7 +80,11 @@ export const Canvas = forwardRef<SkiaView, CanvasProps>(
|
|
|
75
80
|
);
|
|
76
81
|
|
|
77
82
|
const container = useMemo(() => {
|
|
78
|
-
return new Container(
|
|
83
|
+
return new Container(
|
|
84
|
+
Skia,
|
|
85
|
+
createDependencyManager(registerValues),
|
|
86
|
+
redraw
|
|
87
|
+
);
|
|
79
88
|
}, [redraw, registerValues]);
|
|
80
89
|
|
|
81
90
|
const root = useMemo(
|
|
@@ -92,50 +101,15 @@ export const Canvas = forwardRef<SkiaView, CanvasProps>(
|
|
|
92
101
|
),
|
|
93
102
|
[container]
|
|
94
103
|
);
|
|
104
|
+
|
|
95
105
|
// Render effect
|
|
96
106
|
useEffect(() => {
|
|
97
107
|
render(
|
|
98
|
-
<CanvasProvider value={
|
|
108
|
+
<CanvasProvider value={{ Skia }}>{children}</CanvasProvider>,
|
|
99
109
|
root,
|
|
100
110
|
container
|
|
101
111
|
);
|
|
102
|
-
}, [children, root, redraw, container
|
|
103
|
-
|
|
104
|
-
const paint = useMemo(() => Skia.Paint(), []);
|
|
105
|
-
|
|
106
|
-
// Draw callback
|
|
107
|
-
const onDraw = useDrawCallback(
|
|
108
|
-
(canvas, info) => {
|
|
109
|
-
// TODO: if tree is empty (count === 1) maybe we should not render?
|
|
110
|
-
const { width, height, timestamp } = info;
|
|
111
|
-
if (onTouch) {
|
|
112
|
-
onTouch(info.touches);
|
|
113
|
-
}
|
|
114
|
-
if (
|
|
115
|
-
width !== canvasCtx.size.current.width ||
|
|
116
|
-
height !== canvasCtx.size.current.height
|
|
117
|
-
) {
|
|
118
|
-
canvasCtx.size.current = { width, height };
|
|
119
|
-
if (onSize) {
|
|
120
|
-
onSize.current = { width, height };
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
paint.reset();
|
|
124
|
-
const ctx = {
|
|
125
|
-
width,
|
|
126
|
-
height,
|
|
127
|
-
timestamp,
|
|
128
|
-
canvas,
|
|
129
|
-
paint,
|
|
130
|
-
opacity: 1,
|
|
131
|
-
ref,
|
|
132
|
-
center: { x: width / 2, y: height / 2 },
|
|
133
|
-
Skia,
|
|
134
|
-
};
|
|
135
|
-
container.draw(ctx);
|
|
136
|
-
},
|
|
137
|
-
[tick, onTouch]
|
|
138
|
-
);
|
|
112
|
+
}, [children, root, redraw, container]);
|
|
139
113
|
|
|
140
114
|
useEffect(() => {
|
|
141
115
|
return () => {
|
|
@@ -146,10 +120,12 @@ export const Canvas = forwardRef<SkiaView, CanvasProps>(
|
|
|
146
120
|
}, [container, root]);
|
|
147
121
|
|
|
148
122
|
return (
|
|
149
|
-
<
|
|
123
|
+
<SkiaDomView
|
|
150
124
|
ref={ref}
|
|
151
125
|
style={style}
|
|
152
|
-
|
|
126
|
+
root={container.root}
|
|
127
|
+
onTouch={onTouch}
|
|
128
|
+
onSize={onSize}
|
|
153
129
|
mode={mode}
|
|
154
130
|
debug={debug}
|
|
155
131
|
/>
|
|
@@ -24,10 +24,6 @@ export class DependencyManager {
|
|
|
24
24
|
this.registerValues = registerValues;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
unsubscribeNodes(nodes: Node<unknown>[]) {
|
|
28
|
-
nodes.forEach((n) => this.unsubscribeNode(n));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
27
|
/**
|
|
32
28
|
* Call to unsubscribe all value listeners from the given node based
|
|
33
29
|
* on the current list of subscriptions for the node. This function
|
|
@@ -77,7 +73,6 @@ export class DependencyManager {
|
|
|
77
73
|
* when the node is mounted and when one or more props on the node changes.
|
|
78
74
|
* @param node Node to subscribe to value changes for
|
|
79
75
|
* @param props Node's properties
|
|
80
|
-
* @param onResolveProp Callback when a property value changes
|
|
81
76
|
*/
|
|
82
77
|
subscribeNode<P>(node: Node<unknown>, props: AnimatedProps<P>) {
|
|
83
78
|
// Get mutators from node's properties
|