@shopify/react-native-skia 1.11.0 → 1.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +0 -8
- package/android/cpp/jni/JniLoad.cpp +0 -2
- package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -1
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaPictureViewManagerDelegate.java +4 -2
- package/cpp/api/recorder/Convertor.h +2 -1
- package/cpp/api/recorder/DataTypes.h +70 -72
- package/cpp/api/recorder/Drawings.h +25 -24
- package/cpp/api/recorder/RNRecorder.h +12 -10
- package/cpp/api/recorder/Shaders.h +5 -5
- package/cpp/jsi/ViewProperty.h +5 -16
- package/cpp/rnskia/RNSkManager.cpp +1 -7
- package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +8 -4
- package/lib/commonjs/dom/nodes/index.d.ts +0 -1
- package/lib/commonjs/dom/nodes/index.js +0 -11
- package/lib/commonjs/dom/nodes/index.js.map +1 -1
- package/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -6
- package/lib/commonjs/external/reanimated/renderHelpers.js +0 -73
- package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/commonjs/index.d.ts +0 -1
- package/lib/commonjs/index.js +0 -12
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/renderer/Canvas.d.ts +10 -1
- package/lib/commonjs/renderer/Canvas.js +3 -1
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/sksg/Container.d.ts +2 -0
- package/lib/commonjs/sksg/Container.js +10 -0
- package/lib/commonjs/sksg/Container.js.map +1 -1
- package/lib/commonjs/sksg/Elements.d.ts +65 -0
- package/lib/commonjs/sksg/Elements.js +6 -0
- package/lib/commonjs/sksg/Elements.js.map +1 -0
- package/lib/commonjs/sksg/Reconciler.d.ts +1 -0
- package/lib/commonjs/sksg/Reconciler.js +2 -0
- package/lib/commonjs/sksg/Reconciler.js.map +1 -1
- package/lib/commonjs/views/index.d.ts +0 -1
- package/lib/commonjs/views/index.js +0 -11
- package/lib/commonjs/views/index.js.map +1 -1
- package/lib/module/dom/nodes/index.d.ts +0 -1
- package/lib/module/dom/nodes/index.js +0 -1
- package/lib/module/dom/nodes/index.js.map +1 -1
- package/lib/module/external/reanimated/renderHelpers.d.ts +0 -6
- package/lib/module/external/reanimated/renderHelpers.js +0 -68
- package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/module/index.d.ts +0 -1
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/renderer/Canvas.d.ts +10 -1
- package/lib/module/renderer/Canvas.js +1 -0
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/sksg/Container.d.ts +2 -0
- package/lib/module/sksg/Container.js +10 -0
- package/lib/module/sksg/Container.js.map +1 -1
- package/lib/module/sksg/Elements.d.ts +65 -0
- package/lib/module/sksg/Elements.js +2 -0
- package/lib/module/sksg/Elements.js.map +1 -0
- package/lib/module/sksg/Reconciler.d.ts +1 -0
- package/lib/module/sksg/Reconciler.js +2 -0
- package/lib/module/sksg/Reconciler.js.map +1 -1
- package/lib/module/views/index.d.ts +0 -1
- package/lib/module/views/index.js +0 -1
- package/lib/module/views/index.js.map +1 -1
- package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -3
- package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +1 -0
- package/lib/typescript/lib/commonjs/sksg/Container.d.ts +2 -0
- package/lib/typescript/lib/commonjs/sksg/Elements.d.ts +1 -0
- package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +6 -0
- package/lib/typescript/lib/module/dom/nodes/index.d.ts +0 -1
- package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +0 -3
- package/lib/typescript/lib/module/index.d.ts +0 -1
- package/lib/typescript/lib/module/mock/index.d.ts +0 -1
- package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -0
- package/lib/typescript/lib/module/sksg/Container.d.ts +2 -0
- package/lib/typescript/lib/module/sksg/Elements.d.ts +1 -0
- package/lib/typescript/lib/module/sksg/Reconciler.d.ts +6 -0
- package/lib/typescript/lib/module/views/index.d.ts +0 -1
- package/lib/typescript/src/dom/nodes/index.d.ts +0 -1
- package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +0 -6
- package/lib/typescript/src/index.d.ts +0 -1
- package/lib/typescript/src/renderer/Canvas.d.ts +10 -1
- package/lib/typescript/src/sksg/Container.d.ts +2 -0
- package/lib/typescript/src/sksg/Elements.d.ts +65 -0
- package/lib/typescript/src/sksg/Reconciler.d.ts +1 -0
- package/lib/typescript/src/views/index.d.ts +0 -1
- package/package.json +1 -1
- package/src/dom/nodes/index.ts +0 -1
- package/src/external/reanimated/renderHelpers.ts +1 -78
- package/src/index.ts +0 -1
- package/src/renderer/Canvas.tsx +11 -1
- package/src/sksg/Container.ts +11 -0
- package/src/sksg/Elements.tsx +136 -0
- package/src/sksg/Reconciler.ts +2 -0
- package/src/views/index.ts +0 -1
- package/android/cpp/jni/include/JniSkiaDomView.h +0 -82
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomView.java +0 -41
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +0 -32
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerDelegate.java +0 -34
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerInterface.java +0 -18
- package/cpp/rnskia/RNSkDomView.cpp +0 -121
- package/cpp/rnskia/RNSkDomView.h +0 -97
- package/cpp/rnskia/dom/JsiDomApi.h +0 -165
- package/cpp/rnskia/dom/base/BaseNodeProp.h +0 -72
- package/cpp/rnskia/dom/base/ConcatablePaint.cpp +0 -117
- package/cpp/rnskia/dom/base/ConcatablePaint.h +0 -49
- package/cpp/rnskia/dom/base/Declaration.h +0 -86
- package/cpp/rnskia/dom/base/DeclarationContext.h +0 -79
- package/cpp/rnskia/dom/base/DerivedNodeProp.h +0 -203
- package/cpp/rnskia/dom/base/DrawingContext.cpp +0 -55
- package/cpp/rnskia/dom/base/DrawingContext.h +0 -104
- package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +0 -119
- package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +0 -71
- package/cpp/rnskia/dom/base/JsiDomNode.h +0 -572
- package/cpp/rnskia/dom/base/JsiDomRenderNode.h +0 -262
- package/cpp/rnskia/dom/base/NodeProp.h +0 -139
- package/cpp/rnskia/dom/base/NodePropsContainer.h +0 -158
- package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +0 -64
- package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +0 -49
- package/cpp/rnskia/dom/nodes/JsiBlendNode.h +0 -94
- package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +0 -75
- package/cpp/rnskia/dom/nodes/JsiBoxNode.h +0 -94
- package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +0 -33
- package/cpp/rnskia/dom/nodes/JsiCircleNode.h +0 -35
- package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +0 -164
- package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +0 -37
- package/cpp/rnskia/dom/nodes/JsiFillNode.h +0 -22
- package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +0 -53
- package/cpp/rnskia/dom/nodes/JsiGroupNode.h +0 -25
- package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +0 -361
- package/cpp/rnskia/dom/nodes/JsiImageNode.h +0 -43
- package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +0 -63
- package/cpp/rnskia/dom/nodes/JsiLayerNode.h +0 -74
- package/cpp/rnskia/dom/nodes/JsiLineNode.h +0 -38
- package/cpp/rnskia/dom/nodes/JsiOvalNode.h +0 -32
- package/cpp/rnskia/dom/nodes/JsiPaintNode.h +0 -119
- package/cpp/rnskia/dom/nodes/JsiParagraphNode.h +0 -62
- package/cpp/rnskia/dom/nodes/JsiPatchNode.h +0 -50
- package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +0 -268
- package/cpp/rnskia/dom/nodes/JsiPathNode.h +0 -181
- package/cpp/rnskia/dom/nodes/JsiPictureNode.h +0 -31
- package/cpp/rnskia/dom/nodes/JsiPointsNode.h +0 -48
- package/cpp/rnskia/dom/nodes/JsiRRectNode.h +0 -33
- package/cpp/rnskia/dom/nodes/JsiRectNode.h +0 -33
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +0 -434
- package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +0 -44
- package/cpp/rnskia/dom/nodes/JsiTextNode.h +0 -51
- package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +0 -33
- package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +0 -41
- package/cpp/rnskia/dom/props/BezierProps.h +0 -65
- package/cpp/rnskia/dom/props/BlendModeProp.h +0 -103
- package/cpp/rnskia/dom/props/BoxShadowProps.h +0 -62
- package/cpp/rnskia/dom/props/CircleProp.h +0 -49
- package/cpp/rnskia/dom/props/ClipProp.h +0 -57
- package/cpp/rnskia/dom/props/ColorProp.h +0 -96
- package/cpp/rnskia/dom/props/FontProp.h +0 -42
- package/cpp/rnskia/dom/props/GlyphsProp.h +0 -55
- package/cpp/rnskia/dom/props/LayerProp.h +0 -52
- package/cpp/rnskia/dom/props/MatrixProp.h +0 -54
- package/cpp/rnskia/dom/props/NumbersProp.h +0 -67
- package/cpp/rnskia/dom/props/PaintProps.h +0 -133
- package/cpp/rnskia/dom/props/ParagraphProp.h +0 -45
- package/cpp/rnskia/dom/props/PathProp.h +0 -59
- package/cpp/rnskia/dom/props/PictureProp.h +0 -40
- package/cpp/rnskia/dom/props/PointProp.h +0 -65
- package/cpp/rnskia/dom/props/PointsProp.h +0 -81
- package/cpp/rnskia/dom/props/RRectProp.h +0 -222
- package/cpp/rnskia/dom/props/RSXformProp.h +0 -52
- package/cpp/rnskia/dom/props/RadiusProp.h +0 -43
- package/cpp/rnskia/dom/props/RectProp.h +0 -164
- package/cpp/rnskia/dom/props/SamplingProp.h +0 -54
- package/cpp/rnskia/dom/props/SkImageProps.h +0 -196
- package/cpp/rnskia/dom/props/StrokeProps.h +0 -79
- package/cpp/rnskia/dom/props/SvgProp.h +0 -45
- package/cpp/rnskia/dom/props/TextBlobProp.h +0 -133
- package/cpp/rnskia/dom/props/TileModeProp.h +0 -52
- package/cpp/rnskia/dom/props/TransformProp.h +0 -147
- package/cpp/rnskia/dom/props/TransformsProps.h +0 -66
- package/cpp/rnskia/dom/props/UniformsProp.h +0 -159
- package/cpp/rnskia/dom/props/VertexModeProp.h +0 -49
- package/cpp/rnskia/dom/props/VerticesProps.h +0 -63
- package/ios/RNSkia-iOS/SkiaDomView.h +0 -7
- package/ios/RNSkia-iOS/SkiaDomView.mm +0 -63
- package/ios/RNSkia-iOS/SkiaDomViewManager.h +0 -8
- package/ios/RNSkia-iOS/SkiaDomViewManager.mm +0 -51
- package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -64
- package/lib/commonjs/dom/nodes/JsiSkDOM.js +0 -196
- package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +0 -1
- package/lib/commonjs/renderer/CanvasOld.d.ts +0 -11
- package/lib/commonjs/renderer/CanvasOld.js +0 -96
- package/lib/commonjs/renderer/CanvasOld.js.map +0 -1
- package/lib/commonjs/renderer/Container.d.ts +0 -10
- package/lib/commonjs/renderer/Container.js +0 -26
- package/lib/commonjs/renderer/Container.js.map +0 -1
- package/lib/commonjs/renderer/HostComponents.d.ts +0 -129
- package/lib/commonjs/renderer/HostComponents.js +0 -141
- package/lib/commonjs/renderer/HostComponents.js.map +0 -1
- package/lib/commonjs/renderer/HostConfig.d.ts +0 -18
- package/lib/commonjs/renderer/HostConfig.js +0 -157
- package/lib/commonjs/renderer/HostConfig.js.map +0 -1
- package/lib/commonjs/renderer/Reconciler.d.ts +0 -9
- package/lib/commonjs/renderer/Reconciler.js +0 -44
- package/lib/commonjs/renderer/Reconciler.js.map +0 -1
- package/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -6
- package/lib/commonjs/specs/SkiaDomViewNativeComponent.js +0 -11
- package/lib/commonjs/specs/SkiaDomViewNativeComponent.js.map +0 -1
- package/lib/commonjs/views/SkiaDomView.d.ts +0 -33
- package/lib/commonjs/views/SkiaDomView.js +0 -119
- package/lib/commonjs/views/SkiaDomView.js.map +0 -1
- package/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
- package/lib/commonjs/views/SkiaDomView.web.js +0 -2
- package/lib/commonjs/views/SkiaDomView.web.js.map +0 -1
- package/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -64
- package/lib/module/dom/nodes/JsiSkDOM.js +0 -189
- package/lib/module/dom/nodes/JsiSkDOM.js.map +0 -1
- package/lib/module/renderer/CanvasOld.d.ts +0 -11
- package/lib/module/renderer/CanvasOld.js +0 -87
- package/lib/module/renderer/CanvasOld.js.map +0 -1
- package/lib/module/renderer/Container.d.ts +0 -10
- package/lib/module/renderer/Container.js +0 -19
- package/lib/module/renderer/Container.js.map +0 -1
- package/lib/module/renderer/HostComponents.d.ts +0 -129
- package/lib/module/renderer/HostComponents.js +0 -134
- package/lib/module/renderer/HostComponents.js.map +0 -1
- package/lib/module/renderer/HostConfig.d.ts +0 -18
- package/lib/module/renderer/HostConfig.js +0 -150
- package/lib/module/renderer/HostConfig.js.map +0 -1
- package/lib/module/renderer/Reconciler.d.ts +0 -9
- package/lib/module/renderer/Reconciler.js +0 -36
- package/lib/module/renderer/Reconciler.js.map +0 -1
- package/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -6
- package/lib/module/specs/SkiaDomViewNativeComponent.js +0 -4
- package/lib/module/specs/SkiaDomViewNativeComponent.js.map +0 -1
- package/lib/module/views/SkiaDomView.d.ts +0 -33
- package/lib/module/views/SkiaDomView.js +0 -111
- package/lib/module/views/SkiaDomView.js.map +0 -1
- package/lib/module/views/SkiaDomView.web.d.ts +0 -0
- package/lib/module/views/SkiaDomView.web.js +0 -2
- package/lib/module/views/SkiaDomView.web.js.map +0 -1
- package/lib/typescript/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -60
- package/lib/typescript/lib/commonjs/renderer/CanvasOld.d.ts +0 -3
- package/lib/typescript/lib/commonjs/renderer/Container.d.ts +0 -9
- package/lib/typescript/lib/commonjs/renderer/HostComponents.d.ts +0 -2
- package/lib/typescript/lib/commonjs/renderer/HostConfig.d.ts +0 -40
- package/lib/typescript/lib/commonjs/renderer/Reconciler.d.ts +0 -10
- package/lib/typescript/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -3
- package/lib/typescript/lib/commonjs/views/SkiaDomView.d.ts +0 -30
- package/lib/typescript/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
- package/lib/typescript/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -59
- package/lib/typescript/lib/module/renderer/CanvasOld.d.ts +0 -3
- package/lib/typescript/lib/module/renderer/Container.d.ts +0 -9
- package/lib/typescript/lib/module/renderer/HostComponents.d.ts +0 -1
- package/lib/typescript/lib/module/renderer/HostConfig.d.ts +0 -39
- package/lib/typescript/lib/module/renderer/Reconciler.d.ts +0 -9
- package/lib/typescript/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -2
- package/lib/typescript/lib/module/views/SkiaDomView.d.ts +0 -27
- package/lib/typescript/lib/module/views/SkiaDomView.web.d.ts +0 -0
- package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +0 -64
- package/lib/typescript/src/renderer/CanvasOld.d.ts +0 -11
- package/lib/typescript/src/renderer/Container.d.ts +0 -10
- package/lib/typescript/src/renderer/HostComponents.d.ts +0 -129
- package/lib/typescript/src/renderer/HostConfig.d.ts +0 -18
- package/lib/typescript/src/renderer/Reconciler.d.ts +0 -9
- package/lib/typescript/src/specs/SkiaDomViewNativeComponent.d.ts +0 -6
- package/lib/typescript/src/views/SkiaDomView.d.ts +0 -33
- package/lib/typescript/src/views/SkiaDomView.web.d.ts +0 -0
- package/src/dom/nodes/JsiSkDOM.ts +0 -298
- package/src/renderer/CanvasOld.tsx +0 -126
- package/src/renderer/Container.tsx +0 -19
- package/src/renderer/HostComponents.ts +0 -399
- package/src/renderer/HostConfig.ts +0 -258
- package/src/renderer/Reconciler.tsx +0 -54
- package/src/specs/SkiaDomViewNativeComponent.ts +0 -9
- package/src/views/SkiaDomView.tsx +0 -124
- package/src/views/SkiaDomView.web.tsx +0 -0
- /package/cpp/api/recorder/{Image.h → ImageFit.h} +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { FractalNoiseProps, CircleProps, DrawingNodeProps, ImageProps, PaintProps, PathProps, LineProps, OvalProps, DiffRectProps, PointsProps, RectProps, RoundedRectProps, TextProps, VerticesProps, BlurMaskFilterProps, BlendImageFilterProps, BlurImageFilterProps, DisplacementMapImageFilterProps, DropShadowImageFilterProps, OffsetImageFilterProps, RuntimeShaderImageFilterProps, MatrixColorFilterProps, ShaderProps, ImageShaderProps, LinearGradientProps, GroupProps, PatchProps, BlendColorFilterProps, DashPathEffectProps, DiscretePathEffectProps, CornerPathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps, TextPathProps, TextBlobProps, GlyphsProps, TwoPointConicalGradientProps, TurbulenceProps, SweepGradientProps, RadialGradientProps, ColorProps, PictureProps, ImageSVGProps, LerpColorFilterProps, BoxProps, BoxShadowProps, ParagraphProps, AtlasProps, ChildrenProps, MorphologyImageFilterProps, BlendProps } from "../dom/types";
|
|
2
|
+
import type { SkiaProps } from "../renderer";
|
|
3
|
+
declare global {
|
|
4
|
+
namespace JSX {
|
|
5
|
+
interface IntrinsicElements {
|
|
6
|
+
skGroup: SkiaProps<GroupProps>;
|
|
7
|
+
skLayer: SkiaProps<ChildrenProps>;
|
|
8
|
+
skPaint: SkiaProps<PaintProps>;
|
|
9
|
+
skFill: SkiaProps<DrawingNodeProps>;
|
|
10
|
+
skImage: SkiaProps<ImageProps>;
|
|
11
|
+
skCircle: SkiaProps<CircleProps>;
|
|
12
|
+
skPath: SkiaProps<PathProps>;
|
|
13
|
+
skLine: SkiaProps<LineProps>;
|
|
14
|
+
skOval: SkiaProps<OvalProps>;
|
|
15
|
+
skPatch: SkiaProps<PatchProps>;
|
|
16
|
+
skPoints: SkiaProps<PointsProps>;
|
|
17
|
+
skRect: SkiaProps<RectProps>;
|
|
18
|
+
skRRect: SkiaProps<RoundedRectProps>;
|
|
19
|
+
skAtlas: SkiaProps<AtlasProps>;
|
|
20
|
+
skVertices: SkiaProps<VerticesProps>;
|
|
21
|
+
skText: SkiaProps<TextProps>;
|
|
22
|
+
skTextPath: SkiaProps<TextPathProps>;
|
|
23
|
+
skTextBlob: SkiaProps<TextBlobProps>;
|
|
24
|
+
skGlyphs: SkiaProps<GlyphsProps>;
|
|
25
|
+
skDiffRect: SkiaProps<DiffRectProps>;
|
|
26
|
+
skPicture: SkiaProps<PictureProps>;
|
|
27
|
+
skImageSVG: SkiaProps<ImageSVGProps>;
|
|
28
|
+
skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;
|
|
29
|
+
skBlendImageFilter: SkiaProps<BlendImageFilterProps>;
|
|
30
|
+
skBlurImageFilter: SkiaProps<BlurImageFilterProps>;
|
|
31
|
+
skOffsetImageFilter: SkiaProps<OffsetImageFilterProps>;
|
|
32
|
+
skDropShadowImageFilter: SkiaProps<DropShadowImageFilterProps>;
|
|
33
|
+
skDisplacementMapImageFilter: SkiaProps<DisplacementMapImageFilterProps>;
|
|
34
|
+
skRuntimeShaderImageFilter: SkiaProps<RuntimeShaderImageFilterProps>;
|
|
35
|
+
skMorphologyImageFilter: SkiaProps<MorphologyImageFilterProps>;
|
|
36
|
+
skMatrixColorFilter: SkiaProps<MatrixColorFilterProps>;
|
|
37
|
+
skBlendColorFilter: SkiaProps<BlendColorFilterProps>;
|
|
38
|
+
skLinearToSRGBGammaColorFilter: SkiaProps<ChildrenProps>;
|
|
39
|
+
skSRGBToLinearGammaColorFilter: SkiaProps<ChildrenProps>;
|
|
40
|
+
skLumaColorFilter: SkiaProps<ChildrenProps>;
|
|
41
|
+
skLerpColorFilter: SkiaProps<LerpColorFilterProps>;
|
|
42
|
+
skShader: SkiaProps<ShaderProps>;
|
|
43
|
+
skImageShader: SkiaProps<ImageShaderProps>;
|
|
44
|
+
skColorShader: SkiaProps<ColorProps>;
|
|
45
|
+
skTurbulence: SkiaProps<TurbulenceProps>;
|
|
46
|
+
skFractalNoise: SkiaProps<FractalNoiseProps>;
|
|
47
|
+
skLinearGradient: SkiaProps<LinearGradientProps>;
|
|
48
|
+
skRadialGradient: SkiaProps<RadialGradientProps>;
|
|
49
|
+
skSweepGradient: SkiaProps<SweepGradientProps>;
|
|
50
|
+
skTwoPointConicalGradient: SkiaProps<TwoPointConicalGradientProps>;
|
|
51
|
+
skDiscretePathEffect: SkiaProps<DiscretePathEffectProps>;
|
|
52
|
+
skDashPathEffect: SkiaProps<DashPathEffectProps>;
|
|
53
|
+
skPath1DPathEffect: SkiaProps<Path1DPathEffectProps>;
|
|
54
|
+
skPath2DPathEffect: SkiaProps<Path2DPathEffectProps>;
|
|
55
|
+
skCornerPathEffect: SkiaProps<CornerPathEffectProps>;
|
|
56
|
+
skSumPathEffect: ChildrenProps;
|
|
57
|
+
skLine2DPathEffect: SkiaProps<Line2DPathEffectProps>;
|
|
58
|
+
skBlend: SkiaProps<BlendProps>;
|
|
59
|
+
skBackdropFilter: SkiaProps<ChildrenProps>;
|
|
60
|
+
skBox: SkiaProps<BoxProps>;
|
|
61
|
+
skBoxShadow: SkiaProps<BoxShadowProps>;
|
|
62
|
+
skParagraph: SkiaProps<ParagraphProps>;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"setup-skia-web": "./scripts/setup-canvaskit.js"
|
|
9
9
|
},
|
|
10
10
|
"title": "React Native Skia",
|
|
11
|
-
"version": "1.11.
|
|
11
|
+
"version": "1.11.2",
|
|
12
12
|
"description": "High-performance React Native Graphics using Skia",
|
|
13
13
|
"main": "lib/module/index.js",
|
|
14
14
|
"react-native": "src/index.ts",
|
package/src/dom/nodes/index.ts
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
|
|
3
|
-
import type { Container } from "../../renderer/Container";
|
|
4
|
-
import type { AnimatedProps } from "../../renderer/processors";
|
|
5
|
-
import type { Node } from "../../dom/types";
|
|
6
|
-
|
|
7
|
-
import Rea from "./ReanimatedProxy";
|
|
8
|
-
|
|
9
1
|
export let HAS_REANIMATED_3 = false;
|
|
2
|
+
|
|
10
3
|
try {
|
|
11
4
|
// This logic is convoluted but necessary
|
|
12
5
|
// In most systems, `require("react-native-reanimated")` throws an error, all is well.
|
|
@@ -24,73 +17,3 @@ try {
|
|
|
24
17
|
} catch (e) {
|
|
25
18
|
// do nothing
|
|
26
19
|
}
|
|
27
|
-
|
|
28
|
-
const _bindings = new WeakMap<Node<unknown>, unknown>();
|
|
29
|
-
|
|
30
|
-
export const unbindReanimatedNode = (node: Node<unknown>) => {
|
|
31
|
-
if (!HAS_REANIMATED_3) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
const previousMapperId = _bindings.get(node);
|
|
35
|
-
if (previousMapperId !== undefined) {
|
|
36
|
-
Rea.stopMapper(previousMapperId as number);
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export function extractReanimatedProps(props: AnimatedProps<any>) {
|
|
41
|
-
if (!HAS_REANIMATED_3) {
|
|
42
|
-
return [props, {}];
|
|
43
|
-
}
|
|
44
|
-
const reanimatedProps = {} as AnimatedProps<any>;
|
|
45
|
-
const otherProps = {} as AnimatedProps<any>;
|
|
46
|
-
for (const propName in props) {
|
|
47
|
-
if (propName === "children") {
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
const propValue = props[propName];
|
|
51
|
-
if (Rea.isSharedValue(propValue)) {
|
|
52
|
-
reanimatedProps[propName] = propValue;
|
|
53
|
-
otherProps[propName] = propValue.value;
|
|
54
|
-
} else {
|
|
55
|
-
otherProps[propName] = propValue;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return [otherProps, reanimatedProps];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export function bindReanimatedProps(
|
|
62
|
-
container: Container,
|
|
63
|
-
node: Node<any>,
|
|
64
|
-
reanimatedProps: AnimatedProps<any>
|
|
65
|
-
) {
|
|
66
|
-
if (!HAS_REANIMATED_3) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const sharedValues = Object.values(reanimatedProps);
|
|
70
|
-
const previousMapperId = _bindings.get(node);
|
|
71
|
-
if (previousMapperId !== undefined) {
|
|
72
|
-
Rea.stopMapper(previousMapperId as number);
|
|
73
|
-
}
|
|
74
|
-
if (sharedValues.length > 0) {
|
|
75
|
-
const viewId = container.getNativeId();
|
|
76
|
-
const { SkiaViewApi } = global;
|
|
77
|
-
const mapperId = Rea.startMapper(() => {
|
|
78
|
-
"worklet";
|
|
79
|
-
if (node) {
|
|
80
|
-
for (const propName in reanimatedProps) {
|
|
81
|
-
node.setProp(propName, reanimatedProps[propName].value);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
// On React Native we use the SkiaViewApi to redraw because it can
|
|
85
|
-
// run on the worklet thread (container.redraw can't)
|
|
86
|
-
// if SkiaViewApi is undefined, we are on web and container.redraw()
|
|
87
|
-
// can safely be invoked
|
|
88
|
-
if (SkiaViewApi) {
|
|
89
|
-
SkiaViewApi.requestRedraw(viewId);
|
|
90
|
-
} else {
|
|
91
|
-
container.redraw();
|
|
92
|
-
}
|
|
93
|
-
}, sharedValues);
|
|
94
|
-
_bindings.set(node, mapperId);
|
|
95
|
-
}
|
|
96
|
-
}
|
package/src/index.ts
CHANGED
package/src/renderer/Canvas.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { FC } from "react";
|
|
1
2
|
import {
|
|
2
3
|
forwardRef,
|
|
3
4
|
useCallback,
|
|
@@ -11,11 +12,20 @@ import type { SharedValue } from "react-native-reanimated";
|
|
|
11
12
|
|
|
12
13
|
import { SkiaViewNativeId } from "../views/SkiaViewNativeId";
|
|
13
14
|
import SkiaPictureViewNativeComponent from "../specs/SkiaPictureViewNativeComponent";
|
|
14
|
-
import type { SkRect, SkSize } from "../skia/types";
|
|
15
|
+
import type { SkImage, SkRect, SkSize } from "../skia/types";
|
|
15
16
|
import { SkiaSGRoot } from "../sksg/Reconciler";
|
|
16
17
|
import { Skia } from "../skia";
|
|
17
18
|
import type { SkiaBaseViewProps } from "../views";
|
|
18
19
|
|
|
20
|
+
interface CanvasRef extends FC<CanvasProps> {
|
|
21
|
+
makeImageSnapshot(rect?: SkRect): SkImage;
|
|
22
|
+
makeImageSnapshotAsync(rect?: SkRect): Promise<SkImage>;
|
|
23
|
+
redraw(): void;
|
|
24
|
+
getNativeId(): number;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const useCanvasRef = () => useRef<CanvasRef>(null);
|
|
28
|
+
|
|
19
29
|
const NativeSkiaPictureView = SkiaPictureViewNativeComponent;
|
|
20
30
|
|
|
21
31
|
// TODO: no need to go through the JS thread for this
|
package/src/sksg/Container.ts
CHANGED
|
@@ -52,9 +52,14 @@ const nativeDrawOnscreen = (
|
|
|
52
52
|
export abstract class Container {
|
|
53
53
|
public root: Node[] = [];
|
|
54
54
|
protected recording: Recording | null = null;
|
|
55
|
+
protected unmounted = false;
|
|
55
56
|
|
|
56
57
|
constructor(protected Skia: Skia, protected nativeId: number) {}
|
|
57
58
|
|
|
59
|
+
unmount() {
|
|
60
|
+
this.unmounted = true;
|
|
61
|
+
}
|
|
62
|
+
|
|
58
63
|
drawOnCanvas(canvas: SkCanvas) {
|
|
59
64
|
if (!this.recording) {
|
|
60
65
|
throw new Error("No recording to draw");
|
|
@@ -101,6 +106,9 @@ class ReanimatedContainer extends Container {
|
|
|
101
106
|
if (this.mapperId !== null) {
|
|
102
107
|
Rea.stopMapper(this.mapperId);
|
|
103
108
|
}
|
|
109
|
+
if (this.unmounted) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
104
112
|
const recorder = new Recorder();
|
|
105
113
|
visit(recorder, this.root);
|
|
106
114
|
const record = recorder.getRecording();
|
|
@@ -134,6 +142,9 @@ class NativeReanimatedContainer extends Container {
|
|
|
134
142
|
if (this.mapperId !== null) {
|
|
135
143
|
Rea.stopMapper(this.mapperId);
|
|
136
144
|
}
|
|
145
|
+
if (this.unmounted) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
137
148
|
const { nativeId, Skia } = this;
|
|
138
149
|
const recorder = new ReanimatedRecorder(Skia);
|
|
139
150
|
visit(recorder, this.root);
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
FractalNoiseProps,
|
|
3
|
+
CircleProps,
|
|
4
|
+
DrawingNodeProps,
|
|
5
|
+
ImageProps,
|
|
6
|
+
PaintProps,
|
|
7
|
+
PathProps,
|
|
8
|
+
LineProps,
|
|
9
|
+
OvalProps,
|
|
10
|
+
DiffRectProps,
|
|
11
|
+
PointsProps,
|
|
12
|
+
RectProps,
|
|
13
|
+
RoundedRectProps,
|
|
14
|
+
TextProps,
|
|
15
|
+
VerticesProps,
|
|
16
|
+
BlurMaskFilterProps,
|
|
17
|
+
BlendImageFilterProps,
|
|
18
|
+
BlurImageFilterProps,
|
|
19
|
+
DisplacementMapImageFilterProps,
|
|
20
|
+
DropShadowImageFilterProps,
|
|
21
|
+
OffsetImageFilterProps,
|
|
22
|
+
RuntimeShaderImageFilterProps,
|
|
23
|
+
MatrixColorFilterProps,
|
|
24
|
+
ShaderProps,
|
|
25
|
+
ImageShaderProps,
|
|
26
|
+
LinearGradientProps,
|
|
27
|
+
GroupProps,
|
|
28
|
+
PatchProps,
|
|
29
|
+
BlendColorFilterProps,
|
|
30
|
+
DashPathEffectProps,
|
|
31
|
+
DiscretePathEffectProps,
|
|
32
|
+
CornerPathEffectProps,
|
|
33
|
+
Line2DPathEffectProps,
|
|
34
|
+
Path1DPathEffectProps,
|
|
35
|
+
Path2DPathEffectProps,
|
|
36
|
+
TextPathProps,
|
|
37
|
+
TextBlobProps,
|
|
38
|
+
GlyphsProps,
|
|
39
|
+
TwoPointConicalGradientProps,
|
|
40
|
+
TurbulenceProps,
|
|
41
|
+
SweepGradientProps,
|
|
42
|
+
RadialGradientProps,
|
|
43
|
+
ColorProps,
|
|
44
|
+
PictureProps,
|
|
45
|
+
ImageSVGProps,
|
|
46
|
+
LerpColorFilterProps,
|
|
47
|
+
BoxProps,
|
|
48
|
+
BoxShadowProps,
|
|
49
|
+
ParagraphProps,
|
|
50
|
+
AtlasProps,
|
|
51
|
+
ChildrenProps,
|
|
52
|
+
MorphologyImageFilterProps,
|
|
53
|
+
BlendProps,
|
|
54
|
+
} from "../dom/types";
|
|
55
|
+
import type { SkiaProps } from "../renderer";
|
|
56
|
+
|
|
57
|
+
declare global {
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
59
|
+
namespace JSX {
|
|
60
|
+
interface IntrinsicElements {
|
|
61
|
+
skGroup: SkiaProps<GroupProps>;
|
|
62
|
+
skLayer: SkiaProps<ChildrenProps>;
|
|
63
|
+
skPaint: SkiaProps<PaintProps>;
|
|
64
|
+
|
|
65
|
+
// Drawings
|
|
66
|
+
skFill: SkiaProps<DrawingNodeProps>;
|
|
67
|
+
skImage: SkiaProps<ImageProps>;
|
|
68
|
+
skCircle: SkiaProps<CircleProps>;
|
|
69
|
+
skPath: SkiaProps<PathProps>;
|
|
70
|
+
skLine: SkiaProps<LineProps>;
|
|
71
|
+
skOval: SkiaProps<OvalProps>;
|
|
72
|
+
skPatch: SkiaProps<PatchProps>;
|
|
73
|
+
skPoints: SkiaProps<PointsProps>;
|
|
74
|
+
skRect: SkiaProps<RectProps>;
|
|
75
|
+
skRRect: SkiaProps<RoundedRectProps>;
|
|
76
|
+
skAtlas: SkiaProps<AtlasProps>;
|
|
77
|
+
skVertices: SkiaProps<VerticesProps>;
|
|
78
|
+
skText: SkiaProps<TextProps>;
|
|
79
|
+
skTextPath: SkiaProps<TextPathProps>;
|
|
80
|
+
skTextBlob: SkiaProps<TextBlobProps>;
|
|
81
|
+
skGlyphs: SkiaProps<GlyphsProps>;
|
|
82
|
+
skDiffRect: SkiaProps<DiffRectProps>;
|
|
83
|
+
skPicture: SkiaProps<PictureProps>;
|
|
84
|
+
skImageSVG: SkiaProps<ImageSVGProps>;
|
|
85
|
+
|
|
86
|
+
// BlurMaskFilters
|
|
87
|
+
skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;
|
|
88
|
+
|
|
89
|
+
// ImageFilters
|
|
90
|
+
skBlendImageFilter: SkiaProps<BlendImageFilterProps>;
|
|
91
|
+
skBlurImageFilter: SkiaProps<BlurImageFilterProps>;
|
|
92
|
+
skOffsetImageFilter: SkiaProps<OffsetImageFilterProps>;
|
|
93
|
+
skDropShadowImageFilter: SkiaProps<DropShadowImageFilterProps>;
|
|
94
|
+
skDisplacementMapImageFilter: SkiaProps<DisplacementMapImageFilterProps>;
|
|
95
|
+
skRuntimeShaderImageFilter: SkiaProps<RuntimeShaderImageFilterProps>;
|
|
96
|
+
skMorphologyImageFilter: SkiaProps<MorphologyImageFilterProps>;
|
|
97
|
+
|
|
98
|
+
// ColorFilters
|
|
99
|
+
skMatrixColorFilter: SkiaProps<MatrixColorFilterProps>;
|
|
100
|
+
skBlendColorFilter: SkiaProps<BlendColorFilterProps>;
|
|
101
|
+
skLinearToSRGBGammaColorFilter: SkiaProps<ChildrenProps>;
|
|
102
|
+
skSRGBToLinearGammaColorFilter: SkiaProps<ChildrenProps>;
|
|
103
|
+
skLumaColorFilter: SkiaProps<ChildrenProps>;
|
|
104
|
+
skLerpColorFilter: SkiaProps<LerpColorFilterProps>;
|
|
105
|
+
|
|
106
|
+
// Shaders
|
|
107
|
+
skShader: SkiaProps<ShaderProps>;
|
|
108
|
+
skImageShader: SkiaProps<ImageShaderProps>;
|
|
109
|
+
skColorShader: SkiaProps<ColorProps>;
|
|
110
|
+
skTurbulence: SkiaProps<TurbulenceProps>;
|
|
111
|
+
skFractalNoise: SkiaProps<FractalNoiseProps>;
|
|
112
|
+
skLinearGradient: SkiaProps<LinearGradientProps>;
|
|
113
|
+
skRadialGradient: SkiaProps<RadialGradientProps>;
|
|
114
|
+
skSweepGradient: SkiaProps<SweepGradientProps>;
|
|
115
|
+
skTwoPointConicalGradient: SkiaProps<TwoPointConicalGradientProps>;
|
|
116
|
+
|
|
117
|
+
// Path Effects
|
|
118
|
+
skDiscretePathEffect: SkiaProps<DiscretePathEffectProps>;
|
|
119
|
+
skDashPathEffect: SkiaProps<DashPathEffectProps>;
|
|
120
|
+
skPath1DPathEffect: SkiaProps<Path1DPathEffectProps>;
|
|
121
|
+
skPath2DPathEffect: SkiaProps<Path2DPathEffectProps>;
|
|
122
|
+
skCornerPathEffect: SkiaProps<CornerPathEffectProps>;
|
|
123
|
+
skSumPathEffect: ChildrenProps;
|
|
124
|
+
skLine2DPathEffect: SkiaProps<Line2DPathEffectProps>;
|
|
125
|
+
|
|
126
|
+
// Mixed declarations/drawings
|
|
127
|
+
skBlend: SkiaProps<BlendProps>;
|
|
128
|
+
skBackdropFilter: SkiaProps<ChildrenProps>;
|
|
129
|
+
skBox: SkiaProps<BoxProps>;
|
|
130
|
+
skBoxShadow: SkiaProps<BoxShadowProps>;
|
|
131
|
+
|
|
132
|
+
// Paragraph
|
|
133
|
+
skParagraph: SkiaProps<ParagraphProps>;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
package/src/sksg/Reconciler.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { NodeType } from "../dom/types";
|
|
|
8
8
|
import { debug, sksgHostConfig } from "./HostConfig";
|
|
9
9
|
import type { Container } from "./Container";
|
|
10
10
|
import { createContainer } from "./Container";
|
|
11
|
+
import "./Elements";
|
|
11
12
|
|
|
12
13
|
const skiaReconciler = ReactReconciler(sksgHostConfig);
|
|
13
14
|
|
|
@@ -59,6 +60,7 @@ export class SkiaSGRoot {
|
|
|
59
60
|
}
|
|
60
61
|
|
|
61
62
|
unmount() {
|
|
63
|
+
this.container.unmount();
|
|
62
64
|
skiaReconciler.updateContainer(null, this.root, null, () => {
|
|
63
65
|
debug("unmountContainer");
|
|
64
66
|
});
|
package/src/views/index.ts
CHANGED
|
@@ -1,82 +0,0 @@
|
|
|
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("setDebugMode", JniSkiaDomView::setDebugMode),
|
|
44
|
-
makeNativeMethod("registerView", JniSkiaDomView::registerView),
|
|
45
|
-
makeNativeMethod("unregisterView", JniSkiaDomView::unregisterView)});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
protected:
|
|
49
|
-
void surfaceAvailable(jobject surface, int width, int height,
|
|
50
|
-
bool opaque) override {
|
|
51
|
-
JniSkiaBaseView::surfaceAvailable(surface, width, height, opaque);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
void surfaceSizeChanged(jobject surface, int width, int height,
|
|
55
|
-
bool opaque) override {
|
|
56
|
-
JniSkiaBaseView::surfaceSizeChanged(surface, width, height, opaque);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
void surfaceDestroyed() override { JniSkiaBaseView::surfaceDestroyed(); }
|
|
60
|
-
|
|
61
|
-
void setDebugMode(bool show) override { JniSkiaBaseView::setDebugMode(show); }
|
|
62
|
-
|
|
63
|
-
void registerView(int nativeId) override {
|
|
64
|
-
JniSkiaBaseView::registerView(nativeId);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
void unregisterView() override { JniSkiaBaseView::unregisterView(); }
|
|
68
|
-
|
|
69
|
-
private:
|
|
70
|
-
friend HybridBase;
|
|
71
|
-
|
|
72
|
-
explicit JniSkiaDomView(
|
|
73
|
-
jni::alias_ref<jhybridobject> jThis,
|
|
74
|
-
jni::alias_ref<JniSkiaManager::javaobject> skiaManager)
|
|
75
|
-
: JniSkiaBaseView(skiaManager,
|
|
76
|
-
std::make_shared<RNSkAndroidView<RNSkia::RNSkDomView>>(
|
|
77
|
-
skiaManager->cthis()->getPlatformContext())) {}
|
|
78
|
-
|
|
79
|
-
jni::global_ref<javaobject> javaPart_;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
} // namespace RNSkia
|
|
@@ -1,41 +0,0 @@
|
|
|
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
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
9
|
-
|
|
10
|
-
public class SkiaDomView extends SkiaBaseView {
|
|
11
|
-
@DoNotStrip
|
|
12
|
-
private HybridData mHybridData;
|
|
13
|
-
|
|
14
|
-
public SkiaDomView(ThemedReactContext context) {
|
|
15
|
-
super(context);
|
|
16
|
-
RNSkiaModule skiaModule = context.getReactApplicationContext().getNativeModule(RNSkiaModule.class);
|
|
17
|
-
mHybridData = initHybrid(skiaModule.getSkiaManager());
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@Override
|
|
21
|
-
protected void finalize() throws Throwable {
|
|
22
|
-
super.finalize();
|
|
23
|
-
mHybridData.resetNative();
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
private native HybridData initHybrid(SkiaManager skiaManager);
|
|
27
|
-
|
|
28
|
-
protected native void surfaceAvailable(Object surface, int width, int height, boolean opaque);
|
|
29
|
-
|
|
30
|
-
protected native void surfaceSizeChanged(Object surface, int width, int height, boolean opaque);
|
|
31
|
-
|
|
32
|
-
protected native void surfaceDestroyed();
|
|
33
|
-
|
|
34
|
-
protected native void setBgColor(int color);
|
|
35
|
-
|
|
36
|
-
protected native void setDebugMode(boolean show);
|
|
37
|
-
|
|
38
|
-
protected native void registerView(int nativeId);
|
|
39
|
-
|
|
40
|
-
protected native void unregisterView();
|
|
41
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
package com.shopify.reactnative.skia;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
4
|
-
import com.facebook.react.viewmanagers.SkiaDomViewManagerInterface;
|
|
5
|
-
import com.facebook.react.viewmanagers.SkiaDomViewManagerDelegate;
|
|
6
|
-
|
|
7
|
-
import androidx.annotation.NonNull;
|
|
8
|
-
|
|
9
|
-
public class SkiaDomViewManager extends SkiaBaseViewManager<SkiaDomView> implements SkiaDomViewManagerInterface<SkiaDomView> {
|
|
10
|
-
|
|
11
|
-
protected SkiaDomViewManagerDelegate mDelegate;
|
|
12
|
-
|
|
13
|
-
SkiaDomViewManager() {
|
|
14
|
-
mDelegate = new SkiaDomViewManagerDelegate(this);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
protected SkiaDomViewManagerDelegate getDelegate() {
|
|
18
|
-
return mDelegate;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@NonNull
|
|
22
|
-
@Override
|
|
23
|
-
public String getName() {
|
|
24
|
-
return "SkiaDomView";
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@NonNull
|
|
28
|
-
@Override
|
|
29
|
-
public SkiaDomView createViewInstance(@NonNull ThemedReactContext reactContext) {
|
|
30
|
-
return new SkiaDomView(reactContext);
|
|
31
|
-
}
|
|
32
|
-
}
|
package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerDelegate.java
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
-
*
|
|
4
|
-
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
-
* once the code is regenerated.
|
|
6
|
-
*
|
|
7
|
-
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
package com.facebook.react.viewmanagers;
|
|
11
|
-
|
|
12
|
-
import android.view.View;
|
|
13
|
-
import androidx.annotation.Nullable;
|
|
14
|
-
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
|
15
|
-
import com.facebook.react.uimanager.BaseViewManagerInterface;
|
|
16
|
-
|
|
17
|
-
public class SkiaDomViewManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & SkiaDomViewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
|
18
|
-
public SkiaDomViewManagerDelegate(U viewManager) {
|
|
19
|
-
super(viewManager);
|
|
20
|
-
}
|
|
21
|
-
@Override
|
|
22
|
-
public void setProperty(T view, String propName, @Nullable Object value) {
|
|
23
|
-
switch (propName) {
|
|
24
|
-
case "opaque":
|
|
25
|
-
mViewManager.setOpaque(view, value != null && (boolean) value);
|
|
26
|
-
break;
|
|
27
|
-
case "debug":
|
|
28
|
-
mViewManager.setDebug(view, value != null && (boolean) value);
|
|
29
|
-
break;
|
|
30
|
-
default:
|
|
31
|
-
super.setProperty(view, propName, value);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerInterface.java
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
-
*
|
|
4
|
-
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
-
* once the code is regenerated.
|
|
6
|
-
*
|
|
7
|
-
* @generated by codegen project: GeneratePropsJavaInterface.js
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
package com.facebook.react.viewmanagers;
|
|
11
|
-
|
|
12
|
-
import android.view.View;
|
|
13
|
-
import androidx.annotation.Nullable;
|
|
14
|
-
|
|
15
|
-
public interface SkiaDomViewManagerInterface<T extends View> {
|
|
16
|
-
void setDebug(T view, boolean value);
|
|
17
|
-
void setOpaque(T view, boolean value);
|
|
18
|
-
}
|