@shopify/react-native-skia 0.1.164 → 0.1.166
Sign up to get free protection for your applications and to get access to all the features.
- 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,
|