@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
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "DerivedNodeProp.h"
|
|
4
|
+
#include "JsiSkMatrix.h"
|
|
5
|
+
|
|
6
|
+
#include <memory>
|
|
7
|
+
#include <string>
|
|
8
|
+
|
|
9
|
+
namespace RNSkia {
|
|
10
|
+
|
|
11
|
+
static PropId PropNameTransform = JsiPropId::get("transform");
|
|
12
|
+
|
|
13
|
+
static PropId PropNameTranslateX = JsiPropId::get("translateX");
|
|
14
|
+
static PropId PropNameTranslateY = JsiPropId::get("translateY");
|
|
15
|
+
static PropId PropNameScale = JsiPropId::get("scale");
|
|
16
|
+
static PropId PropNameScaleX = JsiPropId::get("scaleX");
|
|
17
|
+
static PropId PropNameScaleY = JsiPropId::get("scaleY");
|
|
18
|
+
static PropId PropNameSkewX = JsiPropId::get("skewX");
|
|
19
|
+
static PropId PropNameSkewY = JsiPropId::get("skewY");
|
|
20
|
+
static PropId PropNameRotate = JsiPropId::get("rotate");
|
|
21
|
+
static PropId PropNameRotateZ = JsiPropId::get("rotateZ");
|
|
22
|
+
|
|
23
|
+
class TransformProp : public DerivedProp<SkMatrix> {
|
|
24
|
+
public:
|
|
25
|
+
explicit TransformProp(PropId name) : DerivedProp<SkMatrix>() {
|
|
26
|
+
_transformProp = addProperty(std::make_shared<NodeProp>(name));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
void updateDerivedValue() override {
|
|
30
|
+
if (!_transformProp->isSet()) {
|
|
31
|
+
setDerivedValue(nullptr);
|
|
32
|
+
} else if (_transformProp->value().getType() != PropType::Array) {
|
|
33
|
+
throw std::runtime_error(
|
|
34
|
+
"Expected array for transform property, got " +
|
|
35
|
+
JsiValue::getTypeAsString(_transformProp->value().getType()));
|
|
36
|
+
} else {
|
|
37
|
+
auto m = std::make_shared<SkMatrix>(SkMatrix());
|
|
38
|
+
for (auto &el : _transformProp->value().getAsArray()) {
|
|
39
|
+
auto keys = el.getKeys();
|
|
40
|
+
if (keys.size() == 0) {
|
|
41
|
+
throw std::runtime_error(
|
|
42
|
+
"Empty value in transform. Expected translateX, translateY, "
|
|
43
|
+
"scale, "
|
|
44
|
+
"scaleX, scaleY, skewX, skewY, rotate or rotateZ.");
|
|
45
|
+
}
|
|
46
|
+
auto key = el.getKeys().at(0);
|
|
47
|
+
auto value = el.getValue(key).getAsNumber();
|
|
48
|
+
if (key == PropNameTranslateX) {
|
|
49
|
+
m->preTranslate(value, 0);
|
|
50
|
+
} else if (key == PropNameTranslateY) {
|
|
51
|
+
m->preTranslate(0, value);
|
|
52
|
+
} else if (key == PropNameScale) {
|
|
53
|
+
m->preScale(value, value);
|
|
54
|
+
} else if (key == PropNameScaleX) {
|
|
55
|
+
m->preScale(value, 1);
|
|
56
|
+
} else if (key == PropNameScaleY) {
|
|
57
|
+
m->preScale(1, value);
|
|
58
|
+
} else if (key == PropNameSkewX) {
|
|
59
|
+
m->preScale(value, 0);
|
|
60
|
+
} else if (key == PropNameSkewY) {
|
|
61
|
+
m->preScale(value, 0);
|
|
62
|
+
} else if (key == PropNameRotate || key == PropNameRotateZ) {
|
|
63
|
+
m->preRotate(SkRadiansToDegrees(value));
|
|
64
|
+
} else {
|
|
65
|
+
throw std::runtime_error(
|
|
66
|
+
"Unknown key in transform. Expected translateX, translateY, "
|
|
67
|
+
"scale, "
|
|
68
|
+
"scaleX, scaleY, skewX, skewY, rotate or rotateZ - got " +
|
|
69
|
+
std::string(key) + ".");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
setDerivedValue(m);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
private:
|
|
77
|
+
NodeProp *_transformProp;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
} // namespace RNSkia
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "MatrixProp.h"
|
|
4
|
+
#include "NodeProp.h"
|
|
5
|
+
#include "PointProp.h"
|
|
6
|
+
#include "TransformProp.h"
|
|
7
|
+
|
|
8
|
+
#include <memory>
|
|
9
|
+
#include <utility>
|
|
10
|
+
|
|
11
|
+
namespace RNSkia {
|
|
12
|
+
|
|
13
|
+
class TransformsProps : public DerivedProp<SkMatrix> {
|
|
14
|
+
public:
|
|
15
|
+
TransformsProps() : DerivedProp<SkMatrix>() {
|
|
16
|
+
_transformProp = addProperty(
|
|
17
|
+
std::make_shared<TransformProp>(JsiPropId::get("transform")));
|
|
18
|
+
_originProp =
|
|
19
|
+
addProperty(std::make_shared<PointProp>(JsiPropId::get("origin")));
|
|
20
|
+
_matrixProp =
|
|
21
|
+
addProperty(std::make_shared<MatrixProp>(JsiPropId::get("matrix")));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
void updateDerivedValue() override {
|
|
25
|
+
if (_transformProp->isSet() || _originProp->isSet() ||
|
|
26
|
+
_matrixProp->isSet()) {
|
|
27
|
+
|
|
28
|
+
auto matrix =
|
|
29
|
+
_matrixProp->isSet() ? _matrixProp->getDerivedValue() : nullptr;
|
|
30
|
+
auto origin =
|
|
31
|
+
_originProp->isSet() ? _originProp->getDerivedValue() : nullptr;
|
|
32
|
+
auto transform =
|
|
33
|
+
_transformProp->isSet() ? _transformProp->getDerivedValue() : nullptr;
|
|
34
|
+
|
|
35
|
+
auto lm = SkMatrix();
|
|
36
|
+
if (matrix) {
|
|
37
|
+
if (origin) {
|
|
38
|
+
lm.preTranslate(origin->x(), origin->y());
|
|
39
|
+
lm.preConcat(*matrix);
|
|
40
|
+
lm.preTranslate(-origin->x(), -origin->y());
|
|
41
|
+
} else {
|
|
42
|
+
lm.setIdentity();
|
|
43
|
+
lm.preConcat(*matrix);
|
|
44
|
+
}
|
|
45
|
+
} else if (transform) {
|
|
46
|
+
lm.setIdentity();
|
|
47
|
+
if (origin) {
|
|
48
|
+
lm.preTranslate(origin->x(), origin->y());
|
|
49
|
+
}
|
|
50
|
+
lm.preConcat(*transform);
|
|
51
|
+
if (origin) {
|
|
52
|
+
lm.preTranslate(-origin->x(), -origin->y());
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
setDerivedValue(std::move(lm));
|
|
56
|
+
|
|
57
|
+
} else {
|
|
58
|
+
setDerivedValue(nullptr);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
private:
|
|
63
|
+
TransformProp *_transformProp;
|
|
64
|
+
PointProp *_originProp;
|
|
65
|
+
MatrixProp *_matrixProp;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
} // namespace RNSkia
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "DerivedNodeProp.h"
|
|
4
|
+
#include "JsiSkRuntimeEffect.h"
|
|
5
|
+
|
|
6
|
+
#include <memory>
|
|
7
|
+
#include <string>
|
|
8
|
+
#include <vector>
|
|
9
|
+
|
|
10
|
+
#pragma clang diagnostic push
|
|
11
|
+
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
12
|
+
|
|
13
|
+
#include <SkRuntimeEffect.h>
|
|
14
|
+
|
|
15
|
+
#pragma clang diagnostic pop
|
|
16
|
+
|
|
17
|
+
namespace RNSkia {
|
|
18
|
+
|
|
19
|
+
class UniformsProp : public DerivedSkProp<SkData> {
|
|
20
|
+
public:
|
|
21
|
+
UniformsProp(PropId name, NodeProp *sourceProp) : DerivedSkProp<SkData>() {
|
|
22
|
+
_uniformsProp = addProperty(std::make_shared<NodeProp>(name));
|
|
23
|
+
_sourceProp = sourceProp;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
void updateDerivedValue() override {
|
|
27
|
+
if (!_uniformsProp->isSet()) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Get the effect
|
|
32
|
+
auto source = _sourceProp->value().getAs<JsiSkRuntimeEffect>()->getObject();
|
|
33
|
+
|
|
34
|
+
// Flatten uniforms from property
|
|
35
|
+
auto uniformValues = flattenUniforms(source.get(), _uniformsProp->value());
|
|
36
|
+
|
|
37
|
+
// Cast uniforms according to the declaration in the shader
|
|
38
|
+
auto uniformsData = castUniforms(source.get(), uniformValues);
|
|
39
|
+
|
|
40
|
+
// Save derived value
|
|
41
|
+
setDerivedValue(uniformsData);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
private:
|
|
45
|
+
sk_sp<SkData> castUniforms(SkRuntimeEffect *source,
|
|
46
|
+
const std::vector<SkScalar> &values) {
|
|
47
|
+
// Create memory for uniforms
|
|
48
|
+
auto uniformsData = SkData::MakeUninitialized(source->uniformSize());
|
|
49
|
+
|
|
50
|
+
// Loop through all uniforms in the effect and load data from the flattened
|
|
51
|
+
// array of values
|
|
52
|
+
const auto &u = source->uniforms();
|
|
53
|
+
for (std::size_t i = 0; i < u.size(); i++) {
|
|
54
|
+
auto it = source->uniforms().begin() + i;
|
|
55
|
+
RuntimeEffectUniform reu = JsiSkRuntimeEffect::fromUniform(*it);
|
|
56
|
+
for (std::size_t j = 0; j < reu.columns * reu.rows; ++j) {
|
|
57
|
+
const std::size_t offset = reu.slot + j;
|
|
58
|
+
float fValue = values.at(offset);
|
|
59
|
+
int iValue = static_cast<int>(fValue);
|
|
60
|
+
auto value = reu.isInteger ? iValue : fValue;
|
|
61
|
+
memcpy(SkTAddOffset<void>(uniformsData->writable_data(),
|
|
62
|
+
offset * sizeof(value)),
|
|
63
|
+
&value, sizeof(value));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return uniformsData;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
std::vector<SkScalar> flattenUniforms(SkRuntimeEffect *source,
|
|
71
|
+
const JsiValue &propObject) {
|
|
72
|
+
auto uniformsCount = source->uniforms().size();
|
|
73
|
+
std::vector<SkScalar> uniformValues;
|
|
74
|
+
|
|
75
|
+
for (size_t i = 0; i < uniformsCount; ++i) {
|
|
76
|
+
auto it = source->uniforms().begin() + i;
|
|
77
|
+
auto name = JsiPropId::get(std::string(it->name));
|
|
78
|
+
|
|
79
|
+
if (!propObject.hasValue(name)) {
|
|
80
|
+
throw std::runtime_error("The runtime effect has the uniform value \"" +
|
|
81
|
+
std::string(name) +
|
|
82
|
+
"\" declared, but it is missing from the "
|
|
83
|
+
"uniforms property of the Runtime effect.");
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
auto value = propObject.getValue(name);
|
|
87
|
+
|
|
88
|
+
// A uniform value can be a single number, a vector or an array of numbers
|
|
89
|
+
// Or an array of the above
|
|
90
|
+
if (value.getType() == PropType::Number) {
|
|
91
|
+
// Set numeric uniform
|
|
92
|
+
uniformValues.push_back(value.getAsNumber());
|
|
93
|
+
} else if (value.getType() == PropType::Array) {
|
|
94
|
+
// Array
|
|
95
|
+
auto arrayValue = value.getAsArray();
|
|
96
|
+
for (size_t n = 0; n < arrayValue.size(); ++n) {
|
|
97
|
+
auto a = arrayValue[n];
|
|
98
|
+
if (a.getType() == PropType::Number) {
|
|
99
|
+
uniformValues.push_back(a.getAsNumber());
|
|
100
|
+
} else {
|
|
101
|
+
for (size_t j = 0; j < a.getAsArray().size(); ++j) {
|
|
102
|
+
uniformValues.push_back(a.getAsArray()[j].getAsNumber());
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
} else if (value.getType() == PropType::HostObject ||
|
|
107
|
+
value.getType() == PropType::Object) {
|
|
108
|
+
// Vector (JsiSkPoint / JsiSkRect)
|
|
109
|
+
auto pointValue = PointProp::processValue(value);
|
|
110
|
+
uniformValues.push_back(pointValue.x());
|
|
111
|
+
uniformValues.push_back(pointValue.y());
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return uniformValues;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
NodeProp *_uniformsProp;
|
|
118
|
+
NodeProp *_sourceProp;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
class SimpleUniformsProp : public BaseDerivedProp {
|
|
122
|
+
public:
|
|
123
|
+
SimpleUniformsProp(PropId name, NodeProp *sourceProp) : BaseDerivedProp() {
|
|
124
|
+
_uniformsProp = addProperty(std::make_shared<NodeProp>(name));
|
|
125
|
+
_sourceProp = sourceProp;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
void processUniforms(SkRuntimeShaderBuilder &rtb) {
|
|
129
|
+
if (!_uniformsProp->isSet()) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
auto propObject = _uniformsProp->value();
|
|
134
|
+
auto source = _sourceProp->value().getAs<JsiSkRuntimeEffect>()->getObject();
|
|
135
|
+
|
|
136
|
+
auto uniformsCount = source->uniforms().size();
|
|
137
|
+
|
|
138
|
+
for (size_t i = 0; i < uniformsCount; ++i) {
|
|
139
|
+
auto it = source->uniforms().begin() + i;
|
|
140
|
+
auto name = JsiPropId::get(std::string(it->name));
|
|
141
|
+
|
|
142
|
+
if (!propObject.hasValue(name)) {
|
|
143
|
+
throw std::runtime_error("The runtime effect has the uniform value \"" +
|
|
144
|
+
std::string(name) +
|
|
145
|
+
"\" declared, but it is missing from the "
|
|
146
|
+
"uniforms property of the Runtime effect.");
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
auto value = propObject.getValue(name);
|
|
150
|
+
|
|
151
|
+
// A uniform value can be a single number, a vector or an array of numbers
|
|
152
|
+
// Or an array of the above
|
|
153
|
+
if (value.getType() == PropType::Number) {
|
|
154
|
+
// Set numeric uniform
|
|
155
|
+
rtb.uniform(name) = value.getAsNumber();
|
|
156
|
+
} else if (value.getType() == PropType::Array) {
|
|
157
|
+
// Array
|
|
158
|
+
auto arrayValue = value.getAsArray();
|
|
159
|
+
std::vector<SkScalar> set;
|
|
160
|
+
for (size_t n = 0; n < arrayValue.size(); ++n) {
|
|
161
|
+
auto a = arrayValue[n];
|
|
162
|
+
if (a.getType() == PropType::Number) {
|
|
163
|
+
set.push_back(a.getAsNumber());
|
|
164
|
+
} else {
|
|
165
|
+
for (size_t j = 0; j < a.getAsArray().size(); ++j) {
|
|
166
|
+
set.push_back(a.getAsArray()[j].getAsNumber());
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
rtb.uniform(name).set(set.data(), static_cast<int>(set.size()));
|
|
171
|
+
|
|
172
|
+
} else if (value.getType() == PropType::HostObject ||
|
|
173
|
+
value.getType() == PropType::Object) {
|
|
174
|
+
// Vector (JsiSkPoint / JsiSkRect)
|
|
175
|
+
auto pointValue = PointProp::processValue(value);
|
|
176
|
+
std::vector<SkScalar> set = {pointValue.x(), pointValue.y()};
|
|
177
|
+
|
|
178
|
+
rtb.uniform(name).set(set.data(), static_cast<int>(set.size()));
|
|
179
|
+
} else {
|
|
180
|
+
throw std::runtime_error("Unexpected type for uniform prop \"" +
|
|
181
|
+
std::string(name) + "\". Got " +
|
|
182
|
+
value.getTypeAsString(value.getType()));
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
void updateDerivedValue() override {}
|
|
188
|
+
|
|
189
|
+
private:
|
|
190
|
+
NodeProp *_uniformsProp;
|
|
191
|
+
NodeProp *_sourceProp;
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
} // namespace RNSkia
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "DerivedNodeProp.h"
|
|
4
|
+
|
|
5
|
+
#include <memory>
|
|
6
|
+
#include <string>
|
|
7
|
+
|
|
8
|
+
#pragma clang diagnostic push
|
|
9
|
+
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
10
|
+
|
|
11
|
+
#include <SkVertices.h>
|
|
12
|
+
|
|
13
|
+
#pragma clang diagnostic pop
|
|
14
|
+
|
|
15
|
+
namespace RNSkia {
|
|
16
|
+
|
|
17
|
+
class VertexModeProp : public DerivedProp<SkVertices::VertexMode> {
|
|
18
|
+
public:
|
|
19
|
+
explicit VertexModeProp(PropId name) : DerivedProp<SkVertices::VertexMode>() {
|
|
20
|
+
_vertexModeProp = addProperty(std::make_shared<NodeProp>(name));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
void updateDerivedValue() override {
|
|
24
|
+
if (_vertexModeProp->isSet() && (_vertexModeProp->isChanged())) {
|
|
25
|
+
auto vertexModeValue = _vertexModeProp->value().getAsString();
|
|
26
|
+
setDerivedValue(getVertexModeFromStringValue(vertexModeValue));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
private:
|
|
31
|
+
SkVertices::VertexMode
|
|
32
|
+
getVertexModeFromStringValue(const std::string &value) {
|
|
33
|
+
if (value == "triangles") {
|
|
34
|
+
return SkVertices::VertexMode::kTriangles_VertexMode;
|
|
35
|
+
} else if (value == "triangleStrip") {
|
|
36
|
+
return SkVertices::VertexMode::kTriangleStrip_VertexMode;
|
|
37
|
+
} else if (value == "triangleFan") {
|
|
38
|
+
return SkVertices::VertexMode::kTriangleFan_VertexMode;
|
|
39
|
+
}
|
|
40
|
+
throw std::runtime_error("Property value \"" + value +
|
|
41
|
+
"\" is not a legal blend mode.");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
NodeProp *_vertexModeProp;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
} // namespace RNSkia
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "DerivedNodeProp.h"
|
|
4
|
+
|
|
5
|
+
#include "ColorProp.h"
|
|
6
|
+
#include "NumbersProp.h"
|
|
7
|
+
#include "PointsProp.h"
|
|
8
|
+
#include "VertexModeProp.h"
|
|
9
|
+
|
|
10
|
+
#include <memory>
|
|
11
|
+
#include <vector>
|
|
12
|
+
|
|
13
|
+
#pragma clang diagnostic push
|
|
14
|
+
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
15
|
+
|
|
16
|
+
#include <SkVertices.h>
|
|
17
|
+
|
|
18
|
+
#pragma clang diagnostic pop
|
|
19
|
+
|
|
20
|
+
namespace RNSkia {
|
|
21
|
+
|
|
22
|
+
class VerticesProps : public DerivedSkProp<SkVertices> {
|
|
23
|
+
public:
|
|
24
|
+
VerticesProps() : DerivedSkProp<SkVertices>() {
|
|
25
|
+
_vertexModeProp =
|
|
26
|
+
addProperty(std::make_shared<VertexModeProp>(JsiPropId::get("mode")));
|
|
27
|
+
_colorsProp =
|
|
28
|
+
addProperty(std::make_shared<ColorsProp>(JsiPropId::get("colors")));
|
|
29
|
+
_verticesProp =
|
|
30
|
+
addProperty(std::make_shared<PointsProp>(JsiPropId::get("vertices")));
|
|
31
|
+
_texturesProp =
|
|
32
|
+
addProperty(std::make_shared<PointsProp>(JsiPropId::get("textures")));
|
|
33
|
+
_indicesProp =
|
|
34
|
+
addProperty(std::make_shared<Numbers16Prop>(JsiPropId::get("indices")));
|
|
35
|
+
|
|
36
|
+
_vertexModeProp->require();
|
|
37
|
+
_verticesProp->require();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
bool hasColors() { return _colorsProp->isSet(); }
|
|
41
|
+
|
|
42
|
+
void updateDerivedValue() override {
|
|
43
|
+
SkVertices::VertexMode *vertextMode =
|
|
44
|
+
_vertexModeProp->getDerivedValue().get();
|
|
45
|
+
std::vector<SkColor> *colors = _colorsProp->getDerivedValue().get();
|
|
46
|
+
auto vertices = _verticesProp->getDerivedValue();
|
|
47
|
+
auto textures = _texturesProp->getDerivedValue();
|
|
48
|
+
auto indices = _indicesProp->getDerivedValue();
|
|
49
|
+
|
|
50
|
+
setDerivedValue(SkVertices::MakeCopy(
|
|
51
|
+
*vertextMode, static_cast<int>(vertices->size()),
|
|
52
|
+
_verticesProp->isSet() ? vertices->data() : nullptr,
|
|
53
|
+
_texturesProp->isSet() ? textures->data() : nullptr,
|
|
54
|
+
_colorsProp->isSet() ? colors->data() : nullptr,
|
|
55
|
+
_indicesProp->isSet() ? static_cast<int>(indices->size()) : 0,
|
|
56
|
+
_indicesProp->isSet() ? indices->data() : nullptr));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
private:
|
|
60
|
+
VertexModeProp *_vertexModeProp;
|
|
61
|
+
ColorsProp *_colorsProp;
|
|
62
|
+
PointsProp *_verticesProp;
|
|
63
|
+
PointsProp *_texturesProp;
|
|
64
|
+
Numbers16Prop *_indicesProp;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
} // namespace RNSkia
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
#include <jsi/jsi.h>
|
|
12
12
|
|
|
13
|
-
#include <JsiSimpleValueWrapper.h>
|
|
14
13
|
#include <JsiSkHostObjects.h>
|
|
14
|
+
#include <JsiValueWrapper.h>
|
|
15
15
|
#include <RNSkPlatformContext.h>
|
|
16
16
|
|
|
17
17
|
namespace RNSkia {
|
|
@@ -29,7 +29,7 @@ public:
|
|
|
29
29
|
explicit RNSkReadonlyValue(
|
|
30
30
|
std::shared_ptr<RNSkPlatformContext> platformContext)
|
|
31
31
|
: JsiSkHostObject(platformContext),
|
|
32
|
-
_valueHolder(std::
|
|
32
|
+
_valueHolder(std::make_shared<RNJsi::JsiValueWrapper>(
|
|
33
33
|
*platformContext->getJsRuntime())) {}
|
|
34
34
|
|
|
35
35
|
virtual ~RNSkReadonlyValue() { invalidate(); }
|
|
@@ -108,8 +108,8 @@ public:
|
|
|
108
108
|
*/
|
|
109
109
|
virtual void update(jsi::Runtime &runtime, const jsi::Value &value) {
|
|
110
110
|
auto equal = _valueHolder->equals(runtime, value);
|
|
111
|
-
_valueHolder->setCurrent(runtime, value);
|
|
112
111
|
if (!equal) {
|
|
112
|
+
_valueHolder->setCurrent(runtime, value);
|
|
113
113
|
notifyListeners(runtime);
|
|
114
114
|
}
|
|
115
115
|
}
|
|
@@ -123,10 +123,19 @@ public:
|
|
|
123
123
|
_listeners.clear();
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
+
/**
|
|
127
|
+
Returns the current value as a jsi::Value
|
|
128
|
+
*/
|
|
126
129
|
jsi::Value getCurrent(jsi::Runtime &runtime) {
|
|
127
130
|
return _valueHolder->getCurrent(runtime);
|
|
128
131
|
}
|
|
129
132
|
|
|
133
|
+
/**
|
|
134
|
+
Returns the underlying current value wrapper. This can be used to query the
|
|
135
|
+
holder for data type and get pointers to elements in the holder.
|
|
136
|
+
*/
|
|
137
|
+
std::shared_ptr<RNJsi::JsiValueWrapper> getCurrent() { return _valueHolder; }
|
|
138
|
+
|
|
130
139
|
protected:
|
|
131
140
|
/**
|
|
132
141
|
Notifies listeners about changes
|
|
@@ -153,7 +162,7 @@ protected:
|
|
|
153
162
|
}
|
|
154
163
|
|
|
155
164
|
private:
|
|
156
|
-
std::
|
|
165
|
+
std::shared_ptr<RNJsi::JsiValueWrapper> _valueHolder;
|
|
157
166
|
|
|
158
167
|
long _listenerId = 0;
|
|
159
168
|
std::unordered_map<long, std::function<void(jsi::Runtime &)>> _listeners;
|
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
#ifndef SkAndroidFrameworkUtils_DEFINED
|
|
9
9
|
#define SkAndroidFrameworkUtils_DEFINED
|
|
10
10
|
|
|
11
|
+
#include "include/core/SkColor.h"
|
|
12
|
+
#include "include/core/SkPoint.h"
|
|
11
13
|
#include "include/core/SkRefCnt.h"
|
|
12
|
-
#include "include/core/
|
|
14
|
+
#include "include/core/SkTileMode.h"
|
|
13
15
|
|
|
14
16
|
#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
|
|
15
17
|
|
|
@@ -17,6 +19,7 @@ class SkCanvas;
|
|
|
17
19
|
struct SkIRect;
|
|
18
20
|
struct SkRect;
|
|
19
21
|
class SkSurface;
|
|
22
|
+
class SkShader;
|
|
20
23
|
|
|
21
24
|
/**
|
|
22
25
|
* SkAndroidFrameworkUtils expose private APIs used only by Android framework.
|
|
@@ -54,6 +57,37 @@ public:
|
|
|
54
57
|
* @return SkCanvas that was found in the innermost SkPaintFilterCanvas.
|
|
55
58
|
*/
|
|
56
59
|
static SkCanvas* getBaseWrappedCanvas(SkCanvas* canvas);
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Skia will change the order in which local matrices concatenate. In order to not break Android
|
|
63
|
+
* apps targeting older API levels we offer this function to use the legacy concatenation order.
|
|
64
|
+
*/
|
|
65
|
+
static void UseLegacyLocalMatrixConcatenation();
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* If the shader represents a linear gradient ShaderAsALinearGradient
|
|
69
|
+
* returns true and if info is not null, ShaderAsALinearGradient populates
|
|
70
|
+
* info with the parameters for the gradient. fColorCount is both an input
|
|
71
|
+
* and output parameter. On input, it indicates how many entries in
|
|
72
|
+
* fColors and fColorOffsets can be used, if they are not nullptr. After
|
|
73
|
+
* asAGradient has run, fColorCount indicates how many color-offset pairs
|
|
74
|
+
* there are in the gradient. fColorOffsets specifies where on the range of
|
|
75
|
+
* 0 to 1 to transition to the given color. fPoints represent the endpoints
|
|
76
|
+
* of the gradient.
|
|
77
|
+
*/
|
|
78
|
+
struct LinearGradientInfo {
|
|
79
|
+
int fColorCount = 0; //!< In-out parameter, specifies passed size
|
|
80
|
+
// of fColors/fColorOffsets on input, and
|
|
81
|
+
// actual number of colors/offsets on
|
|
82
|
+
// output.
|
|
83
|
+
SkColor* fColors = nullptr; //!< The colors in the gradient.
|
|
84
|
+
SkScalar* fColorOffsets = nullptr; //!< The unit offset for color transitions.
|
|
85
|
+
SkPoint fPoints[2]; //!< Type specific, see above.
|
|
86
|
+
SkTileMode fTileMode;
|
|
87
|
+
uint32_t fGradientFlags = 0; //!< see SkGradientShader::Flags
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
static bool ShaderAsALinearGradient(SkShader* shader, LinearGradientInfo*);
|
|
57
91
|
};
|
|
58
92
|
|
|
59
93
|
#endif // SK_BUILD_FOR_ANDROID_ANDROID
|
|
@@ -9,9 +9,25 @@
|
|
|
9
9
|
#define SkAndroidCodec_DEFINED
|
|
10
10
|
|
|
11
11
|
#include "include/codec/SkCodec.h"
|
|
12
|
+
#include "include/core/SkAlphaType.h"
|
|
13
|
+
#include "include/core/SkColorSpace.h"
|
|
14
|
+
#include "include/core/SkColorType.h"
|
|
12
15
|
#include "include/core/SkEncodedImageFormat.h"
|
|
13
|
-
#include "include/core/
|
|
16
|
+
#include "include/core/SkImageInfo.h"
|
|
17
|
+
#include "include/core/SkRefCnt.h"
|
|
18
|
+
#include "include/core/SkSize.h"
|
|
14
19
|
#include "include/core/SkTypes.h"
|
|
20
|
+
#include "include/private/SkEncodedInfo.h"
|
|
21
|
+
#include "include/private/SkNoncopyable.h"
|
|
22
|
+
#include "modules/skcms/skcms.h"
|
|
23
|
+
|
|
24
|
+
#include <cstddef>
|
|
25
|
+
#include <memory>
|
|
26
|
+
|
|
27
|
+
class SkData;
|
|
28
|
+
class SkPngChunkReader;
|
|
29
|
+
class SkStream;
|
|
30
|
+
struct SkIRect;
|
|
15
31
|
|
|
16
32
|
/**
|
|
17
33
|
* Abstract interface defining image codec functionality that is necessary for
|
|
@@ -10,31 +10,34 @@
|
|
|
10
10
|
|
|
11
11
|
#include "include/codec/SkCodecAnimation.h"
|
|
12
12
|
#include "include/codec/SkEncodedOrigin.h"
|
|
13
|
-
#include "include/core/
|
|
13
|
+
#include "include/core/SkAlphaType.h"
|
|
14
14
|
#include "include/core/SkEncodedImageFormat.h"
|
|
15
15
|
#include "include/core/SkImageInfo.h"
|
|
16
16
|
#include "include/core/SkPixmap.h"
|
|
17
|
+
#include "include/core/SkRect.h"
|
|
18
|
+
#include "include/core/SkRefCnt.h"
|
|
17
19
|
#include "include/core/SkSize.h"
|
|
18
|
-
#include "include/core/SkStream.h"
|
|
19
20
|
#include "include/core/SkTypes.h"
|
|
20
21
|
#include "include/core/SkYUVAPixmaps.h"
|
|
21
22
|
#include "include/private/SkEncodedInfo.h"
|
|
22
23
|
#include "include/private/SkNoncopyable.h"
|
|
23
|
-
#include "
|
|
24
|
+
#include "modules/skcms/skcms.h"
|
|
24
25
|
|
|
26
|
+
#include <cstddef>
|
|
27
|
+
#include <memory>
|
|
28
|
+
#include <tuple>
|
|
25
29
|
#include <vector>
|
|
26
30
|
|
|
27
31
|
class SkAndroidCodec;
|
|
28
|
-
class SkColorSpace;
|
|
29
32
|
class SkData;
|
|
30
33
|
class SkFrameHolder;
|
|
31
34
|
class SkImage;
|
|
32
35
|
class SkPngChunkReader;
|
|
33
36
|
class SkSampler;
|
|
37
|
+
class SkStream;
|
|
34
38
|
|
|
35
39
|
namespace DM {
|
|
36
40
|
class CodecSrc;
|
|
37
|
-
class ColorCodecSrc;
|
|
38
41
|
} // namespace DM
|
|
39
42
|
|
|
40
43
|
/**
|
|
@@ -19,6 +19,8 @@ class SkCanvas;
|
|
|
19
19
|
* Annotate the canvas by associating the specified URL with the
|
|
20
20
|
* specified rectangle (in local coordinates, just like drawRect).
|
|
21
21
|
*
|
|
22
|
+
* The URL is expected to be escaped and be valid 7-bit ASCII.
|
|
23
|
+
*
|
|
22
24
|
* If the backend of this canvas does not support annotations, this call is
|
|
23
25
|
* safely ignored.
|
|
24
26
|
*
|