@shopify/react-native-skia 0.1.157 → 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 +31 -30
- 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/JsiSkContourMeasure.h +7 -5
- 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/DrawingNode.js +1 -5
- package/lib/commonjs/dom/nodes/DrawingNode.js.map +1 -1
- 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 +3 -9
- package/lib/commonjs/dom/nodes/RenderNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/Text.js +4 -9
- package/lib/commonjs/dom/nodes/drawings/Text.js.map +1 -1
- package/lib/commonjs/dom/types/Common.js.map +1 -1
- package/lib/commonjs/dom/types/Drawings.js.map +1 -1
- package/lib/commonjs/mock/index.js +0 -1
- package/lib/commonjs/mock/index.js.map +1 -1
- package/lib/commonjs/renderer/Canvas.js +21 -57
- 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/components/Mask.js +1 -3
- package/lib/commonjs/renderer/components/Mask.js.map +1 -1
- package/lib/commonjs/renderer/components/Paint.js +5 -18
- package/lib/commonjs/renderer/components/Paint.js.map +1 -1
- package/lib/commonjs/renderer/useCanvas.js +8 -6
- package/lib/commonjs/renderer/useCanvas.js.map +1 -1
- package/lib/commonjs/skia/core/Picture.js +1 -24
- package/lib/commonjs/skia/core/Picture.js.map +1 -1
- package/lib/commonjs/skia/core/Rect.js +1 -1
- package/lib/commonjs/skia/core/Rect.js.map +1 -1
- package/lib/commonjs/skia/types/ContourMeasure.js.map +1 -1
- package/lib/commonjs/skia/types/Size.js +2 -0
- package/lib/commonjs/skia/types/Size.js.map +1 -0
- package/lib/commonjs/skia/types/index.js +13 -0
- package/lib/commonjs/skia/types/index.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkColor.js +8 -0
- package/lib/commonjs/skia/web/JsiSkColor.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkContourMeasure.js +4 -7
- package/lib/commonjs/skia/web/JsiSkContourMeasure.js.map +1 -1
- package/lib/commonjs/values/web/RNSkReadonlyValue.js +4 -2
- package/lib/commonjs/values/web/RNSkReadonlyValue.js.map +1 -1
- package/lib/commonjs/views/SkiaBaseWebView.js +9 -2
- 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/DrawingNode.js +2 -6
- package/lib/module/dom/nodes/DrawingNode.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 +2 -5
- package/lib/module/dom/nodes/RenderNode.js.map +1 -1
- package/lib/module/dom/nodes/drawings/Text.js +4 -9
- package/lib/module/dom/nodes/drawings/Text.js.map +1 -1
- package/lib/module/dom/types/Common.js.map +1 -1
- package/lib/module/dom/types/Drawings.js.map +1 -1
- package/lib/module/mock/index.js +0 -1
- package/lib/module/mock/index.js.map +1 -1
- package/lib/module/renderer/Canvas.js +22 -58
- 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/components/Mask.js +2 -4
- package/lib/module/renderer/components/Mask.js.map +1 -1
- package/lib/module/renderer/components/Paint.js +3 -14
- package/lib/module/renderer/components/Paint.js.map +1 -1
- package/lib/module/renderer/useCanvas.js +6 -4
- package/lib/module/renderer/useCanvas.js.map +1 -1
- package/lib/module/skia/core/Picture.js +0 -18
- package/lib/module/skia/core/Picture.js.map +1 -1
- package/lib/module/skia/core/Rect.js +1 -1
- package/lib/module/skia/core/Rect.js.map +1 -1
- package/lib/module/skia/types/ContourMeasure.js.map +1 -1
- package/lib/module/skia/types/Size.js +2 -0
- package/lib/module/skia/types/Size.js.map +1 -0
- package/lib/module/skia/types/index.js +1 -0
- package/lib/module/skia/types/index.js.map +1 -1
- package/lib/module/skia/web/JsiSkColor.js +8 -0
- package/lib/module/skia/web/JsiSkColor.js.map +1 -1
- package/lib/module/skia/web/JsiSkContourMeasure.js +3 -7
- package/lib/module/skia/web/JsiSkContourMeasure.js.map +1 -1
- package/lib/module/values/web/RNSkReadonlyValue.js +4 -2
- package/lib/module/values/web/RNSkReadonlyValue.js.map +1 -1
- package/lib/module/views/SkiaBaseWebView.js +9 -2
- 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/dom/nodes/RenderNode.d.ts +1 -3
- package/lib/typescript/src/dom/types/Common.d.ts +2 -3
- package/lib/typescript/src/dom/types/Drawings.d.ts +1 -3
- package/lib/typescript/src/renderer/Canvas.d.ts +5 -5
- package/lib/typescript/src/renderer/DependencyManager.d.ts +0 -2
- package/lib/typescript/src/renderer/HostComponents.d.ts +67 -8
- package/lib/typescript/src/renderer/components/Paint.d.ts +3 -4
- package/lib/typescript/src/renderer/useCanvas.d.ts +1 -6
- package/lib/typescript/src/skia/core/Picture.d.ts +0 -8
- package/lib/typescript/src/skia/types/ContourMeasure.d.ts +3 -2
- package/lib/typescript/src/skia/types/Size.d.ts +4 -0
- package/lib/typescript/src/skia/types/index.d.ts +1 -0
- package/lib/typescript/src/skia/web/JsiSkContourMeasure.d.ts +2 -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 +6 -4
- package/react-native-skia.podspec +3 -1
- package/src/dom/nodes/DrawingNode.ts +2 -4
- package/src/dom/nodes/JsiSkDOM.ts +170 -56
- package/src/dom/nodes/RenderNode.ts +2 -14
- package/src/dom/nodes/drawings/Text.ts +4 -4
- package/src/dom/types/Common.ts +2 -4
- package/src/dom/types/Drawings.ts +1 -4
- package/src/mock/index.ts +0 -1
- package/src/renderer/Canvas.tsx +32 -51
- package/src/renderer/DependencyManager.tsx +0 -5
- package/src/renderer/HostComponents.ts +153 -5
- package/src/renderer/components/Mask.tsx +2 -2
- package/src/renderer/components/Paint.tsx +3 -14
- package/src/renderer/useCanvas.ts +5 -5
- package/src/skia/core/Picture.ts +0 -24
- package/src/skia/core/Rect.ts +1 -1
- package/src/skia/types/ContourMeasure.tsx +3 -2
- package/src/skia/types/Size.ts +4 -0
- package/src/skia/types/index.ts +1 -0
- package/src/skia/web/JsiSkColor.ts +11 -0
- package/src/skia/web/JsiSkContourMeasure.ts +7 -3
- package/src/values/web/RNSkReadonlyValue.ts +4 -2
- package/src/views/SkiaBaseWebView.tsx +6 -2
- 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
package/android/CMakeLists.txt
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
project(RNSkia)
|
|
2
2
|
cmake_minimum_required(VERSION 3.4.1)
|
|
3
3
|
|
|
4
|
-
if(${BUILD_TYPE} STREQUAL "debug")
|
|
5
|
-
set (CMAKE_BUILD_TYPE Debug)
|
|
6
|
-
message("-- Building with Debug Symbols")
|
|
7
|
-
endif()
|
|
8
|
-
|
|
9
4
|
set (CMAKE_VERBOSE_MAKEFILE ON)
|
|
10
5
|
set (CMAKE_CXX_STANDARD 17)
|
|
11
6
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSK_GL -DSK_BUILD_FOR_ANDROID -DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_HAVE_MEMRCHR=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_MOBILE=1 -DON_ANDROID -DONANDROID")
|
|
@@ -14,12 +9,19 @@ set (PACKAGE_NAME "reactskia")
|
|
|
14
9
|
set (SKIA_LIB "skia")
|
|
15
10
|
set (SKIA_SVG_LIB "svg")
|
|
16
11
|
set (SKIA_SKSHAPER_LIB "skshaper")
|
|
12
|
+
set (SKIA_SKPARAGRAPH_LIB "skparagraph")
|
|
13
|
+
set (SKIA_SKUNICODE_LIB "skunicode")
|
|
17
14
|
|
|
18
15
|
set(build_DIR ${CMAKE_SOURCE_DIR}/build)
|
|
19
16
|
file(GLOB LIBRN_DIR "${PREBUILT_DIR}/${ANDROID_ABI}")
|
|
20
17
|
file(GLOB libfbjni_link_DIRS "${build_DIR}/fbjni*.aar/jni/${ANDROID_ABI}")
|
|
21
18
|
file(GLOB libfbjni_include_DIRS "${build_DIR}/fbjni-*-headers.jar/")
|
|
22
19
|
|
|
20
|
+
message("-- ABI : " ${ANDROID_ABI})
|
|
21
|
+
message("-- PREBUILT: " ${PREBUILT_DIR})
|
|
22
|
+
message("-- BUILD : " ${build_DIR})
|
|
23
|
+
message("-- LIBRN : " ${LIBRN_DIR})
|
|
24
|
+
|
|
23
25
|
link_directories(../libs/android/${ANDROID_ABI}/)
|
|
24
26
|
|
|
25
27
|
if(${REACT_NATIVE_VERSION} LESS 66)
|
|
@@ -41,11 +43,15 @@ add_library(
|
|
|
41
43
|
"${PROJECT_SOURCE_DIR}/cpp/rnskia-android/SkiaOpenGLRenderer.cpp"
|
|
42
44
|
|
|
43
45
|
"${PROJECT_SOURCE_DIR}/cpp/jsi/JsiHostObject.cpp"
|
|
46
|
+
"${PROJECT_SOURCE_DIR}/cpp/jsi/JsiValue.cpp"
|
|
44
47
|
|
|
45
48
|
"${PROJECT_SOURCE_DIR}/cpp/rnskia/RNSkManager.cpp"
|
|
46
49
|
"${PROJECT_SOURCE_DIR}/cpp/rnskia/RNSkJsView.cpp"
|
|
50
|
+
"${PROJECT_SOURCE_DIR}/cpp/rnskia/RNSkDomView.cpp"
|
|
47
51
|
"${PROJECT_SOURCE_DIR}/cpp/rnskia/RNSkDispatchQueue.cpp"
|
|
48
52
|
|
|
53
|
+
"${PROJECT_SOURCE_DIR}/cpp/rnskia/dom/base/DrawingContext.cpp"
|
|
54
|
+
|
|
49
55
|
"${PROJECT_SOURCE_DIR}/cpp/api/third_party/CSSColorParser.cpp"
|
|
50
56
|
|
|
51
57
|
)
|
|
@@ -66,6 +72,7 @@ target_include_directories(
|
|
|
66
72
|
cpp/skia/include/utils/
|
|
67
73
|
cpp/skia/include/pathops/
|
|
68
74
|
cpp/skia/modules/
|
|
75
|
+
cpp/skia/modules/skparagraph/include/
|
|
69
76
|
cpp/skia/include/
|
|
70
77
|
cpp/skia
|
|
71
78
|
|
|
@@ -75,6 +82,10 @@ target_include_directories(
|
|
|
75
82
|
cpp/rnskia-android
|
|
76
83
|
cpp/rnskia
|
|
77
84
|
cpp/rnskia/values
|
|
85
|
+
cpp/rnskia/dom
|
|
86
|
+
cpp/rnskia/dom/base
|
|
87
|
+
cpp/rnskia/dom/nodes
|
|
88
|
+
cpp/rnskia/dom/props
|
|
78
89
|
cpp/utils
|
|
79
90
|
|
|
80
91
|
${libfbjni_include_DIRS}
|
|
@@ -82,6 +93,7 @@ target_include_directories(
|
|
|
82
93
|
|
|
83
94
|
# Import prebuilt SKIA libraries
|
|
84
95
|
set (SKIA_LIBS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../libs/android/${ANDROID_ABI}")
|
|
96
|
+
|
|
85
97
|
add_library(skia STATIC IMPORTED)
|
|
86
98
|
set_property(TARGET skia PROPERTY IMPORTED_LOCATION "${SKIA_LIBS_PATH}/libskia.a")
|
|
87
99
|
|
|
@@ -91,18 +103,20 @@ set_property(TARGET svg PROPERTY IMPORTED_LOCATION "${SKIA_LIBS_PATH}/libsvg.a")
|
|
|
91
103
|
add_library(skshaper STATIC IMPORTED)
|
|
92
104
|
set_property(TARGET skshaper PROPERTY IMPORTED_LOCATION "${SKIA_LIBS_PATH}/libskshaper.a")
|
|
93
105
|
|
|
106
|
+
add_library(skparagraph STATIC IMPORTED)
|
|
107
|
+
set_property(TARGET skparagraph PROPERTY IMPORTED_LOCATION "${SKIA_LIBS_PATH}/libskparagraph.a")
|
|
108
|
+
|
|
109
|
+
add_library(skunicode STATIC IMPORTED)
|
|
110
|
+
set_property(TARGET skunicode PROPERTY IMPORTED_LOCATION "${SKIA_LIBS_PATH}/libskunicode.a")
|
|
111
|
+
|
|
94
112
|
|
|
95
113
|
find_library(
|
|
96
114
|
LOG_LIB
|
|
97
115
|
log
|
|
98
116
|
)
|
|
99
117
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
jsi
|
|
103
|
-
PATHS ${LIBRN_DIR}
|
|
104
|
-
NO_CMAKE_FIND_ROOT_PATH
|
|
105
|
-
)
|
|
118
|
+
message("-- LOG : " ${LOG_LIB})
|
|
119
|
+
|
|
106
120
|
if(${REACT_NATIVE_VERSION} LESS 66)
|
|
107
121
|
# JSI lib didn't exist on RN 0.65 and before. Simply omit it.
|
|
108
122
|
set (JSI_LIB "")
|
|
@@ -116,6 +130,8 @@ find_library(
|
|
|
116
130
|
)
|
|
117
131
|
endif()
|
|
118
132
|
|
|
133
|
+
message("-- JSI : " ${JSI_LIB})
|
|
134
|
+
|
|
119
135
|
find_library(
|
|
120
136
|
REACT_LIB
|
|
121
137
|
react_nativemodule_core
|
|
@@ -123,6 +139,8 @@ find_library(
|
|
|
123
139
|
NO_CMAKE_FIND_ROOT_PATH
|
|
124
140
|
)
|
|
125
141
|
|
|
142
|
+
message("-- REACT : " ${REACT_LIB})
|
|
143
|
+
|
|
126
144
|
find_library(
|
|
127
145
|
FBJNI_LIBRARY
|
|
128
146
|
fbjni
|
|
@@ -130,6 +148,8 @@ find_library(
|
|
|
130
148
|
NO_CMAKE_FIND_ROOT_PATH
|
|
131
149
|
)
|
|
132
150
|
|
|
151
|
+
message("-- FBJNI : " ${FBJNI_LIBRARY})
|
|
152
|
+
|
|
133
153
|
find_library(
|
|
134
154
|
TURBOMODULES_LIB
|
|
135
155
|
turbomodulejsijni
|
|
@@ -137,6 +157,8 @@ find_library(
|
|
|
137
157
|
NO_CMAKE_FIND_ROOT_PATH
|
|
138
158
|
)
|
|
139
159
|
|
|
160
|
+
message("-- TURBO : " ${TURBOMODULES_LIB})
|
|
161
|
+
|
|
140
162
|
# Link
|
|
141
163
|
target_link_libraries(
|
|
142
164
|
${PACKAGE_NAME}
|
|
@@ -147,6 +169,8 @@ target_link_libraries(
|
|
|
147
169
|
${TURBOMODULES_LIB}
|
|
148
170
|
${SKIA_SVG_LIB}
|
|
149
171
|
${SKIA_SKSHAPER_LIB}
|
|
172
|
+
${SKIA_SKPARAGRAPH_LIB}
|
|
173
|
+
${SKIA_SKUNICODE_LIB}
|
|
150
174
|
${SKIA_LIB}
|
|
151
175
|
-ljnigraphics
|
|
152
176
|
-lGLESv2
|
package/android/build.gradle
CHANGED
|
@@ -48,26 +48,14 @@ logger.warn("react-native-skia: node_modules/ found at: ${nodeModules}")
|
|
|
48
48
|
|
|
49
49
|
def sourceBuild = false
|
|
50
50
|
def defaultDir = null
|
|
51
|
-
def androidSourcesDir = null
|
|
52
|
-
def androidSourcesName = 'React Native sources'
|
|
53
|
-
|
|
54
|
-
def buildType = "debug"
|
|
55
|
-
tasks.all({ task ->
|
|
56
|
-
if (task.name == "buildCMakeRelease") {
|
|
57
|
-
buildType = "release"
|
|
58
|
-
}
|
|
59
|
-
})
|
|
60
51
|
|
|
61
52
|
if (rootProject.ext.has('reactNativeAndroidRoot')) {
|
|
62
53
|
defaultDir = rootProject.ext.get('reactNativeAndroidRoot')
|
|
63
|
-
androidSourcesDir = defaultDir.parentFile.toString()
|
|
64
54
|
} else if (findProject(':ReactAndroid') != null) {
|
|
65
55
|
sourceBuild = true
|
|
66
56
|
defaultDir = project(':ReactAndroid').projectDir
|
|
67
|
-
androidSourcesDir = defaultDir.parentFile.toString()
|
|
68
57
|
} else {
|
|
69
58
|
defaultDir = file("$nodeModules/react-native/android")
|
|
70
|
-
androidSourcesDir = defaultDir.parentFile.toString()
|
|
71
59
|
}
|
|
72
60
|
|
|
73
61
|
if (!defaultDir.exists()) {
|
|
@@ -81,14 +69,24 @@ def prebuiltDir = sourceBuild
|
|
|
81
69
|
: "$buildDir/react-native-0*/jni"
|
|
82
70
|
|
|
83
71
|
|
|
72
|
+
def buildType = "debug"
|
|
73
|
+
if (gradle.startParameter.taskRequests.args[0].toString().contains("Release")) {
|
|
74
|
+
buildType = "release"
|
|
75
|
+
} else if (gradle.startParameter.taskRequests.args[0].toString().contains("Debug")) {
|
|
76
|
+
buildType = "debug"
|
|
77
|
+
}
|
|
78
|
+
|
|
84
79
|
def reactProperties = new Properties()
|
|
85
80
|
file("$nodeModules/react-native/ReactAndroid/gradle.properties").withInputStream { reactProperties.load(it) }
|
|
86
|
-
def
|
|
81
|
+
def FULL_RN_VERSION = reactProperties.getProperty("VERSION_NAME")
|
|
82
|
+
def REACT_NATIVE_VERSION = FULL_RN_VERSION.split("\\.")[1].toInteger()
|
|
87
83
|
|
|
88
|
-
logger.warn("react-native-skia:
|
|
89
|
-
logger.warn("react-native-skia:
|
|
90
|
-
logger.warn("react-native-skia:
|
|
91
|
-
logger.warn("react-native-skia:
|
|
84
|
+
logger.warn("react-native-skia: RN Version: ${REACT_NATIVE_VERSION} / ${FULL_RN_VERSION}")
|
|
85
|
+
logger.warn("react-native-skia: isSourceBuild: ${sourceBuild}")
|
|
86
|
+
logger.warn("react-native-skia: PrebuiltDir: ${prebuiltDir}")
|
|
87
|
+
logger.warn("react-native-skia: buildType: ${buildType}")
|
|
88
|
+
logger.warn("react-native-skia: buildDir: ${buildDir}")
|
|
89
|
+
logger.warn("react-native-skia: node_modules: ${nodeModules}")
|
|
92
90
|
|
|
93
91
|
buildscript {
|
|
94
92
|
// The Android Gradle plugin is only required when opening the android folder stand-alone.
|
|
@@ -123,8 +121,7 @@ android {
|
|
|
123
121
|
arguments '-DANDROID_STL=c++_shared',
|
|
124
122
|
"-DREACT_NATIVE_VERSION=${REACT_NATIVE_VERSION}",
|
|
125
123
|
"-DNODE_MODULES_DIR=${nodeModules}",
|
|
126
|
-
"-DPREBUILT_DIR=${prebuiltDir}"
|
|
127
|
-
"-DBUILD_TYPE=${buildType}"
|
|
124
|
+
"-DPREBUILT_DIR=${prebuiltDir}"
|
|
128
125
|
|
|
129
126
|
}
|
|
130
127
|
}
|
|
@@ -161,18 +158,23 @@ android {
|
|
|
161
158
|
}
|
|
162
159
|
|
|
163
160
|
repositories {
|
|
164
|
-
// ref: https://www.baeldung.com/maven-local-repository
|
|
165
|
-
jcenter()
|
|
166
|
-
mavenLocal()
|
|
167
161
|
maven {
|
|
168
162
|
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
|
169
|
-
url
|
|
163
|
+
url("$rootDir/../node_modules/react-native/android")
|
|
170
164
|
}
|
|
171
165
|
maven {
|
|
172
166
|
// Android JSC is installed from npm
|
|
173
|
-
url
|
|
167
|
+
url("$rootDir/../node_modules/jsc-android/dist")
|
|
168
|
+
}
|
|
169
|
+
mavenCentral {
|
|
170
|
+
// We don't want to fetch react-native from Maven Central as there are
|
|
171
|
+
// older versions over there.
|
|
172
|
+
content {
|
|
173
|
+
excludeGroup "com.facebook.react"
|
|
174
|
+
}
|
|
174
175
|
}
|
|
175
176
|
google()
|
|
177
|
+
maven { url 'https://www.jitpack.io' }
|
|
176
178
|
}
|
|
177
179
|
|
|
178
180
|
dependencies {
|
|
@@ -184,13 +186,12 @@ dependencies {
|
|
|
184
186
|
//noinspection GradleDynamicVersion
|
|
185
187
|
extractJNI("com.facebook.fbjni:fbjni:0.2.2")
|
|
186
188
|
|
|
187
|
-
if(
|
|
188
|
-
def rnAAR = fileTree("${nodeModules}/react-native/android").matching({ it.include "**/**/*.aar" }).singleFile
|
|
189
|
-
extractJNI(files(rnAAR))
|
|
190
|
-
} else {
|
|
191
|
-
// React Native >= 0.69
|
|
189
|
+
if (!sourceBuild) {
|
|
192
190
|
def rnAarMatcher = "**/react-native/**/*${buildType}.aar"
|
|
193
|
-
|
|
191
|
+
if (REACT_NATIVE_VERSION < 69) {
|
|
192
|
+
rnAarMatcher = "**/**/*.aar"
|
|
193
|
+
}
|
|
194
|
+
def rnAAR = fileTree("${nodeModules}/react-native/android").matching({ it.include rnAarMatcher }).singleFile
|
|
194
195
|
extractJNI(files(rnAAR))
|
|
195
196
|
}
|
|
196
197
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#include "JniPlatformContext.h"
|
|
2
|
+
#include "JniSkiaDomView.h"
|
|
2
3
|
#include "JniSkiaDrawView.h"
|
|
3
4
|
#include "JniSkiaManager.h"
|
|
4
5
|
#include "JniSkiaPictureView.h"
|
|
@@ -10,6 +11,7 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
|
|
|
10
11
|
RNSkia::JniSkiaManager::registerNatives();
|
|
11
12
|
RNSkia::JniSkiaDrawView::registerNatives();
|
|
12
13
|
RNSkia::JniSkiaPictureView::registerNatives();
|
|
14
|
+
RNSkia::JniSkiaDomView::registerNatives();
|
|
13
15
|
RNSkia::JniPlatformContext::registerNatives();
|
|
14
16
|
});
|
|
15
17
|
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <memory>
|
|
4
|
+
#include <string>
|
|
5
|
+
|
|
6
|
+
#include <fbjni/fbjni.h>
|
|
7
|
+
#include <jni.h>
|
|
8
|
+
#include <jsi/jsi.h>
|
|
9
|
+
|
|
10
|
+
#include <JniSkiaBaseView.h>
|
|
11
|
+
#include <JniSkiaManager.h>
|
|
12
|
+
#include <RNSkAndroidView.h>
|
|
13
|
+
#include <RNSkDomView.h>
|
|
14
|
+
|
|
15
|
+
#include <android/native_window.h>
|
|
16
|
+
#include <android/native_window_jni.h>
|
|
17
|
+
#include <fbjni/detail/Hybrid.h>
|
|
18
|
+
|
|
19
|
+
namespace RNSkia {
|
|
20
|
+
|
|
21
|
+
namespace jsi = facebook::jsi;
|
|
22
|
+
namespace jni = facebook::jni;
|
|
23
|
+
|
|
24
|
+
class JniSkiaDomView : public jni::HybridClass<JniSkiaDomView>,
|
|
25
|
+
public JniSkiaBaseView {
|
|
26
|
+
public:
|
|
27
|
+
static auto constexpr kJavaDescriptor =
|
|
28
|
+
"Lcom/shopify/reactnative/skia/SkiaDomView;";
|
|
29
|
+
|
|
30
|
+
static jni::local_ref<jhybriddata>
|
|
31
|
+
initHybrid(jni::alias_ref<jhybridobject> jThis,
|
|
32
|
+
jni::alias_ref<JniSkiaManager::javaobject> skiaManager) {
|
|
33
|
+
return makeCxxInstance(jThis, skiaManager);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static void registerNatives() {
|
|
37
|
+
registerHybrid(
|
|
38
|
+
{makeNativeMethod("initHybrid", JniSkiaDomView::initHybrid),
|
|
39
|
+
makeNativeMethod("surfaceAvailable", JniSkiaDomView::surfaceAvailable),
|
|
40
|
+
makeNativeMethod("surfaceDestroyed", JniSkiaDomView::surfaceDestroyed),
|
|
41
|
+
makeNativeMethod("surfaceSizeChanged",
|
|
42
|
+
JniSkiaDomView::surfaceSizeChanged),
|
|
43
|
+
makeNativeMethod("setMode", JniSkiaDomView::setMode),
|
|
44
|
+
makeNativeMethod("setDebugMode", JniSkiaDomView::setDebugMode),
|
|
45
|
+
makeNativeMethod("updateTouchPoints",
|
|
46
|
+
JniSkiaDomView::updateTouchPoints),
|
|
47
|
+
makeNativeMethod("registerView", JniSkiaDomView::registerView),
|
|
48
|
+
makeNativeMethod("unregisterView", JniSkiaDomView::unregisterView)});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
protected:
|
|
52
|
+
void updateTouchPoints(jni::JArrayDouble touches) override {
|
|
53
|
+
JniSkiaBaseView::updateTouchPoints(touches);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
void surfaceAvailable(jobject surface, int width, int height) override {
|
|
57
|
+
JniSkiaBaseView::surfaceAvailable(surface, width, height);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
void surfaceSizeChanged(int width, int height) override {
|
|
61
|
+
JniSkiaBaseView::surfaceSizeChanged(width, height);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
void surfaceDestroyed() override { JniSkiaBaseView::surfaceDestroyed(); }
|
|
65
|
+
|
|
66
|
+
void setMode(std::string mode) override { JniSkiaBaseView::setMode(mode); }
|
|
67
|
+
|
|
68
|
+
void setDebugMode(bool show) override { JniSkiaBaseView::setDebugMode(show); }
|
|
69
|
+
|
|
70
|
+
void registerView(int nativeId) override {
|
|
71
|
+
JniSkiaBaseView::registerView(nativeId);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
void unregisterView() override { JniSkiaBaseView::unregisterView(); }
|
|
75
|
+
|
|
76
|
+
private:
|
|
77
|
+
friend HybridBase;
|
|
78
|
+
|
|
79
|
+
explicit JniSkiaDomView(
|
|
80
|
+
jni::alias_ref<jhybridobject> jThis,
|
|
81
|
+
jni::alias_ref<JniSkiaManager::javaobject> skiaManager)
|
|
82
|
+
: JniSkiaBaseView(skiaManager,
|
|
83
|
+
std::make_shared<RNSkAndroidView<RNSkia::RNSkDomView>>(
|
|
84
|
+
skiaManager->cthis()->getPlatformContext())) {}
|
|
85
|
+
|
|
86
|
+
jni::global_ref<javaobject> javaPart_;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
} // namespace RNSkia
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
namespace RNSkia {
|
|
8
8
|
/** Static members */
|
|
9
|
-
std::shared_ptr<
|
|
9
|
+
std::shared_ptr<OpenGLDrawingContext>
|
|
10
|
+
SkiaOpenGLRenderer::getThreadDrawingContext() {
|
|
10
11
|
auto threadId = std::this_thread::get_id();
|
|
11
12
|
if (threadContexts.count(threadId) == 0) {
|
|
12
|
-
auto drawingContext = std::make_shared<
|
|
13
|
+
auto drawingContext = std::make_shared<OpenGLDrawingContext>();
|
|
13
14
|
drawingContext->glContext = EGL_NO_CONTEXT;
|
|
14
15
|
drawingContext->glDisplay = EGL_NO_DISPLAY;
|
|
15
16
|
drawingContext->glConfig = 0;
|
|
@@ -64,7 +65,7 @@ void SkiaOpenGLRenderer::run(const std::function<void(SkCanvas *)> &cb,
|
|
|
64
65
|
cb(_skSurface->getCanvas());
|
|
65
66
|
|
|
66
67
|
// Flush
|
|
67
|
-
_skSurface->
|
|
68
|
+
_skSurface->flushAndSubmit();
|
|
68
69
|
|
|
69
70
|
if (!eglSwapBuffers(getThreadDrawingContext()->glDisplay, _glSurface)) {
|
|
70
71
|
RNSkLogger::logToConsole("eglSwapBuffers failed: %d\n", eglGetError());
|
|
@@ -26,14 +26,15 @@
|
|
|
26
26
|
#pragma clang diagnostic pop
|
|
27
27
|
|
|
28
28
|
namespace RNSkia {
|
|
29
|
-
using
|
|
29
|
+
using OpenGLDrawingContext = struct {
|
|
30
30
|
EGLContext glContext;
|
|
31
31
|
EGLDisplay glDisplay;
|
|
32
32
|
EGLConfig glConfig;
|
|
33
33
|
sk_sp<GrDirectContext> skContext;
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
static std::unordered_map<std::thread::id,
|
|
36
|
+
static std::unordered_map<std::thread::id,
|
|
37
|
+
std::shared_ptr<OpenGLDrawingContext>>
|
|
37
38
|
threadContexts;
|
|
38
39
|
|
|
39
40
|
enum RenderState : int {
|
|
@@ -113,7 +114,7 @@ private:
|
|
|
113
114
|
* each new view, we track the OpenGL and Skia drawing context per thread.
|
|
114
115
|
* @return The drawing context for the current thread
|
|
115
116
|
*/
|
|
116
|
-
static std::shared_ptr<
|
|
117
|
+
static std::shared_ptr<OpenGLDrawingContext> getThreadDrawingContext();
|
|
117
118
|
|
|
118
119
|
EGLSurface _glSurface = EGL_NO_SURFACE;
|
|
119
120
|
|
|
@@ -18,6 +18,7 @@ public class RNSkiaPackage implements ReactPackage {
|
|
|
18
18
|
|
|
19
19
|
@Override
|
|
20
20
|
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
|
21
|
-
return Arrays.<ViewManager>asList(new SkiaDrawViewManager(),
|
|
21
|
+
return Arrays.<ViewManager>asList(new SkiaDrawViewManager(),
|
|
22
|
+
new SkiaPictureViewManager(), new SkiaDomViewManager());
|
|
22
23
|
}
|
|
23
24
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
package com.shopify.reactnative.skia;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
|
|
5
|
+
import com.facebook.jni.HybridData;
|
|
6
|
+
import com.facebook.jni.annotations.DoNotStrip;
|
|
7
|
+
import com.facebook.react.bridge.ReactContext;
|
|
8
|
+
|
|
9
|
+
public class SkiaDomView extends SkiaBaseView {
|
|
10
|
+
@DoNotStrip
|
|
11
|
+
private HybridData mHybridData;
|
|
12
|
+
|
|
13
|
+
public SkiaDomView(Context context) {
|
|
14
|
+
super(context);
|
|
15
|
+
RNSkiaModule skiaModule = ((ReactContext) context).getNativeModule(RNSkiaModule.class);
|
|
16
|
+
mHybridData = initHybrid(skiaModule.getSkiaManager());
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@Override
|
|
20
|
+
protected void finalize() throws Throwable {
|
|
21
|
+
super.finalize();
|
|
22
|
+
mHybridData.resetNative();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
private native HybridData initHybrid(SkiaManager skiaManager);
|
|
26
|
+
|
|
27
|
+
protected native void surfaceAvailable(Object surface, int width, int height);
|
|
28
|
+
|
|
29
|
+
protected native void surfaceSizeChanged(int width, int height);
|
|
30
|
+
|
|
31
|
+
protected native void surfaceDestroyed();
|
|
32
|
+
|
|
33
|
+
protected native void setBgColor(int color);
|
|
34
|
+
|
|
35
|
+
protected native void setMode(String mode);
|
|
36
|
+
|
|
37
|
+
protected native void setDebugMode(boolean show);
|
|
38
|
+
|
|
39
|
+
protected native void updateTouchPoints(double[] points);
|
|
40
|
+
|
|
41
|
+
protected native void registerView(int nativeId);
|
|
42
|
+
|
|
43
|
+
protected native void unregisterView();
|
|
44
|
+
|
|
45
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
package com.shopify.reactnative.skia;
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactContext;
|
|
4
|
+
import com.facebook.react.uimanager.BaseViewManager;
|
|
5
|
+
import com.facebook.react.uimanager.LayoutShadowNode;
|
|
6
|
+
import com.facebook.react.uimanager.ThemedReactContext;
|
|
7
|
+
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
8
|
+
|
|
9
|
+
import androidx.annotation.NonNull;
|
|
10
|
+
import androidx.annotation.Nullable;
|
|
11
|
+
|
|
12
|
+
import java.util.HashMap;
|
|
13
|
+
|
|
14
|
+
public class SkiaDomViewManager extends BaseViewManager<SkiaDomView, LayoutShadowNode> {
|
|
15
|
+
|
|
16
|
+
@NonNull
|
|
17
|
+
@Override
|
|
18
|
+
public String getName() {
|
|
19
|
+
return "SkiaDomView";
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@Override
|
|
23
|
+
public LayoutShadowNode createShadowNodeInstance() {
|
|
24
|
+
return new LayoutShadowNode();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@Override
|
|
28
|
+
public Class<? extends LayoutShadowNode> getShadowNodeClass() {
|
|
29
|
+
return LayoutShadowNode.class;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@Override
|
|
33
|
+
public void updateExtraData(SkiaDomView root, Object extraData) {
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@Override
|
|
37
|
+
public void setNativeId(@NonNull SkiaDomView view, @Nullable String nativeId) {
|
|
38
|
+
super.setNativeId(view, nativeId);
|
|
39
|
+
int nativeIdResolved = Integer.parseInt(nativeId);
|
|
40
|
+
view.registerView(nativeIdResolved);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@ReactProp(name = "mode")
|
|
44
|
+
public void setMode(SkiaDomView view, String mode) {
|
|
45
|
+
view.setMode(mode);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@ReactProp(name = "debug")
|
|
49
|
+
public void setDebug(SkiaDomView view, boolean show) {
|
|
50
|
+
view.setDebugMode(show);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@Override
|
|
54
|
+
public void onDropViewInstance(@NonNull SkiaDomView view) {
|
|
55
|
+
super.onDropViewInstance(view);
|
|
56
|
+
view.unregisterView();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@NonNull
|
|
60
|
+
@Override
|
|
61
|
+
protected SkiaDomView createViewInstance(@NonNull ThemedReactContext reactContext) {
|
|
62
|
+
return new SkiaDomView(reactContext);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -40,11 +40,13 @@ public:
|
|
|
40
40
|
if (!result) {
|
|
41
41
|
throw jsi::JSError(runtime, "getSegment() failed");
|
|
42
42
|
}
|
|
43
|
-
auto posTan = jsi::
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
auto posTan = jsi::Array(runtime, 2);
|
|
44
|
+
auto pos = jsi::Object::createFromHostObject(
|
|
45
|
+
runtime, std::make_shared<JsiSkPoint>(getContext(), position));
|
|
46
|
+
auto tan = jsi::Object::createFromHostObject(
|
|
47
|
+
runtime, std::make_shared<JsiSkPoint>(getContext(), tangent));
|
|
48
|
+
posTan.setValueAtIndex(runtime, 0, pos);
|
|
49
|
+
posTan.setValueAtIndex(runtime, 1, tan);
|
|
48
50
|
return posTan;
|
|
49
51
|
}
|
|
50
52
|
|
|
@@ -54,6 +54,12 @@ public:
|
|
|
54
54
|
T &getObject() { return _object; }
|
|
55
55
|
const T &getObject() const { return _object; }
|
|
56
56
|
|
|
57
|
+
/**
|
|
58
|
+
Updates the inner object with a new version of the object.
|
|
59
|
+
*/
|
|
60
|
+
void setObject(T &object) { _object = object; }
|
|
61
|
+
void setObject(const T &object) { _object = object; }
|
|
62
|
+
|
|
57
63
|
private:
|
|
58
64
|
/**
|
|
59
65
|
* Wrapped object
|
|
@@ -204,7 +204,7 @@ public:
|
|
|
204
204
|
JSI_HOST_FUNCTION(MakeRuntimeShader) {
|
|
205
205
|
auto rtb = JsiSkRuntimeShaderBuilder::fromValue(runtime, arguments[0]);
|
|
206
206
|
|
|
207
|
-
const char *childName =
|
|
207
|
+
const char *childName = "";
|
|
208
208
|
if (!arguments[1].isNull() && !arguments[1].isUndefined()) {
|
|
209
209
|
childName = arguments[1].asString(runtime).utf8(runtime).c_str();
|
|
210
210
|
}
|
package/cpp/api/JsiSkPaint.h
CHANGED
|
@@ -184,8 +184,15 @@ public:
|
|
|
184
184
|
std::move(context), std::make_shared<SkPaint>(std::move(paint))) {}
|
|
185
185
|
|
|
186
186
|
/**
|
|
187
|
-
|
|
188
|
-
*/
|
|
187
|
+
Copy from another paint
|
|
188
|
+
*/
|
|
189
|
+
void fromPaint(const SkPaint &paint) {
|
|
190
|
+
setObject(std::make_shared<SkPaint>(std::move(paint)));
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
Returns the underlying object from a host object of this type
|
|
195
|
+
*/
|
|
189
196
|
static std::shared_ptr<SkPaint> fromValue(jsi::Runtime &runtime,
|
|
190
197
|
const jsi::Value &obj) {
|
|
191
198
|
return obj.asObject(runtime).asHostObject<JsiSkPaint>(runtime)->getObject();
|