@shopify/react-native-skia 0.1.164 → 0.1.166
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/src/main/java/com/shopify/reactnative/skia/SkiaBaseView.java +16 -5
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaBaseViewManager.java +34 -0
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +2 -47
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaDrawViewManager.java +2 -44
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaPictureViewManager.java +2 -47
- package/cpp/api/JsiSkRuntimeEffect.h +7 -2
- package/cpp/rnskia/RNSkDomView.cpp +1 -1
- package/cpp/rnskia/RNSkPlatformContext.h +2 -6
- package/cpp/rnskia/dom/base/DerivedNodeProp.h +4 -4
- package/cpp/rnskia/dom/base/DrawingContext.cpp +5 -38
- package/cpp/rnskia/dom/base/DrawingContext.h +3 -17
- package/cpp/rnskia/dom/nodes/JsiBoxNode.h +4 -4
- package/cpp/rnskia/dom/nodes/JsiCircleNode.h +0 -2
- package/cpp/rnskia/dom/nodes/JsiCustomDrawingNode.h +1 -3
- package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +2 -2
- package/cpp/rnskia/dom/nodes/JsiPathNode.h +12 -5
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +17 -7
- package/cpp/rnskia/dom/props/CircleProp.h +2 -0
- package/cpp/rnskia/dom/props/ClipProp.h +6 -6
- package/cpp/rnskia/dom/props/ColorProp.h +9 -4
- package/cpp/rnskia/dom/props/ImageProps.h +6 -3
- package/cpp/rnskia/dom/props/PaintProps.h +15 -22
- package/cpp/rnskia/dom/props/RectProp.h +11 -4
- package/cpp/rnskia/dom/props/UniformsProp.h +86 -123
- package/cpp/rnskia/dom/props/VerticesProps.h +2 -2
- package/cpp/rnskia/values/RNSkReadonlyValue.h +2 -6
- package/lib/commonjs/dom/nodes/datatypes/Circle.js +6 -1
- package/lib/commonjs/dom/nodes/datatypes/Circle.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Rect.js +3 -3
- package/lib/commonjs/dom/nodes/datatypes/Rect.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/Box.js +1 -1
- package/lib/commonjs/dom/nodes/drawings/Box.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/ImageNode.js +2 -2
- package/lib/commonjs/dom/nodes/drawings/ImageNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/ImageFilters.js +1 -1
- package/lib/commonjs/dom/nodes/paint/ImageFilters.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/Shaders.js +5 -2
- package/lib/commonjs/dom/nodes/paint/Shaders.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/renderer/components/Mask.js +2 -6
- package/lib/commonjs/renderer/components/Mask.js.map +1 -1
- package/lib/commonjs/renderer/components/image/Image.js +0 -5
- package/lib/commonjs/renderer/components/image/Image.js.map +1 -1
- package/lib/commonjs/renderer/components/image/ImageShader.js +20 -10
- package/lib/commonjs/renderer/components/image/ImageShader.js.map +1 -1
- package/lib/commonjs/renderer/components/imageFilters/Blur.js +10 -5
- package/lib/commonjs/renderer/components/imageFilters/Blur.js.map +1 -1
- package/lib/commonjs/renderer/components/imageFilters/Morphology.js +10 -5
- package/lib/commonjs/renderer/components/imageFilters/Morphology.js.map +1 -1
- package/lib/commonjs/renderer/components/imageFilters/Offset.js +12 -6
- package/lib/commonjs/renderer/components/imageFilters/Offset.js.map +1 -1
- package/lib/commonjs/renderer/components/maskFilters/Blur.js +12 -6
- package/lib/commonjs/renderer/components/maskFilters/Blur.js.map +1 -1
- package/lib/commonjs/renderer/components/pathEffects/Discrete.js +10 -5
- package/lib/commonjs/renderer/components/pathEffects/Discrete.js.map +1 -1
- package/lib/commonjs/renderer/components/shaders/FractalNoise.js +14 -7
- package/lib/commonjs/renderer/components/shaders/FractalNoise.js.map +1 -1
- package/lib/commonjs/renderer/components/shaders/Shader.js +10 -5
- package/lib/commonjs/renderer/components/shaders/Shader.js.map +1 -1
- package/lib/commonjs/renderer/components/shaders/Turbulence.js +14 -7
- package/lib/commonjs/renderer/components/shaders/Turbulence.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Circle.js +0 -6
- package/lib/commonjs/renderer/components/shapes/Circle.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/FitBox.js +1 -4
- package/lib/commonjs/renderer/components/shapes/FitBox.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Oval.js +0 -4
- package/lib/commonjs/renderer/components/shapes/Oval.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Path.js +12 -6
- package/lib/commonjs/renderer/components/shapes/Path.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Points.js +10 -5
- package/lib/commonjs/renderer/components/shapes/Points.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/RoundedRect.js +0 -3
- package/lib/commonjs/renderer/components/shapes/RoundedRect.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Vertices.js +10 -5
- package/lib/commonjs/renderer/components/shapes/Vertices.js.map +1 -1
- package/lib/commonjs/renderer/components/text/Glyphs.js +12 -6
- package/lib/commonjs/renderer/components/text/Glyphs.js.map +1 -1
- package/lib/commonjs/renderer/components/text/Text.js +12 -6
- package/lib/commonjs/renderer/components/text/Text.js.map +1 -1
- package/lib/commonjs/renderer/components/text/TextBlob.js +12 -6
- package/lib/commonjs/renderer/components/text/TextBlob.js.map +1 -1
- package/lib/commonjs/renderer/components/text/TextPath.js +10 -5
- package/lib/commonjs/renderer/components/text/TextPath.js.map +1 -1
- package/lib/commonjs/renderer/processors/Animations/Animations.js.map +1 -1
- package/lib/commonjs/skia/types/RuntimeEffect/RuntimeEffect.js.map +1 -1
- package/lib/commonjs/skia/types/Shader/Shader.js +25 -25
- package/lib/commonjs/skia/types/Shader/Shader.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkRuntimeEffect.js +6 -1
- package/lib/commonjs/skia/web/JsiSkRuntimeEffect.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkRuntimeEffectFactory.js +1 -1
- package/lib/commonjs/skia/web/JsiSkRuntimeEffectFactory.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Circle.js +8 -1
- package/lib/module/dom/nodes/datatypes/Circle.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Rect.js +7 -3
- package/lib/module/dom/nodes/datatypes/Rect.js.map +1 -1
- package/lib/module/dom/nodes/drawings/Box.js +1 -1
- package/lib/module/dom/nodes/drawings/Box.js.map +1 -1
- package/lib/module/dom/nodes/drawings/ImageNode.js +4 -2
- package/lib/module/dom/nodes/drawings/ImageNode.js.map +1 -1
- package/lib/module/dom/nodes/paint/ImageFilters.js +1 -1
- package/lib/module/dom/nodes/paint/ImageFilters.js.map +1 -1
- package/lib/module/dom/nodes/paint/Shaders.js +5 -4
- package/lib/module/dom/nodes/paint/Shaders.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/renderer/components/Mask.js +2 -6
- package/lib/module/renderer/components/Mask.js.map +1 -1
- package/lib/module/renderer/components/image/Image.js +0 -5
- package/lib/module/renderer/components/image/Image.js.map +1 -1
- package/lib/module/renderer/components/image/ImageShader.js +20 -10
- package/lib/module/renderer/components/image/ImageShader.js.map +1 -1
- package/lib/module/renderer/components/imageFilters/Blur.js +10 -5
- package/lib/module/renderer/components/imageFilters/Blur.js.map +1 -1
- package/lib/module/renderer/components/imageFilters/Morphology.js +10 -5
- package/lib/module/renderer/components/imageFilters/Morphology.js.map +1 -1
- package/lib/module/renderer/components/imageFilters/Offset.js +12 -6
- package/lib/module/renderer/components/imageFilters/Offset.js.map +1 -1
- package/lib/module/renderer/components/maskFilters/Blur.js +12 -6
- package/lib/module/renderer/components/maskFilters/Blur.js.map +1 -1
- package/lib/module/renderer/components/pathEffects/Discrete.js +10 -5
- package/lib/module/renderer/components/pathEffects/Discrete.js.map +1 -1
- package/lib/module/renderer/components/shaders/FractalNoise.js +14 -7
- package/lib/module/renderer/components/shaders/FractalNoise.js.map +1 -1
- package/lib/module/renderer/components/shaders/Shader.js +10 -5
- package/lib/module/renderer/components/shaders/Shader.js.map +1 -1
- package/lib/module/renderer/components/shaders/Turbulence.js +14 -7
- package/lib/module/renderer/components/shaders/Turbulence.js.map +1 -1
- package/lib/module/renderer/components/shapes/Circle.js +0 -6
- package/lib/module/renderer/components/shapes/Circle.js.map +1 -1
- package/lib/module/renderer/components/shapes/FitBox.js +1 -4
- package/lib/module/renderer/components/shapes/FitBox.js.map +1 -1
- package/lib/module/renderer/components/shapes/Oval.js +0 -4
- package/lib/module/renderer/components/shapes/Oval.js.map +1 -1
- package/lib/module/renderer/components/shapes/Path.js +12 -6
- package/lib/module/renderer/components/shapes/Path.js.map +1 -1
- package/lib/module/renderer/components/shapes/Points.js +10 -5
- package/lib/module/renderer/components/shapes/Points.js.map +1 -1
- package/lib/module/renderer/components/shapes/RoundedRect.js +0 -3
- package/lib/module/renderer/components/shapes/RoundedRect.js.map +1 -1
- package/lib/module/renderer/components/shapes/Vertices.js +10 -5
- package/lib/module/renderer/components/shapes/Vertices.js.map +1 -1
- package/lib/module/renderer/components/text/Glyphs.js +12 -6
- package/lib/module/renderer/components/text/Glyphs.js.map +1 -1
- package/lib/module/renderer/components/text/Text.js +12 -6
- package/lib/module/renderer/components/text/Text.js.map +1 -1
- package/lib/module/renderer/components/text/TextBlob.js +12 -6
- package/lib/module/renderer/components/text/TextBlob.js.map +1 -1
- package/lib/module/renderer/components/text/TextPath.js +10 -5
- package/lib/module/renderer/components/text/TextPath.js.map +1 -1
- package/lib/module/renderer/processors/Animations/Animations.js.map +1 -1
- package/lib/module/skia/types/RuntimeEffect/RuntimeEffect.js.map +1 -1
- package/lib/module/skia/types/Shader/Shader.js +25 -25
- package/lib/module/skia/types/Shader/Shader.js.map +1 -1
- package/lib/module/skia/web/JsiSkRuntimeEffect.js +6 -1
- package/lib/module/skia/web/JsiSkRuntimeEffect.js.map +1 -1
- package/lib/module/skia/web/JsiSkRuntimeEffectFactory.js +1 -1
- package/lib/module/skia/web/JsiSkRuntimeEffectFactory.js.map +1 -1
- package/lib/typescript/src/dom/nodes/datatypes/Circle.d.ts +4 -1
- package/lib/typescript/src/dom/types/Common.d.ts +4 -4
- package/lib/typescript/src/dom/types/Drawings.d.ts +1 -1
- package/lib/typescript/src/renderer/components/Mask.d.ts +3 -9
- package/lib/typescript/src/renderer/components/image/Image.d.ts +1 -8
- package/lib/typescript/src/renderer/components/image/ImageShader.d.ts +2 -12
- package/lib/typescript/src/renderer/components/imageFilters/Blur.d.ts +2 -7
- package/lib/typescript/src/renderer/components/imageFilters/Morphology.d.ts +2 -7
- package/lib/typescript/src/renderer/components/imageFilters/Offset.d.ts +2 -8
- package/lib/typescript/src/renderer/components/maskFilters/Blur.d.ts +2 -8
- package/lib/typescript/src/renderer/components/pathEffects/Discrete.d.ts +2 -7
- package/lib/typescript/src/renderer/components/shaders/FractalNoise.d.ts +2 -9
- package/lib/typescript/src/renderer/components/shaders/Shader.d.ts +2 -7
- package/lib/typescript/src/renderer/components/shaders/Turbulence.d.ts +2 -9
- package/lib/typescript/src/renderer/components/shapes/Circle.d.ts +1 -9
- package/lib/typescript/src/renderer/components/shapes/FitBox.d.ts +2 -7
- package/lib/typescript/src/renderer/components/shapes/Oval.d.ts +1 -7
- package/lib/typescript/src/renderer/components/shapes/Path.d.ts +2 -8
- package/lib/typescript/src/renderer/components/shapes/Points.d.ts +2 -7
- package/lib/typescript/src/renderer/components/shapes/RoundedRect.d.ts +1 -6
- package/lib/typescript/src/renderer/components/shapes/Vertices.d.ts +2 -7
- package/lib/typescript/src/renderer/components/text/Glyphs.d.ts +2 -8
- package/lib/typescript/src/renderer/components/text/Text.d.ts +2 -8
- package/lib/typescript/src/renderer/components/text/TextBlob.d.ts +2 -8
- package/lib/typescript/src/renderer/components/text/TextPath.d.ts +2 -7
- package/lib/typescript/src/renderer/processors/Animations/Animations.d.ts +5 -0
- package/lib/typescript/src/skia/types/RuntimeEffect/RuntimeEffect.d.ts +4 -0
- package/lib/typescript/src/skia/types/Shader/Shader.d.ts +1 -2
- package/lib/typescript/src/skia/web/JsiSkRuntimeEffect.d.ts +3 -1
- package/package.json +1 -1
- package/src/dom/nodes/datatypes/Circle.ts +1 -1
- package/src/dom/nodes/datatypes/Rect.ts +3 -3
- package/src/dom/nodes/drawings/Box.ts +1 -1
- package/src/dom/nodes/drawings/ImageNode.ts +2 -1
- package/src/dom/nodes/paint/ImageFilters.ts +1 -1
- package/src/dom/nodes/paint/Shaders.ts +5 -5
- package/src/dom/types/Common.ts +4 -4
- package/src/dom/types/Drawings.ts +1 -1
- package/src/renderer/components/Mask.tsx +8 -8
- package/src/renderer/components/image/Image.tsx +0 -6
- package/src/renderer/components/image/ImageShader.tsx +24 -12
- package/src/renderer/components/imageFilters/Blur.tsx +6 -7
- package/src/renderer/components/imageFilters/Morphology.tsx +6 -7
- package/src/renderer/components/imageFilters/Offset.tsx +7 -8
- package/src/renderer/components/maskFilters/Blur.tsx +7 -8
- package/src/renderer/components/pathEffects/Discrete.tsx +6 -9
- package/src/renderer/components/shaders/FractalNoise.tsx +18 -9
- package/src/renderer/components/shaders/Shader.tsx +6 -7
- package/src/renderer/components/shaders/Turbulence.tsx +15 -9
- package/src/renderer/components/shapes/Circle.tsx +0 -4
- package/src/renderer/components/shapes/FitBox.tsx +2 -6
- package/src/renderer/components/shapes/Oval.tsx +0 -5
- package/src/renderer/components/shapes/Path.tsx +7 -8
- package/src/renderer/components/shapes/Points.tsx +6 -7
- package/src/renderer/components/shapes/RoundedRect.tsx +0 -4
- package/src/renderer/components/shapes/Vertices.tsx +6 -7
- package/src/renderer/components/text/Glyphs.tsx +7 -8
- package/src/renderer/components/text/Text.tsx +7 -8
- package/src/renderer/components/text/TextBlob.tsx +7 -8
- package/src/renderer/components/text/TextPath.tsx +6 -7
- package/src/renderer/processors/Animations/Animations.ts +9 -3
- package/src/skia/types/RuntimeEffect/RuntimeEffect.ts +5 -0
- package/src/skia/types/Shader/Shader.ts +30 -36
- package/src/skia/web/JsiSkRuntimeEffect.ts +5 -1
- package/src/skia/web/JsiSkRuntimeEffectFactory.ts +1 -1
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
3
|
import type { BlurMaskFilterProps } from "../../../dom/types";
|
|
4
|
-
import type {
|
|
4
|
+
import type { SkiaDefaultProps } from "../../processors/Animations/Animations";
|
|
5
5
|
|
|
6
|
-
export const BlurMask = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
style
|
|
12
|
-
respectCTM: true,
|
|
6
|
+
export const BlurMask = ({
|
|
7
|
+
style = "normal",
|
|
8
|
+
respectCTM = true,
|
|
9
|
+
...props
|
|
10
|
+
}: SkiaDefaultProps<BlurMaskFilterProps, "style" | "respectCTM">) => {
|
|
11
|
+
return <skBlurMaskFilter style={style} respectCTM={respectCTM} {...props} />;
|
|
13
12
|
};
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { SkiaDefaultProps } from "../../processors/Animations/Animations";
|
|
4
4
|
import type { DiscretePathEffectProps } from "../../../dom/types";
|
|
5
5
|
|
|
6
|
-
export const DiscretePathEffect = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
DiscretePathEffect.defaultProps = {
|
|
13
|
-
seed: 0,
|
|
6
|
+
export const DiscretePathEffect = ({
|
|
7
|
+
seed = 0,
|
|
8
|
+
...props
|
|
9
|
+
}: SkiaDefaultProps<DiscretePathEffectProps, "seed">) => {
|
|
10
|
+
return <skDiscretePathEffect seed={seed} {...props} />;
|
|
14
11
|
};
|
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
3
|
import type { FractalNoiseProps } from "../../../dom/types";
|
|
4
|
-
import type {
|
|
4
|
+
import type { SkiaDefaultProps } from "../../processors/Animations/Animations";
|
|
5
5
|
|
|
6
|
-
export const FractalNoise = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
tileHeight
|
|
6
|
+
export const FractalNoise = ({
|
|
7
|
+
seed = 0,
|
|
8
|
+
tileWidth = 0,
|
|
9
|
+
tileHeight = 0,
|
|
10
|
+
...props
|
|
11
|
+
}: SkiaDefaultProps<
|
|
12
|
+
FractalNoiseProps,
|
|
13
|
+
"seed" | "tileHeight" | "tileWidth"
|
|
14
|
+
>) => {
|
|
15
|
+
return (
|
|
16
|
+
<skFractalNoise
|
|
17
|
+
seed={seed}
|
|
18
|
+
tileWidth={tileWidth}
|
|
19
|
+
tileHeight={tileHeight}
|
|
20
|
+
{...props}
|
|
21
|
+
/>
|
|
22
|
+
);
|
|
14
23
|
};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { SkiaDefaultProps } from "../../processors";
|
|
4
4
|
import type { ShaderProps } from "../../../dom/types";
|
|
5
5
|
|
|
6
|
-
export const Shader = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
uniforms: [],
|
|
6
|
+
export const Shader = ({
|
|
7
|
+
uniforms = {},
|
|
8
|
+
...props
|
|
9
|
+
}: SkiaDefaultProps<ShaderProps, "uniforms">) => {
|
|
10
|
+
return <skShader uniforms={uniforms} {...props} />;
|
|
12
11
|
};
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
3
|
import type { TurbulenceProps } from "../../../dom/types";
|
|
4
|
-
import type {
|
|
4
|
+
import type { SkiaDefaultProps } from "../../processors/Animations/Animations";
|
|
5
5
|
|
|
6
|
-
export const Turbulence = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
export const Turbulence = ({
|
|
7
|
+
seed = 0,
|
|
8
|
+
tileWidth = 0,
|
|
9
|
+
tileHeight = 0,
|
|
10
|
+
...props
|
|
11
|
+
}: SkiaDefaultProps<TurbulenceProps, "seed" | "tileWidth" | "tileHeight">) => {
|
|
12
|
+
return (
|
|
13
|
+
<skTurbulence
|
|
14
|
+
seed={seed}
|
|
15
|
+
tileWidth={tileWidth}
|
|
16
|
+
tileHeight={tileHeight}
|
|
17
|
+
{...props}
|
|
18
|
+
/>
|
|
19
|
+
);
|
|
14
20
|
};
|
|
@@ -7,7 +7,7 @@ import type { SkRect } from "../../../skia/types";
|
|
|
7
7
|
import { Group } from "../Group";
|
|
8
8
|
|
|
9
9
|
interface FitProps {
|
|
10
|
-
fit
|
|
10
|
+
fit?: Fit;
|
|
11
11
|
src: SkRect;
|
|
12
12
|
dst: SkRect;
|
|
13
13
|
children: ReactNode | ReactNode[];
|
|
@@ -18,11 +18,7 @@ export const fitbox = (fit: Fit, src: SkRect, dst: SkRect) => {
|
|
|
18
18
|
return rect2rect(rects.src, rects.dst);
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
export const FitBox = ({ fit, src, dst, children }: FitProps) => {
|
|
21
|
+
export const FitBox = ({ fit = "contain", src, dst, children }: FitProps) => {
|
|
22
22
|
const transform = useMemo(() => fitbox(fit, src, dst), [dst, fit, src]);
|
|
23
23
|
return <Group transform={transform}>{children}</Group>;
|
|
24
24
|
};
|
|
25
|
-
|
|
26
|
-
FitBox.defaultProps = {
|
|
27
|
-
fit: "contain",
|
|
28
|
-
};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { SkiaDefaultProps } from "../../processors";
|
|
4
4
|
import type { PathProps } from "../../../dom/types";
|
|
5
5
|
|
|
6
|
-
export const Path = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
start
|
|
12
|
-
end: 1,
|
|
6
|
+
export const Path = ({
|
|
7
|
+
start = 0,
|
|
8
|
+
end = 1,
|
|
9
|
+
...props
|
|
10
|
+
}: SkiaDefaultProps<PathProps, "start" | "end">) => {
|
|
11
|
+
return <skPath start={start} end={end} {...props} />;
|
|
13
12
|
};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { SkiaDefaultProps } from "../../processors/Animations/Animations";
|
|
4
4
|
import type { PointsProps } from "../../../dom/types";
|
|
5
5
|
|
|
6
|
-
export const Points = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
mode: "points",
|
|
6
|
+
export const Points = ({
|
|
7
|
+
mode = "points",
|
|
8
|
+
...props
|
|
9
|
+
}: SkiaDefaultProps<PointsProps, "mode">) => {
|
|
10
|
+
return <skPoints mode={mode} {...props} />;
|
|
12
11
|
};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { SkiaDefaultProps } from "../../processors";
|
|
4
4
|
import type { VerticesProps } from "../../../dom/types";
|
|
5
5
|
|
|
6
|
-
export const Vertices = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
mode: "triangles",
|
|
6
|
+
export const Vertices = ({
|
|
7
|
+
mode = "triangles",
|
|
8
|
+
...props
|
|
9
|
+
}: SkiaDefaultProps<VerticesProps, "mode">) => {
|
|
10
|
+
return <skVertices mode={mode} {...props} />;
|
|
12
11
|
};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
3
|
import type { GlyphsProps } from "../../../dom/types";
|
|
4
|
-
import type {
|
|
4
|
+
import type { SkiaDefaultProps } from "../../processors/Animations/Animations";
|
|
5
5
|
|
|
6
|
-
export const Glyphs = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
x
|
|
12
|
-
y: 0,
|
|
6
|
+
export const Glyphs = ({
|
|
7
|
+
x = 0,
|
|
8
|
+
y = 0,
|
|
9
|
+
...props
|
|
10
|
+
}: SkiaDefaultProps<GlyphsProps, "x" | "y">) => {
|
|
11
|
+
return <skGlyphs x={x} y={y} {...props} />;
|
|
13
12
|
};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { SkiaDefaultProps } from "../../processors";
|
|
4
4
|
import type { TextProps } from "../../../dom/types";
|
|
5
5
|
|
|
6
|
-
export const Text = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
x
|
|
12
|
-
y: 0,
|
|
6
|
+
export const Text = ({
|
|
7
|
+
x = 0,
|
|
8
|
+
y = 0,
|
|
9
|
+
...props
|
|
10
|
+
}: SkiaDefaultProps<TextProps, "x" | "y">) => {
|
|
11
|
+
return <skText x={x} y={y} {...props} />;
|
|
13
12
|
};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { SkiaDefaultProps } from "../../processors";
|
|
4
4
|
import type { TextBlobProps } from "../../../dom/types";
|
|
5
5
|
|
|
6
|
-
export const TextBlob = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
x
|
|
12
|
-
y: 0,
|
|
6
|
+
export const TextBlob = ({
|
|
7
|
+
x = 0,
|
|
8
|
+
y = 0,
|
|
9
|
+
...props
|
|
10
|
+
}: SkiaDefaultProps<TextBlobProps, "x" | "y">) => {
|
|
11
|
+
return <skTextBlob x={x} y={y} {...props} />;
|
|
13
12
|
};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { SkiaDefaultProps } from "../../processors";
|
|
4
4
|
import type { TextPathProps } from "../../../dom/types";
|
|
5
5
|
|
|
6
|
-
export const TextPath = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
initialOffset: 0,
|
|
6
|
+
export const TextPath = ({
|
|
7
|
+
initialOffset = 0,
|
|
8
|
+
...props
|
|
9
|
+
}: SkiaDefaultProps<TextPathProps, "initialOffset">) => {
|
|
10
|
+
return <skTextPath initialOffset={initialOffset} {...props} />;
|
|
12
11
|
};
|
|
@@ -54,10 +54,16 @@ export type AnimatedProps<T, O extends keyof T | never = never> = {
|
|
|
54
54
|
: AnimatedProp<T[K]>;
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
-
// TODO: switch to AnimatedProps<GroupProps> and remove duplicate properties.
|
|
58
|
-
// For instance matrix in color filter becomes colorMatrix
|
|
59
|
-
|
|
60
57
|
export type SkiaProps<
|
|
61
58
|
P = object,
|
|
62
59
|
O extends keyof P | never = never
|
|
63
60
|
> = AnimatedProps<P, O>;
|
|
61
|
+
|
|
62
|
+
type WithOptional<T extends object, N extends keyof T> = Omit<T, N> & {
|
|
63
|
+
[K in N]?: T[K];
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export type SkiaDefaultProps<
|
|
67
|
+
T extends object,
|
|
68
|
+
N extends keyof T
|
|
69
|
+
> = WithOptional<SkiaProps<T>, N>;
|
|
@@ -7,9 +7,7 @@ export const isShader = (obj: SkJSIInstance<string> | null): obj is SkShader =>
|
|
|
7
7
|
|
|
8
8
|
export type SkShader = SkJSIInstance<"Shader">;
|
|
9
9
|
|
|
10
|
-
export type
|
|
11
|
-
|
|
12
|
-
export type Uniform = UniformValue | readonly UniformValue[];
|
|
10
|
+
export type Uniform = number | Vector | Float32Array | Uniform[];
|
|
13
11
|
|
|
14
12
|
export interface Uniforms {
|
|
15
13
|
[name: string]: Uniform;
|
|
@@ -20,11 +18,16 @@ const isVector = (obj: unknown): obj is Vector =>
|
|
|
20
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
19
|
(obj as any).x !== undefined && (obj as any).y !== undefined;
|
|
22
20
|
|
|
23
|
-
const processValue = (
|
|
24
|
-
if (
|
|
25
|
-
|
|
21
|
+
const processValue = (values: number[], value: Uniform) => {
|
|
22
|
+
if (typeof value === "number") {
|
|
23
|
+
values.push(value);
|
|
24
|
+
} else if (Array.isArray(value)) {
|
|
25
|
+
value.forEach((v) => processValue(values, v));
|
|
26
|
+
} else if (isVector(value)) {
|
|
27
|
+
values.push(value.x, value.y);
|
|
28
|
+
} else if (value instanceof Float32Array) {
|
|
29
|
+
values.push(...value);
|
|
26
30
|
}
|
|
27
|
-
return value;
|
|
28
31
|
};
|
|
29
32
|
|
|
30
33
|
export const processUniforms = (
|
|
@@ -32,34 +35,25 @@ export const processUniforms = (
|
|
|
32
35
|
uniforms: Uniforms,
|
|
33
36
|
builder?: SkRuntimeShaderBuilder
|
|
34
37
|
) => {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
.
|
|
53
|
-
|
|
54
|
-
const unusedUniform = names
|
|
55
|
-
.map((name) => {
|
|
56
|
-
if (usedUniforms.indexOf(name) === -1) {
|
|
57
|
-
return name;
|
|
58
|
-
}
|
|
59
|
-
return null;
|
|
60
|
-
})
|
|
61
|
-
.filter((n) => n !== null);
|
|
62
|
-
console.warn("Unused uniforms were provided: " + unusedUniform.join(", "));
|
|
38
|
+
const result: number[] = [];
|
|
39
|
+
const uniformsCount = source.getUniformCount();
|
|
40
|
+
for (let i = 0; i < uniformsCount; i++) {
|
|
41
|
+
const name = source.getUniformName(i);
|
|
42
|
+
const value = uniforms[name];
|
|
43
|
+
if (!value === undefined) {
|
|
44
|
+
throw new Error(
|
|
45
|
+
// eslint-disable-next-line max-len
|
|
46
|
+
`The runtime effect has the uniform value "${name}" declared, but it is missing from the uniforms property of the Runtime effect.`
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
if (builder === undefined) {
|
|
50
|
+
processValue(result, value);
|
|
51
|
+
} else {
|
|
52
|
+
const uniformValue: number[] = [];
|
|
53
|
+
processValue(uniformValue, value);
|
|
54
|
+
builder.setUniform(name, uniformValue);
|
|
55
|
+
result.push(...uniformValue);
|
|
56
|
+
}
|
|
63
57
|
}
|
|
64
|
-
return
|
|
58
|
+
return result;
|
|
65
59
|
};
|
|
@@ -11,10 +11,14 @@ export class JsiSkRuntimeEffect
|
|
|
11
11
|
extends HostObject<RuntimeEffect, "RuntimeEffect">
|
|
12
12
|
implements SkRuntimeEffect
|
|
13
13
|
{
|
|
14
|
-
constructor(CanvasKit: CanvasKit, ref: RuntimeEffect) {
|
|
14
|
+
constructor(CanvasKit: CanvasKit, ref: RuntimeEffect, private sksl: string) {
|
|
15
15
|
super(CanvasKit, ref, "RuntimeEffect");
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
source() {
|
|
19
|
+
return this.sksl;
|
|
20
|
+
}
|
|
21
|
+
|
|
18
22
|
makeShader(uniforms: number[], localMatrix?: SkMatrix) {
|
|
19
23
|
return new JsiSkShader(
|
|
20
24
|
this.CanvasKit,
|