@shopify/react-native-skia 0.1.227 → 0.1.228
Sign up to get free protection for your applications and to get access to all the features.
- package/cpp/api/JsiSkCanvas.h +2 -1
- package/cpp/api/JsiSkMatrix.h +27 -11
- package/cpp/api/JsiSkTypeface.h +1 -0
- package/cpp/rnskia/dom/props/MatrixProp.h +14 -3
- package/lib/commonjs/dom/types/Common.d.ts +2 -2
- package/lib/commonjs/dom/types/Common.js.map +1 -1
- package/lib/commonjs/external/reanimated/interpolators.d.ts +1 -0
- package/lib/commonjs/external/reanimated/interpolators.js +16 -3
- package/lib/commonjs/external/reanimated/interpolators.js.map +1 -1
- package/lib/commonjs/external/reanimated/moduleWrapper.d.ts +2 -1
- package/lib/commonjs/external/reanimated/moduleWrapper.js +9 -7
- package/lib/commonjs/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/commonjs/skia/core/Vector.d.ts +0 -5
- package/lib/commonjs/skia/core/Vector.js +1 -17
- package/lib/commonjs/skia/core/Vector.js.map +1 -1
- package/lib/commonjs/skia/types/Matrix.d.ts +2 -13
- package/lib/commonjs/skia/types/Matrix.js +1 -16
- package/lib/commonjs/skia/types/Matrix.js.map +1 -1
- package/lib/commonjs/skia/types/Matrix4.d.ts +51 -0
- package/lib/commonjs/skia/types/Matrix4.js +111 -12
- package/lib/commonjs/skia/types/Matrix4.js.map +1 -1
- package/lib/commonjs/skia/web/Host.d.ts +2 -3
- package/lib/commonjs/skia/web/Host.js +4 -12
- package/lib/commonjs/skia/web/Host.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.js +12 -12
- package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkColorFilterFactory.js +1 -1
- package/lib/commonjs/skia/web/JsiSkColorFilterFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkFont.js +2 -2
- package/lib/commonjs/skia/web/JsiSkFont.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImage.js +6 -6
- package/lib/commonjs/skia/web/JsiSkImage.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImageFactory.js +2 -2
- package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImageFilterFactory.js +3 -3
- package/lib/commonjs/skia/web/JsiSkImageFilterFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkMaskFilterFactory.js +1 -1
- package/lib/commonjs/skia/web/JsiSkMaskFilterFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkMatrix.d.ts +2 -2
- package/lib/commonjs/skia/web/JsiSkMatrix.js +6 -1
- package/lib/commonjs/skia/web/JsiSkMatrix.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPaint.js +3 -3
- package/lib/commonjs/skia/web/JsiSkPaint.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPath.js +4 -4
- package/lib/commonjs/skia/web/JsiSkPath.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPathEffectFactory.js +1 -1
- package/lib/commonjs/skia/web/JsiSkPathEffectFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPathFactory.js +1 -1
- package/lib/commonjs/skia/web/JsiSkPathFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPicture.js +1 -1
- package/lib/commonjs/skia/web/JsiSkPicture.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkShaderFactory.js +5 -5
- package/lib/commonjs/skia/web/JsiSkShaderFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkVerticesFactory.js +3 -3
- package/lib/commonjs/skia/web/JsiSkVerticesFactory.js.map +1 -1
- package/lib/module/dom/types/Common.d.ts +2 -2
- package/lib/module/dom/types/Common.js.map +1 -1
- package/lib/module/external/reanimated/interpolators.d.ts +1 -0
- package/lib/module/external/reanimated/interpolators.js +14 -4
- package/lib/module/external/reanimated/interpolators.js.map +1 -1
- package/lib/module/external/reanimated/moduleWrapper.d.ts +2 -1
- package/lib/module/external/reanimated/moduleWrapper.js +7 -6
- package/lib/module/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/module/skia/core/Vector.d.ts +0 -5
- package/lib/module/skia/core/Vector.js +0 -13
- package/lib/module/skia/core/Vector.js.map +1 -1
- package/lib/module/skia/types/Matrix.d.ts +2 -13
- package/lib/module/skia/types/Matrix.js +0 -14
- package/lib/module/skia/types/Matrix.js.map +1 -1
- package/lib/module/skia/types/Matrix4.d.ts +51 -0
- package/lib/module/skia/types/Matrix4.js +90 -16
- package/lib/module/skia/types/Matrix4.js.map +1 -1
- package/lib/module/skia/web/Host.d.ts +2 -3
- package/lib/module/skia/web/Host.js +2 -7
- package/lib/module/skia/web/Host.js.map +1 -1
- package/lib/module/skia/web/JsiSkCanvas.js +13 -13
- package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/module/skia/web/JsiSkColorFilterFactory.js +2 -2
- package/lib/module/skia/web/JsiSkColorFilterFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkFont.js +3 -3
- package/lib/module/skia/web/JsiSkFont.js.map +1 -1
- package/lib/module/skia/web/JsiSkImage.js +7 -7
- package/lib/module/skia/web/JsiSkImage.js.map +1 -1
- package/lib/module/skia/web/JsiSkImageFactory.js +3 -3
- package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkImageFilterFactory.js +4 -4
- package/lib/module/skia/web/JsiSkImageFilterFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkMaskFilterFactory.js +2 -2
- package/lib/module/skia/web/JsiSkMaskFilterFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkMatrix.d.ts +2 -2
- package/lib/module/skia/web/JsiSkMatrix.js +6 -1
- package/lib/module/skia/web/JsiSkMatrix.js.map +1 -1
- package/lib/module/skia/web/JsiSkPaint.js +4 -4
- package/lib/module/skia/web/JsiSkPaint.js.map +1 -1
- package/lib/module/skia/web/JsiSkPath.js +5 -5
- package/lib/module/skia/web/JsiSkPath.js.map +1 -1
- package/lib/module/skia/web/JsiSkPathEffectFactory.js +2 -2
- package/lib/module/skia/web/JsiSkPathEffectFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkPathFactory.js +2 -2
- package/lib/module/skia/web/JsiSkPathFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkPicture.js +2 -2
- package/lib/module/skia/web/JsiSkPicture.js.map +1 -1
- package/lib/module/skia/web/JsiSkShaderFactory.js +6 -6
- package/lib/module/skia/web/JsiSkShaderFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkVerticesFactory.js +2 -2
- package/lib/module/skia/web/JsiSkVerticesFactory.js.map +1 -1
- package/lib/typescript/src/dom/types/Common.d.ts +2 -2
- package/lib/typescript/src/external/reanimated/interpolators.d.ts +1 -0
- package/lib/typescript/src/external/reanimated/moduleWrapper.d.ts +2 -1
- package/lib/typescript/src/skia/core/Vector.d.ts +0 -5
- package/lib/typescript/src/skia/types/Matrix.d.ts +2 -13
- package/lib/typescript/src/skia/types/Matrix4.d.ts +51 -0
- package/lib/typescript/src/skia/web/Host.d.ts +2 -3
- package/lib/typescript/src/skia/web/JsiSkMatrix.d.ts +2 -2
- package/package.json +2 -1
- package/src/dom/types/Common.ts +3 -1
- package/src/external/reanimated/interpolators.ts +20 -5
- package/src/external/reanimated/moduleWrapper.ts +6 -0
- package/src/skia/core/Vector.ts +0 -7
- package/src/skia/types/Matrix.ts +2 -13
- package/src/skia/types/Matrix4.ts +96 -18
- package/src/skia/web/Host.ts +4 -3
- package/src/skia/web/JsiSkCanvas.ts +22 -15
- package/src/skia/web/JsiSkColorFilterFactory.ts +5 -2
- package/src/skia/web/JsiSkFont.ts +3 -3
- package/src/skia/web/JsiSkImage.ts +14 -11
- package/src/skia/web/JsiSkImageFactory.ts +3 -3
- package/src/skia/web/JsiSkImageFilterFactory.ts +5 -5
- package/src/skia/web/JsiSkMaskFilterFactory.ts +6 -2
- package/src/skia/web/JsiSkMatrix.ts +12 -3
- package/src/skia/web/JsiSkPaint.ts +4 -4
- package/src/skia/web/JsiSkPath.ts +8 -5
- package/src/skia/web/JsiSkPathEffectFactory.ts +2 -2
- package/src/skia/web/JsiSkPathFactory.ts +2 -2
- package/src/skia/web/JsiSkPicture.ts +4 -4
- package/src/skia/web/JsiSkShaderFactory.ts +6 -6
- package/src/skia/web/JsiSkVerticesFactory.ts +2 -2
package/cpp/api/JsiSkCanvas.h
CHANGED
@@ -37,6 +37,7 @@
|
|
37
37
|
#pragma clang diagnostic pop
|
38
38
|
|
39
39
|
namespace RNSkia {
|
40
|
+
|
40
41
|
namespace jsi = facebook::jsi;
|
41
42
|
|
42
43
|
class JsiSkCanvas : public JsiSkHostObject {
|
@@ -524,7 +525,7 @@ public:
|
|
524
525
|
if (!_canvas->readPixels(*info, bfrPtr, bytesPerRow, srcX, srcY)) {
|
525
526
|
return jsi::Value::null();
|
526
527
|
}
|
527
|
-
return
|
528
|
+
return dest;
|
528
529
|
}
|
529
530
|
|
530
531
|
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkCanvas, drawPaint),
|
package/cpp/api/JsiSkMatrix.h
CHANGED
@@ -27,17 +27,33 @@ public:
|
|
27
27
|
static SkMatrix getMatrix(jsi::Runtime &runtime, const jsi::Value &value) {
|
28
28
|
const auto &object = value.asObject(runtime);
|
29
29
|
const auto &array = object.asArray(runtime);
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
30
|
+
if (array.size(runtime) == 9) {
|
31
|
+
auto scaleX = array.getValueAtIndex(runtime, 0).asNumber();
|
32
|
+
auto skewX = array.getValueAtIndex(runtime, 1).asNumber();
|
33
|
+
auto transX = array.getValueAtIndex(runtime, 2).asNumber();
|
34
|
+
auto skewY = array.getValueAtIndex(runtime, 3).asNumber();
|
35
|
+
auto scaleY = array.getValueAtIndex(runtime, 4).asNumber();
|
36
|
+
auto transY = array.getValueAtIndex(runtime, 5).asNumber();
|
37
|
+
auto pers0 = array.getValueAtIndex(runtime, 6).asNumber();
|
38
|
+
auto pers1 = array.getValueAtIndex(runtime, 7).asNumber();
|
39
|
+
auto pers2 = array.getValueAtIndex(runtime, 8).asNumber();
|
40
|
+
return SkMatrix::MakeAll(scaleX, skewX, transX, skewY, scaleY, transY,
|
41
|
+
pers0, pers1, pers2);
|
42
|
+
} else if (array.size(runtime) == 16) {
|
43
|
+
auto m11 = array.getValueAtIndex(runtime, 0).asNumber();
|
44
|
+
auto m12 = array.getValueAtIndex(runtime, 1).asNumber();
|
45
|
+
auto m14 = array.getValueAtIndex(runtime, 3).asNumber();
|
46
|
+
auto m21 = array.getValueAtIndex(runtime, 4).asNumber();
|
47
|
+
auto m22 = array.getValueAtIndex(runtime, 5).asNumber();
|
48
|
+
auto m24 = array.getValueAtIndex(runtime, 7).asNumber();
|
49
|
+
auto m41 = array.getValueAtIndex(runtime, 12).asNumber();
|
50
|
+
auto m42 = array.getValueAtIndex(runtime, 13).asNumber();
|
51
|
+
auto m44 = array.getValueAtIndex(runtime, 15).asNumber();
|
52
|
+
return SkMatrix::MakeAll(m11, m12, m14, m21, m22, m24, m41, m42, m44);
|
53
|
+
}
|
54
|
+
throw jsi::JSError(runtime,
|
55
|
+
"Expected array of length 9 or 16 for matrix, got " +
|
56
|
+
std::to_string(array.size(runtime)));
|
41
57
|
}
|
42
58
|
|
43
59
|
JSI_HOST_FUNCTION(concat) {
|
package/cpp/api/JsiSkTypeface.h
CHANGED
@@ -28,9 +28,20 @@ public:
|
|
28
28
|
} else if (_matrixProp->isSet()) {
|
29
29
|
auto values = _matrixProp->value().getAsArray();
|
30
30
|
auto m3 = std::make_shared<SkMatrix>();
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
if (values.size() == 9) {
|
32
|
+
for (size_t i = 0; i < values.size(); ++i) {
|
33
|
+
auto a = values[i];
|
34
|
+
m3->set(i, a.getAsNumber());
|
35
|
+
}
|
36
|
+
} else {
|
37
|
+
SkM44 m4;
|
38
|
+
for (size_t i = 0; i < values.size(); ++i) {
|
39
|
+
auto obj = values[i];
|
40
|
+
m4.setRC(i / 4, i % 4, obj.getAsNumber());
|
41
|
+
}
|
42
|
+
auto m = m4.asM33();
|
43
|
+
m3->setAll(m.rc(0, 0), m.rc(0, 1), m.rc(0, 2), m.rc(1, 0), m.rc(1, 1),
|
44
|
+
m.rc(1, 2), m.rc(2, 0), m.rc(2, 1), m.rc(2, 2));
|
34
45
|
}
|
35
46
|
setDerivedValue(m3);
|
36
47
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { ReactNode } from "react";
|
2
|
-
import type { BlendMode, Color, PaintStyle, SkMatrix, SkPaint, SkPath, SkRect, SkRRect, StrokeCap, StrokeJoin, Transforms3d, Vector } from "../../skia/types";
|
2
|
+
import type { BlendMode, Color, Matrix3, Matrix4, PaintStyle, SkMatrix, SkPaint, SkPath, SkRect, SkRRect, StrokeCap, StrokeJoin, Transforms3d, Vector } from "../../skia/types";
|
3
3
|
export type SkEnum<T> = Uncapitalize<keyof T extends string ? keyof T : never>;
|
4
4
|
export type PathDef = string | SkPath;
|
5
5
|
export type ClipDef = SkRRect | SkRect | PathDef;
|
@@ -36,7 +36,7 @@ export type CircleDef = PointCircleDef | ScalarCircleDef;
|
|
36
36
|
export interface TransformProps {
|
37
37
|
transform?: Transforms3d;
|
38
38
|
origin?: Vector;
|
39
|
-
matrix?: SkMatrix | number[];
|
39
|
+
matrix?: SkMatrix | Matrix4 | Matrix3 | number[];
|
40
40
|
}
|
41
41
|
export interface PaintProps extends ChildrenProps {
|
42
42
|
color?: Color;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["Common.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\n\nimport type {\n BlendMode,\n Color,\n PaintStyle,\n SkMatrix,\n SkPaint,\n SkPath,\n SkRect,\n SkRRect,\n StrokeCap,\n StrokeJoin,\n Transforms3d,\n Vector,\n} from \"../../skia/types\";\n\nexport type SkEnum<T> = Uncapitalize<keyof T extends string ? keyof T : never>;\n\nexport type PathDef = string | SkPath;\n\nexport type ClipDef = SkRRect | SkRect | PathDef;\n\nexport type Fit =\n | \"cover\"\n | \"contain\"\n | \"fill\"\n | \"fitHeight\"\n | \"fitWidth\"\n | \"none\"\n | \"scaleDown\";\n\nexport type Radius = number | Vector;\n\nexport interface ChildrenProps {\n children?: ReactNode | ReactNode[];\n}\n\nexport interface RectCtor {\n x?: number;\n y?: number;\n width: number;\n height: number;\n}\n\nexport interface RRectCtor extends RectCtor {\n r?: Radius;\n}\n\nexport type RectDef = RectCtor | { rect: SkRect };\nexport type RRectDef = RRectCtor | { rect: SkRRect };\n\nexport interface PointCircleDef {\n c?: Vector;\n r: number;\n}\n\nexport interface ScalarCircleDef {\n cx: number;\n cy: number;\n r: number;\n}\n\nexport type CircleDef = PointCircleDef | ScalarCircleDef;\n\nexport interface TransformProps {\n transform?: Transforms3d;\n origin?: Vector;\n matrix?: SkMatrix | number[];\n}\n\nexport interface PaintProps extends ChildrenProps {\n color?: Color;\n strokeWidth?: number;\n blendMode?: SkEnum<typeof BlendMode>;\n style?: SkEnum<typeof PaintStyle>;\n strokeJoin?: SkEnum<typeof StrokeJoin>;\n strokeCap?: SkEnum<typeof StrokeCap>;\n strokeMiter?: number;\n opacity?: number;\n antiAlias?: boolean;\n dither?: boolean;\n}\n\nexport interface GroupProps extends PaintProps, TransformProps {\n clip?: ClipDef;\n invertClip?: boolean;\n layer?: SkPaint | boolean;\n}\n"],"mappings":""}
|
1
|
+
{"version":3,"names":[],"sources":["Common.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\n\nimport type {\n BlendMode,\n Color,\n Matrix3,\n Matrix4,\n PaintStyle,\n SkMatrix,\n SkPaint,\n SkPath,\n SkRect,\n SkRRect,\n StrokeCap,\n StrokeJoin,\n Transforms3d,\n Vector,\n} from \"../../skia/types\";\n\nexport type SkEnum<T> = Uncapitalize<keyof T extends string ? keyof T : never>;\n\nexport type PathDef = string | SkPath;\n\nexport type ClipDef = SkRRect | SkRect | PathDef;\n\nexport type Fit =\n | \"cover\"\n | \"contain\"\n | \"fill\"\n | \"fitHeight\"\n | \"fitWidth\"\n | \"none\"\n | \"scaleDown\";\n\nexport type Radius = number | Vector;\n\nexport interface ChildrenProps {\n children?: ReactNode | ReactNode[];\n}\n\nexport interface RectCtor {\n x?: number;\n y?: number;\n width: number;\n height: number;\n}\n\nexport interface RRectCtor extends RectCtor {\n r?: Radius;\n}\n\nexport type RectDef = RectCtor | { rect: SkRect };\nexport type RRectDef = RRectCtor | { rect: SkRRect };\n\nexport interface PointCircleDef {\n c?: Vector;\n r: number;\n}\n\nexport interface ScalarCircleDef {\n cx: number;\n cy: number;\n r: number;\n}\n\nexport type CircleDef = PointCircleDef | ScalarCircleDef;\n\nexport interface TransformProps {\n transform?: Transforms3d;\n origin?: Vector;\n matrix?: SkMatrix | Matrix4 | Matrix3 | number[];\n}\n\nexport interface PaintProps extends ChildrenProps {\n color?: Color;\n strokeWidth?: number;\n blendMode?: SkEnum<typeof BlendMode>;\n style?: SkEnum<typeof PaintStyle>;\n strokeJoin?: SkEnum<typeof StrokeJoin>;\n strokeCap?: SkEnum<typeof StrokeCap>;\n strokeMiter?: number;\n opacity?: number;\n antiAlias?: boolean;\n dither?: boolean;\n}\n\nexport interface GroupProps extends PaintProps, TransformProps {\n clip?: ClipDef;\n invertClip?: boolean;\n layer?: SkPaint | boolean;\n}\n"],"mappings":""}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import type { ExtrapolationType, SharedValue } from "react-native-reanimated";
|
2
2
|
import type { SkPath, SkPoint } from "../../skia/types";
|
3
3
|
export declare const notifyChange: (value: SharedValue<unknown>) => void;
|
4
|
+
export declare const usePathValue: (cb: (path: SkPath) => void) => SharedValue<SkPath>;
|
4
5
|
export declare const useClock: () => SharedValue<number>;
|
5
6
|
export declare const usePathInterpolation: (value: SharedValue<number>, input: number[], outputRange: SkPath[], options?: ExtrapolationType) => SharedValue<SkPath>;
|
6
7
|
export declare const useVectorInterpolation: (value: SharedValue<number>, input: number[], outputRange: SkPoint[], options?: ExtrapolationType) => SharedValue<{
|
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.useVectorInterpolation = exports.usePathInterpolation = exports.useClock = exports.notifyChange = void 0;
|
6
|
+
exports.useVectorInterpolation = exports.usePathValue = exports.usePathInterpolation = exports.useClock = exports.notifyChange = void 0;
|
7
7
|
|
8
8
|
var _react = require("react");
|
9
9
|
|
@@ -24,13 +24,26 @@ const notifyChange = value => {
|
|
24
24
|
|
25
25
|
exports.notifyChange = notifyChange;
|
26
26
|
|
27
|
+
const usePathValue = cb => {
|
28
|
+
const pathInit = (0, _react.useMemo)(() => _skia.Skia.Path.Make(), []);
|
29
|
+
const path = (0, _moduleWrapper.useSharedValue)(pathInit);
|
30
|
+
(0, _moduleWrapper.useDerivedValue)(() => {
|
31
|
+
path.value.reset();
|
32
|
+
cb(path.value);
|
33
|
+
notifyChange(path);
|
34
|
+
});
|
35
|
+
return path;
|
36
|
+
};
|
37
|
+
|
38
|
+
exports.usePathValue = usePathValue;
|
39
|
+
|
27
40
|
const useClock = () => {
|
28
41
|
const clock = (0, _moduleWrapper.useSharedValue)(0);
|
29
|
-
const callback = (0, _react.
|
42
|
+
const callback = (0, _react.useCallback)(info => {
|
30
43
|
"worklet";
|
31
44
|
|
32
45
|
clock.value = info.timeSinceFirstFrame;
|
33
|
-
})
|
46
|
+
}, [clock]);
|
34
47
|
(0, _moduleWrapper.useFrameCallback)(callback);
|
35
48
|
return clock;
|
36
49
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["notifyChange","value","_WORKLET","_value","
|
1
|
+
{"version":3,"names":["notifyChange","value","_WORKLET","_value","usePathValue","cb","pathInit","useMemo","Skia","Path","Make","path","useSharedValue","useDerivedValue","reset","useClock","clock","callback","useCallback","info","timeSinceFirstFrame","useFrameCallback","useInterpolator","factory","interpolator","input","output","options","init","result","useAnimatedReaction","val","usePathInterpolation","outputRange","interpolatePaths","useVectorInterpolation","Point","interpolateVector"],"sources":["interpolators.ts"],"sourcesContent":["import type {\n ExtrapolationType,\n FrameInfo,\n SharedValue,\n} from \"react-native-reanimated\";\nimport { useCallback, useMemo } from \"react\";\n\nimport type { SkPath, SkPoint } from \"../../skia/types\";\nimport { interpolatePaths, interpolateVector } from \"../../animation\";\nimport { Skia } from \"../../skia\";\n\nimport {\n useAnimatedReaction,\n useFrameCallback,\n useSharedValue,\n useDerivedValue,\n} from \"./moduleWrapper\";\n\nexport const notifyChange = (value: SharedValue<unknown>) => {\n \"worklet\";\n if (_WORKLET) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (value as any)._value = value.value;\n }\n};\n\nexport const usePathValue = (cb: (path: SkPath) => void) => {\n const pathInit = useMemo(() => Skia.Path.Make(), []);\n const path = useSharedValue(pathInit);\n useDerivedValue(() => {\n path.value.reset();\n cb(path.value);\n notifyChange(path);\n });\n return path;\n};\n\nexport const useClock = () => {\n const clock = useSharedValue(0);\n const callback = useCallback(\n (info: FrameInfo) => {\n \"worklet\";\n clock.value = info.timeSinceFirstFrame;\n },\n [clock]\n );\n useFrameCallback(callback);\n return clock;\n};\n\n/**\n * @worklet\n */\ntype Interpolator<T> = (\n value: number,\n input: number[],\n output: T[],\n options: ExtrapolationType,\n result: T\n) => T;\n\nconst useInterpolator = <T>(\n factory: () => T,\n value: SharedValue<number>,\n interpolator: Interpolator<T>,\n input: number[],\n output: T[],\n options?: ExtrapolationType\n) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const init = useMemo(() => factory(), []);\n const result = useSharedValue(init);\n useAnimatedReaction(\n () => value.value,\n (val) => {\n result.value = interpolator(val, input, output, options, result.value);\n notifyChange(result);\n },\n [input, output, options]\n );\n return result;\n};\n\nexport const usePathInterpolation = (\n value: SharedValue<number>,\n input: number[],\n outputRange: SkPath[],\n options?: ExtrapolationType\n) =>\n useInterpolator(\n () => Skia.Path.Make(),\n value,\n interpolatePaths,\n input,\n outputRange,\n options\n );\n\nexport const useVectorInterpolation = (\n value: SharedValue<number>,\n input: number[],\n outputRange: SkPoint[],\n options?: ExtrapolationType\n) =>\n useInterpolator(\n () => Skia.Point(0, 0),\n value,\n interpolateVector,\n input,\n outputRange,\n options\n );\n"],"mappings":";;;;;;;AAKA;;AAGA;;AACA;;AAEA;;AAOO,MAAMA,YAAY,GAAIC,KAAD,IAAiC;EAC3D;;EACA,IAAIC,QAAJ,EAAc;IACZ;IACCD,KAAD,CAAeE,MAAf,GAAwBF,KAAK,CAACA,KAA9B;EACD;AACF,CANM;;;;AAQA,MAAMG,YAAY,GAAIC,EAAD,IAAgC;EAC1D,MAAMC,QAAQ,GAAG,IAAAC,cAAA,EAAQ,MAAMC,UAAA,CAAKC,IAAL,CAAUC,IAAV,EAAd,EAAgC,EAAhC,CAAjB;EACA,MAAMC,IAAI,GAAG,IAAAC,6BAAA,EAAeN,QAAf,CAAb;EACA,IAAAO,8BAAA,EAAgB,MAAM;IACpBF,IAAI,CAACV,KAAL,CAAWa,KAAX;IACAT,EAAE,CAACM,IAAI,CAACV,KAAN,CAAF;IACAD,YAAY,CAACW,IAAD,CAAZ;EACD,CAJD;EAKA,OAAOA,IAAP;AACD,CATM;;;;AAWA,MAAMI,QAAQ,GAAG,MAAM;EAC5B,MAAMC,KAAK,GAAG,IAAAJ,6BAAA,EAAe,CAAf,CAAd;EACA,MAAMK,QAAQ,GAAG,IAAAC,kBAAA,EACdC,IAAD,IAAqB;IACnB;;IACAH,KAAK,CAACf,KAAN,GAAckB,IAAI,CAACC,mBAAnB;EACD,CAJc,EAKf,CAACJ,KAAD,CALe,CAAjB;EAOA,IAAAK,+BAAA,EAAiBJ,QAAjB;EACA,OAAOD,KAAP;AACD,CAXM;AAaP;AACA;AACA;;;;;AASA,MAAMM,eAAe,GAAG,CACtBC,OADsB,EAEtBtB,KAFsB,EAGtBuB,YAHsB,EAItBC,KAJsB,EAKtBC,MALsB,EAMtBC,OANsB,KAOnB;EACH;EACA,MAAMC,IAAI,GAAG,IAAArB,cAAA,EAAQ,MAAMgB,OAAO,EAArB,EAAyB,EAAzB,CAAb;EACA,MAAMM,MAAM,GAAG,IAAAjB,6BAAA,EAAegB,IAAf,CAAf;EACA,IAAAE,kCAAA,EACE,MAAM7B,KAAK,CAACA,KADd,EAEG8B,GAAD,IAAS;IACPF,MAAM,CAAC5B,KAAP,GAAeuB,YAAY,CAACO,GAAD,EAAMN,KAAN,EAAaC,MAAb,EAAqBC,OAArB,EAA8BE,MAAM,CAAC5B,KAArC,CAA3B;IACAD,YAAY,CAAC6B,MAAD,CAAZ;EACD,CALH,EAME,CAACJ,KAAD,EAAQC,MAAR,EAAgBC,OAAhB,CANF;EAQA,OAAOE,MAAP;AACD,CApBD;;AAsBO,MAAMG,oBAAoB,GAAG,CAClC/B,KADkC,EAElCwB,KAFkC,EAGlCQ,WAHkC,EAIlCN,OAJkC,KAMlCL,eAAe,CACb,MAAMd,UAAA,CAAKC,IAAL,CAAUC,IAAV,EADO,EAEbT,KAFa,EAGbiC,2BAHa,EAIbT,KAJa,EAKbQ,WALa,EAMbN,OANa,CANV;;;;AAeA,MAAMQ,sBAAsB,GAAG,CACpClC,KADoC,EAEpCwB,KAFoC,EAGpCQ,WAHoC,EAIpCN,OAJoC,KAMpCL,eAAe,CACb,MAAMd,UAAA,CAAK4B,KAAL,CAAW,CAAX,EAAc,CAAd,CADO,EAEbnC,KAFa,EAGboC,4BAHa,EAIbZ,KAJa,EAKbQ,WALa,EAMbN,OANa,CANV"}
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import type { DependencyList } from "react";
|
2
|
-
import type { FrameCallback, FrameInfo, SharedValue } from "react-native-reanimated";
|
2
|
+
import type { DerivedValue, FrameCallback, FrameInfo, SharedValue } from "react-native-reanimated";
|
3
3
|
export declare const HAS_REANIMATED2: boolean;
|
4
4
|
export declare const HAS_REANIMATED3: boolean;
|
5
5
|
export declare function throwOnMissingReanimated(): void;
|
6
6
|
export declare const useSharedValue: <T>(init: T, oneWayReadsOnly?: boolean) => SharedValue<T>;
|
7
|
+
export declare const useDerivedValue: <T>(processor: () => T, dependencies?: DependencyList) => DerivedValue<T>;
|
7
8
|
export declare const useFrameCallback: (callback: (frameInfo: FrameInfo) => void, autostart?: boolean) => FrameCallback;
|
8
9
|
export declare const startMapper: (worklet: () => void, inputs?: unknown[], outputs?: unknown[]) => number;
|
9
10
|
export declare const stopMapper: (mapperID: number) => void;
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.stopMapper = exports.startMapper = exports.runOnJS = exports.isSharedValue = exports.HAS_REANIMATED3 = exports.HAS_REANIMATED2 = void 0;
|
7
7
|
exports.throwOnMissingReanimated = throwOnMissingReanimated;
|
8
|
-
exports.useSharedValue = exports.useFrameCallback = exports.useAnimatedReaction = void 0;
|
8
|
+
exports.useSharedValue = exports.useFrameCallback = exports.useDerivedValue = exports.useAnimatedReaction = void 0;
|
9
9
|
|
10
|
-
var _Reanimated, _Reanimated2, _Reanimated3, _Reanimated4, _Reanimated5, _Reanimated6;
|
10
|
+
var _Reanimated, _Reanimated2, _Reanimated3, _Reanimated4, _Reanimated5, _Reanimated6, _Reanimated7;
|
11
11
|
|
12
12
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
13
13
|
// This one is needed for the deprecated useSharedValue function
|
@@ -39,15 +39,17 @@ function throwOnMissingReanimated() {
|
|
39
39
|
|
40
40
|
const useSharedValue = ((_Reanimated = Reanimated2) === null || _Reanimated === void 0 ? void 0 : _Reanimated.useSharedValue) || throwOnMissingReanimated;
|
41
41
|
exports.useSharedValue = useSharedValue;
|
42
|
-
const
|
42
|
+
const useDerivedValue = ((_Reanimated2 = Reanimated2) === null || _Reanimated2 === void 0 ? void 0 : _Reanimated2.useDerivedValue) || throwOnMissingReanimated;
|
43
|
+
exports.useDerivedValue = useDerivedValue;
|
44
|
+
const useFrameCallback = ((_Reanimated3 = Reanimated2) === null || _Reanimated3 === void 0 ? void 0 : _Reanimated3.useFrameCallback) || throwOnMissingReanimated;
|
43
45
|
exports.useFrameCallback = useFrameCallback;
|
44
|
-
const startMapper = ((
|
46
|
+
const startMapper = ((_Reanimated4 = Reanimated2) === null || _Reanimated4 === void 0 ? void 0 : _Reanimated4.startMapper) || throwOnMissingReanimated;
|
45
47
|
exports.startMapper = startMapper;
|
46
|
-
const stopMapper = ((
|
48
|
+
const stopMapper = ((_Reanimated5 = Reanimated2) === null || _Reanimated5 === void 0 ? void 0 : _Reanimated5.stopMapper) || throwOnMissingReanimated;
|
47
49
|
exports.stopMapper = stopMapper;
|
48
|
-
const runOnJS = ((
|
50
|
+
const runOnJS = ((_Reanimated6 = Reanimated2) === null || _Reanimated6 === void 0 ? void 0 : _Reanimated6.runOnJS) || throwOnMissingReanimated;
|
49
51
|
exports.runOnJS = runOnJS;
|
50
|
-
const useAnimatedReaction = ((
|
52
|
+
const useAnimatedReaction = ((_Reanimated7 = Reanimated2) === null || _Reanimated7 === void 0 ? void 0 : _Reanimated7.useAnimatedReaction) || throwOnMissingReanimated;
|
51
53
|
exports.useAnimatedReaction = useAnimatedReaction;
|
52
54
|
|
53
55
|
const isSharedValue = value => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Reanimated2","Reanimated3","reanimatedVersion","require","version","includes","e","HAS_REANIMATED2","HAS_REANIMATED3","throwOnMissingReanimated","Error","useSharedValue","useFrameCallback","startMapper","stopMapper","runOnJS","useAnimatedReaction","isSharedValue","value","undefined"],"sources":["moduleWrapper.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DependencyList } from \"react\";\nimport type {\n FrameCallback,\n FrameInfo,\n SharedValue,\n} from \"react-native-reanimated\";\n\n// This one is needed for the deprecated useSharedValue function\n// We can remove it once we remove the deprecation\n\nlet Reanimated2: any;\n\nlet Reanimated3: any;\nlet reanimatedVersion: string;\n\ntry {\n Reanimated2 = require(\"react-native-reanimated\");\n reanimatedVersion = require(\"react-native-reanimated/package.json\").version;\n if (\n reanimatedVersion &&\n (reanimatedVersion >= \"3.0.0\" || reanimatedVersion.includes(\"3.0.0-\"))\n ) {\n Reanimated3 = Reanimated2;\n }\n} catch (e) {}\n\nexport const HAS_REANIMATED2 = !!Reanimated2;\nexport const HAS_REANIMATED3 = !!Reanimated3;\n\nexport function throwOnMissingReanimated() {\n if (!HAS_REANIMATED2) {\n throw new Error(\n \"Reanimated was not found, make sure react-native-reanimated package is installed if you want to use \\\n react-native-skia's integration layer API.\"\n );\n }\n}\n\nexport const useSharedValue: <T>(\n init: T,\n oneWayReadsOnly?: boolean\n) => SharedValue<T> = Reanimated2?.useSharedValue || throwOnMissingReanimated;\n\nexport const useFrameCallback: (\n callback: (frameInfo: FrameInfo) => void,\n autostart?: boolean\n) => FrameCallback = Reanimated2?.useFrameCallback || throwOnMissingReanimated;\n\nexport const startMapper: (\n worklet: () => void,\n inputs?: unknown[],\n outputs?: unknown[]\n) => number = Reanimated2?.startMapper || throwOnMissingReanimated;\n\nexport const stopMapper: (mapperID: number) => void =\n Reanimated2?.stopMapper || throwOnMissingReanimated;\n\nexport const runOnJS = Reanimated2?.runOnJS || throwOnMissingReanimated;\n\nexport const useAnimatedReaction: <T>(\n prepare: () => T,\n react: (v: T) => void,\n dependencies?: DependencyList\n) => void = Reanimated2?.useAnimatedReaction || throwOnMissingReanimated;\n\nexport const isSharedValue = <T>(value: unknown): value is SharedValue<T> => {\n return (\n !!value &&\n (Reanimated3\n ? Reanimated3.isSharedValue(value)\n : (value as any).value !== undefined)\n );\n};\n"],"mappings":";;;;;;;;;;;AAAA;
|
1
|
+
{"version":3,"names":["Reanimated2","Reanimated3","reanimatedVersion","require","version","includes","e","HAS_REANIMATED2","HAS_REANIMATED3","throwOnMissingReanimated","Error","useSharedValue","useDerivedValue","useFrameCallback","startMapper","stopMapper","runOnJS","useAnimatedReaction","isSharedValue","value","undefined"],"sources":["moduleWrapper.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DependencyList } from \"react\";\nimport type {\n DerivedValue,\n FrameCallback,\n FrameInfo,\n SharedValue,\n} from \"react-native-reanimated\";\n\n// This one is needed for the deprecated useSharedValue function\n// We can remove it once we remove the deprecation\n\nlet Reanimated2: any;\n\nlet Reanimated3: any;\nlet reanimatedVersion: string;\n\ntry {\n Reanimated2 = require(\"react-native-reanimated\");\n reanimatedVersion = require(\"react-native-reanimated/package.json\").version;\n if (\n reanimatedVersion &&\n (reanimatedVersion >= \"3.0.0\" || reanimatedVersion.includes(\"3.0.0-\"))\n ) {\n Reanimated3 = Reanimated2;\n }\n} catch (e) {}\n\nexport const HAS_REANIMATED2 = !!Reanimated2;\nexport const HAS_REANIMATED3 = !!Reanimated3;\n\nexport function throwOnMissingReanimated() {\n if (!HAS_REANIMATED2) {\n throw new Error(\n \"Reanimated was not found, make sure react-native-reanimated package is installed if you want to use \\\n react-native-skia's integration layer API.\"\n );\n }\n}\n\nexport const useSharedValue: <T>(\n init: T,\n oneWayReadsOnly?: boolean\n) => SharedValue<T> = Reanimated2?.useSharedValue || throwOnMissingReanimated;\n\nexport const useDerivedValue: <T>(\n processor: () => T,\n dependencies?: DependencyList\n) => DerivedValue<T> = Reanimated2?.useDerivedValue || throwOnMissingReanimated;\n\nexport const useFrameCallback: (\n callback: (frameInfo: FrameInfo) => void,\n autostart?: boolean\n) => FrameCallback = Reanimated2?.useFrameCallback || throwOnMissingReanimated;\n\nexport const startMapper: (\n worklet: () => void,\n inputs?: unknown[],\n outputs?: unknown[]\n) => number = Reanimated2?.startMapper || throwOnMissingReanimated;\n\nexport const stopMapper: (mapperID: number) => void =\n Reanimated2?.stopMapper || throwOnMissingReanimated;\n\nexport const runOnJS = Reanimated2?.runOnJS || throwOnMissingReanimated;\n\nexport const useAnimatedReaction: <T>(\n prepare: () => T,\n react: (v: T) => void,\n dependencies?: DependencyList\n) => void = Reanimated2?.useAnimatedReaction || throwOnMissingReanimated;\n\nexport const isSharedValue = <T>(value: unknown): value is SharedValue<T> => {\n return (\n !!value &&\n (Reanimated3\n ? Reanimated3.isSharedValue(value)\n : (value as any).value !== undefined)\n );\n};\n"],"mappings":";;;;;;;;;;;AAAA;AASA;AACA;AAEA,IAAIA,WAAJ;AAEA,IAAIC,WAAJ;AACA,IAAIC,iBAAJ;;AAEA,IAAI;EACFF,WAAW,GAAGG,OAAO,CAAC,yBAAD,CAArB;EACAD,iBAAiB,GAAGC,OAAO,CAAC,sCAAD,CAAP,CAAgDC,OAApE;;EACA,IACEF,iBAAiB,KAChBA,iBAAiB,IAAI,OAArB,IAAgCA,iBAAiB,CAACG,QAAlB,CAA2B,QAA3B,CADhB,CADnB,EAGE;IACAJ,WAAW,GAAGD,WAAd;EACD;AACF,CATD,CASE,OAAOM,CAAP,EAAU,CAAE;;AAEP,MAAMC,eAAe,GAAG,CAAC,CAACP,WAA1B;;AACA,MAAMQ,eAAe,GAAG,CAAC,CAACP,WAA1B;;;AAEA,SAASQ,wBAAT,GAAoC;EACzC,IAAI,CAACF,eAAL,EAAsB;IACpB,MAAM,IAAIG,KAAJ,CACJ;AACN,iDAFU,CAAN;EAID;AACF;;AAEM,MAAMC,cAGM,GAAG,gBAAAX,WAAW,UAAX,kDAAaW,cAAb,KAA+BF,wBAH9C;;AAKA,MAAMG,eAGO,GAAG,iBAAAZ,WAAW,UAAX,oDAAaY,eAAb,KAAgCH,wBAHhD;;AAKA,MAAMI,gBAGK,GAAG,iBAAAb,WAAW,UAAX,oDAAaa,gBAAb,KAAiCJ,wBAH/C;;AAKA,MAAMK,WAIF,GAAG,iBAAAd,WAAW,UAAX,oDAAac,WAAb,KAA4BL,wBAJnC;;AAMA,MAAMM,UAAsC,GACjD,iBAAAf,WAAW,UAAX,oDAAae,UAAb,KAA2BN,wBADtB;;AAGA,MAAMO,OAAO,GAAG,iBAAAhB,WAAW,UAAX,oDAAagB,OAAb,KAAwBP,wBAAxC;;AAEA,MAAMQ,mBAIJ,GAAG,iBAAAjB,WAAW,UAAX,oDAAaiB,mBAAb,KAAoCR,wBAJzC;;;AAMA,MAAMS,aAAa,GAAOC,KAAJ,IAAgD;EAC3E,OACE,CAAC,CAACA,KAAF,KACClB,WAAW,GACRA,WAAW,CAACiB,aAAZ,CAA0BC,KAA1B,CADQ,GAEPA,KAAD,CAAeA,KAAf,KAAyBC,SAH7B,CADF;AAMD,CAPM"}
|
@@ -5,8 +5,3 @@ export declare const neg: (a: Vector) => import("../types").SkPoint;
|
|
5
5
|
export declare const add: (a: Vector, b: Vector) => import("../types").SkPoint;
|
6
6
|
export declare const sub: (a: Vector, b: Vector) => import("../types").SkPoint;
|
7
7
|
export declare const dist: (a: Vector, b: Vector) => number;
|
8
|
-
export declare const translate: ({ x, y, }: Vector) => [{
|
9
|
-
translateX: number;
|
10
|
-
}, {
|
11
|
-
translateY: number;
|
12
|
-
}];
|
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.vec = exports.
|
6
|
+
exports.vec = exports.sub = exports.point = exports.neg = exports.dist = exports.add = void 0;
|
7
7
|
|
8
8
|
var _Skia = require("../Skia");
|
9
9
|
|
@@ -50,20 +50,4 @@ const dist = (a, b) => {
|
|
50
50
|
};
|
51
51
|
|
52
52
|
exports.dist = dist;
|
53
|
-
|
54
|
-
const translate = _ref => {
|
55
|
-
"worklet";
|
56
|
-
|
57
|
-
let {
|
58
|
-
x,
|
59
|
-
y
|
60
|
-
} = _ref;
|
61
|
-
return [{
|
62
|
-
translateX: x
|
63
|
-
}, {
|
64
|
-
translateY: y
|
65
|
-
}];
|
66
|
-
};
|
67
|
-
|
68
|
-
exports.translate = translate;
|
69
53
|
//# sourceMappingURL=Vector.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["vec","x","y","Skia","Point","point","neg","a","add","b","sub","dist","Math","hypot"
|
1
|
+
{"version":3,"names":["vec","x","y","Skia","Point","point","neg","a","add","b","sub","dist","Math","hypot"],"sources":["Vector.ts"],"sourcesContent":["import { Skia } from \"../Skia\";\nimport type { Vector } from \"../types\";\n\nexport const vec = (x = 0, y?: number) => {\n \"worklet\";\n return Skia.Point(x, y ?? x);\n};\nexport const point = vec;\nexport const neg = (a: Vector) => {\n \"worklet\";\n return vec(-a.x, -a.y);\n};\nexport const add = (a: Vector, b: Vector) => {\n \"worklet\";\n return vec(a.x + b.x, a.y + b.y);\n};\nexport const sub = (a: Vector, b: Vector) => {\n \"worklet\";\n return vec(a.x - b.x, a.y - b.y);\n};\nexport const dist = (a: Vector, b: Vector) => {\n \"worklet\";\n return Math.hypot(a.x - b.x, a.y - b.y);\n};\n"],"mappings":";;;;;;;AAAA;;AAGO,MAAMA,GAAG,GAAG,YAAuB;EACxC;;EADwC,IAAtBC,CAAsB,uEAAlB,CAAkB;EAAA,IAAfC,CAAe;EAExC,OAAOC,UAAA,CAAKC,KAAL,CAAWH,CAAX,EAAcC,CAAC,IAAID,CAAnB,CAAP;AACD,CAHM;;;AAIA,MAAMI,KAAK,GAAGL,GAAd;;;AACA,MAAMM,GAAG,GAAIC,CAAD,IAAe;EAChC;;EACA,OAAOP,GAAG,CAAC,CAACO,CAAC,CAACN,CAAJ,EAAO,CAACM,CAAC,CAACL,CAAV,CAAV;AACD,CAHM;;;;AAIA,MAAMM,GAAG,GAAG,CAACD,CAAD,EAAYE,CAAZ,KAA0B;EAC3C;;EACA,OAAOT,GAAG,CAACO,CAAC,CAACN,CAAF,GAAMQ,CAAC,CAACR,CAAT,EAAYM,CAAC,CAACL,CAAF,GAAMO,CAAC,CAACP,CAApB,CAAV;AACD,CAHM;;;;AAIA,MAAMQ,GAAG,GAAG,CAACH,CAAD,EAAYE,CAAZ,KAA0B;EAC3C;;EACA,OAAOT,GAAG,CAACO,CAAC,CAACN,CAAF,GAAMQ,CAAC,CAACR,CAAT,EAAYM,CAAC,CAACL,CAAF,GAAMO,CAAC,CAACP,CAApB,CAAV;AACD,CAHM;;;;AAIA,MAAMS,IAAI,GAAG,CAACJ,CAAD,EAAYE,CAAZ,KAA0B;EAC5C;;EACA,OAAOG,IAAI,CAACC,KAAL,CAAWN,CAAC,CAACN,CAAF,GAAMQ,CAAC,CAACR,CAAnB,EAAsBM,CAAC,CAACL,CAAF,GAAMO,CAAC,CAACP,CAA9B,CAAP;AACD,CAHM"}
|
@@ -1,20 +1,9 @@
|
|
1
1
|
import type { SkJSIInstance } from "./JsiInstance";
|
2
2
|
import type { SkCanvas } from "./Canvas";
|
3
|
-
import type { Transforms3d } from "./Matrix4";
|
4
|
-
export declare enum MatrixIndex {
|
5
|
-
ScaleX = 0,
|
6
|
-
SkewX = 1,
|
7
|
-
TransX = 2,
|
8
|
-
SkewY = 3,
|
9
|
-
ScaleY = 4,
|
10
|
-
TransY = 5,
|
11
|
-
Persp0 = 6,
|
12
|
-
Persp1 = 7,
|
13
|
-
Persp2 = 8
|
14
|
-
}
|
3
|
+
import type { Matrix3, Matrix4, Transforms3d } from "./Matrix4";
|
15
4
|
export declare const isMatrix: (obj: unknown) => obj is SkMatrix;
|
16
5
|
export interface SkMatrix extends SkJSIInstance<"Matrix"> {
|
17
|
-
concat: (matrix: SkMatrix | number[]) => SkMatrix;
|
6
|
+
concat: (matrix: SkMatrix | Matrix4 | Matrix3 | number[]) => SkMatrix;
|
18
7
|
translate: (x: number, y: number) => SkMatrix;
|
19
8
|
scale: (x: number, y?: number) => SkMatrix;
|
20
9
|
skew: (x: number, y: number) => SkMatrix;
|
@@ -3,25 +3,10 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.toDegrees = exports.processTransform = exports.isMatrix =
|
6
|
+
exports.toDegrees = exports.processTransform = exports.isMatrix = void 0;
|
7
7
|
|
8
8
|
var _Matrix = require("./Matrix4");
|
9
9
|
|
10
|
-
let MatrixIndex;
|
11
|
-
exports.MatrixIndex = MatrixIndex;
|
12
|
-
|
13
|
-
(function (MatrixIndex) {
|
14
|
-
MatrixIndex[MatrixIndex["ScaleX"] = 0] = "ScaleX";
|
15
|
-
MatrixIndex[MatrixIndex["SkewX"] = 1] = "SkewX";
|
16
|
-
MatrixIndex[MatrixIndex["TransX"] = 2] = "TransX";
|
17
|
-
MatrixIndex[MatrixIndex["SkewY"] = 3] = "SkewY";
|
18
|
-
MatrixIndex[MatrixIndex["ScaleY"] = 4] = "ScaleY";
|
19
|
-
MatrixIndex[MatrixIndex["TransY"] = 5] = "TransY";
|
20
|
-
MatrixIndex[MatrixIndex["Persp0"] = 6] = "Persp0";
|
21
|
-
MatrixIndex[MatrixIndex["Persp1"] = 7] = "Persp1";
|
22
|
-
MatrixIndex[MatrixIndex["Persp2"] = 8] = "Persp2";
|
23
|
-
})(MatrixIndex || (exports.MatrixIndex = MatrixIndex = {}));
|
24
|
-
|
25
10
|
const isMatrix = obj => obj !== null && obj.__typename__ === "Matrix";
|
26
11
|
|
27
12
|
exports.isMatrix = isMatrix;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["
|
1
|
+
{"version":3,"names":["isMatrix","obj","__typename__","processTransform","m","transforms","m3","processTransform3d","concat","toDegrees","rad","Math","PI"],"sources":["Matrix.ts"],"sourcesContent":["import type { SkJSIInstance } from \"./JsiInstance\";\nimport type { SkCanvas } from \"./Canvas\";\nimport type { Matrix3, Matrix4, Transforms3d } from \"./Matrix4\";\nimport { processTransform3d } from \"./Matrix4\";\n\nexport const isMatrix = (obj: unknown): obj is SkMatrix =>\n obj !== null && (obj as SkJSIInstance<string>).__typename__ === \"Matrix\";\n\nexport interface SkMatrix extends SkJSIInstance<\"Matrix\"> {\n concat: (matrix: SkMatrix | Matrix4 | Matrix3 | number[]) => SkMatrix;\n translate: (x: number, y: number) => SkMatrix;\n scale: (x: number, y?: number) => SkMatrix;\n skew: (x: number, y: number) => SkMatrix;\n rotate: (theta: number) => SkMatrix;\n postTranslate: (x: number, y: number) => SkMatrix;\n postScale: (x: number, y?: number) => SkMatrix;\n postSkew: (x: number, y: number) => SkMatrix;\n postRotate: (theta: number) => SkMatrix;\n identity: () => SkMatrix;\n get: () => number[];\n}\n\nexport interface TransformProp {\n transform?: Transforms3d;\n}\n\nexport const processTransform = <T extends SkMatrix | SkCanvas>(\n m: T,\n transforms: Transforms3d\n) => {\n const m3 = processTransform3d(transforms);\n m.concat(m3);\n return m;\n};\n\nexport const toDegrees = (rad: number) => {\n return (rad * 180) / Math.PI;\n};\n"],"mappings":";;;;;;;AAGA;;AAEO,MAAMA,QAAQ,GAAIC,GAAD,IACtBA,GAAG,KAAK,IAAR,IAAiBA,GAAD,CAA+BC,YAA/B,KAAgD,QAD3D;;;;AAqBA,MAAMC,gBAAgB,GAAG,CAC9BC,CAD8B,EAE9BC,UAF8B,KAG3B;EACH,MAAMC,EAAE,GAAG,IAAAC,0BAAA,EAAmBF,UAAnB,CAAX;EACAD,CAAC,CAACI,MAAF,CAASF,EAAT;EACA,OAAOF,CAAP;AACD,CAPM;;;;AASA,MAAMK,SAAS,GAAIC,GAAD,IAAiB;EACxC,OAAQA,GAAG,GAAG,GAAP,GAAcC,IAAI,CAACC,EAA1B;AACD,CAFM"}
|
@@ -1,5 +1,20 @@
|
|
1
|
+
type Point = {
|
2
|
+
x: number;
|
3
|
+
y: number;
|
4
|
+
};
|
1
5
|
type Vec2 = readonly [number, number];
|
2
6
|
type Vec3 = readonly [number, number, number];
|
7
|
+
export type Matrix3 = readonly [
|
8
|
+
number,
|
9
|
+
number,
|
10
|
+
number,
|
11
|
+
number,
|
12
|
+
number,
|
13
|
+
number,
|
14
|
+
number,
|
15
|
+
number,
|
16
|
+
number
|
17
|
+
];
|
3
18
|
export type Matrix4 = readonly [
|
4
19
|
number,
|
5
20
|
number,
|
@@ -28,10 +43,46 @@ export type Transforms3d = Transform3d[];
|
|
28
43
|
* @worklet
|
29
44
|
*/
|
30
45
|
export declare const Matrix4: () => Matrix4;
|
46
|
+
/**
|
47
|
+
* @worklet
|
48
|
+
*/
|
49
|
+
export declare const translate: (x: number, y: number, z?: number) => Matrix4;
|
50
|
+
/**
|
51
|
+
* @worklet
|
52
|
+
*/
|
53
|
+
export declare const perspective: (p: number) => Matrix4;
|
31
54
|
/**
|
32
55
|
* @worklet
|
33
56
|
*/
|
34
57
|
export declare const mapPoint3d: (m: Matrix4, v: Vec3) => readonly [number, number, number];
|
58
|
+
/**
|
59
|
+
* @worklet
|
60
|
+
*/
|
61
|
+
export declare const multiply4: (a: Matrix4, b: Matrix4) => Matrix4;
|
62
|
+
/**
|
63
|
+
* @worklet
|
64
|
+
*/
|
65
|
+
export declare const toMatrix3: (m: Matrix4) => number[];
|
66
|
+
/**
|
67
|
+
* @worklet
|
68
|
+
*/
|
69
|
+
export declare const pivot: (m: Matrix4, p: Point) => Matrix4;
|
70
|
+
/**
|
71
|
+
* @worklet
|
72
|
+
*/
|
73
|
+
export declare const scale: (sx: number, sy: number, sz?: number, p?: Point) => Matrix4;
|
74
|
+
/**
|
75
|
+
* @worklet
|
76
|
+
*/
|
77
|
+
export declare const rotateZ: (value: number, p?: Point) => Matrix4;
|
78
|
+
/**
|
79
|
+
* @worklet
|
80
|
+
*/
|
81
|
+
export declare const rotateX: (value: number, p?: Point) => Matrix4;
|
82
|
+
/**
|
83
|
+
* @worklet
|
84
|
+
*/
|
85
|
+
export declare const rotateY: (value: number, p?: Point) => Matrix4;
|
35
86
|
/**
|
36
87
|
* @worklet
|
37
88
|
*/
|
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.processTransform3d = exports.mapPoint3d = exports.Matrix4 = void 0;
|
6
|
+
exports.translate = exports.toMatrix3 = exports.scale = exports.rotateZ = exports.rotateY = exports.rotateX = exports.processTransform3d = exports.pivot = exports.perspective = exports.multiply4 = exports.mapPoint3d = exports.Matrix4 = void 0;
|
7
7
|
|
8
8
|
const exhaustiveCheck = a => {
|
9
9
|
"worklet";
|
@@ -20,20 +20,25 @@ const Matrix4 = () => {
|
|
20
20
|
|
21
21
|
return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
|
22
22
|
};
|
23
|
+
/**
|
24
|
+
* @worklet
|
25
|
+
*/
|
26
|
+
|
23
27
|
|
24
28
|
exports.Matrix4 = Matrix4;
|
25
29
|
|
26
|
-
const translate = (x, y
|
30
|
+
const translate = function (x, y) {
|
27
31
|
"worklet";
|
28
32
|
|
33
|
+
let z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
29
34
|
return [1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1];
|
30
35
|
};
|
36
|
+
/**
|
37
|
+
* @worklet
|
38
|
+
*/
|
31
39
|
|
32
|
-
const scale = (sx, sy, sz) => {
|
33
|
-
"worklet";
|
34
40
|
|
35
|
-
|
36
|
-
};
|
41
|
+
exports.translate = translate;
|
37
42
|
|
38
43
|
const perspective = p => {
|
39
44
|
"worklet";
|
@@ -41,6 +46,8 @@ const perspective = p => {
|
|
41
46
|
return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, -1 / p, 1];
|
42
47
|
};
|
43
48
|
|
49
|
+
exports.perspective = perspective;
|
50
|
+
|
44
51
|
const normalizeVec = vec => {
|
45
52
|
"worklet";
|
46
53
|
|
@@ -66,12 +73,6 @@ const rotatedUnitSinCos = (axisVec, sinAngle, cosAngle) => {
|
|
66
73
|
return [t * x * x + c, t * x * y - s * z, t * x * z + s * y, 0, t * x * y + s * z, t * y * y + c, t * y * z - s * x, 0, t * x * z - s * y, t * y * z + s * x, t * z * z + c, 0, 0, 0, 0, 1];
|
67
74
|
};
|
68
75
|
|
69
|
-
const rotate = (axis, value) => {
|
70
|
-
"worklet";
|
71
|
-
|
72
|
-
return rotatedUnitSinCos(normalizeVec(axis), Math.sin(value), Math.cos(value));
|
73
|
-
};
|
74
|
-
|
75
76
|
const matrixVecMul4 = (m, v) => {
|
76
77
|
"worklet";
|
77
78
|
|
@@ -89,6 +90,10 @@ const mapPoint3d = (m, v) => {
|
|
89
90
|
const r = matrixVecMul4(m, [...v, 1]);
|
90
91
|
return [r[0] / r[3], r[1] / r[3], r[2] / r[3]];
|
91
92
|
};
|
93
|
+
/**
|
94
|
+
* @worklet
|
95
|
+
*/
|
96
|
+
|
92
97
|
|
93
98
|
exports.mapPoint3d = mapPoint3d;
|
94
99
|
|
@@ -106,6 +111,8 @@ const multiply4 = (a, b) => {
|
|
106
111
|
return result;
|
107
112
|
};
|
108
113
|
|
114
|
+
exports.multiply4 = multiply4;
|
115
|
+
|
109
116
|
const skewY = angle => {
|
110
117
|
"worklet";
|
111
118
|
|
@@ -117,17 +124,109 @@ const skewX = angle => {
|
|
117
124
|
|
118
125
|
return [1, 0, 0, 0, Math.tan(angle), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
|
119
126
|
};
|
127
|
+
/**
|
128
|
+
* @worklet
|
129
|
+
*/
|
130
|
+
|
120
131
|
|
121
132
|
const toMatrix3 = m => {
|
122
133
|
"worklet";
|
123
134
|
|
124
135
|
return [m[0], m[1], m[3], m[4], m[5], m[7], m[12], m[13], m[15]];
|
125
136
|
};
|
137
|
+
|
138
|
+
exports.toMatrix3 = toMatrix3;
|
139
|
+
|
140
|
+
const rotate = (axis, value) => {
|
141
|
+
"worklet";
|
142
|
+
|
143
|
+
return rotatedUnitSinCos(normalizeVec(axis), Math.sin(value), Math.cos(value));
|
144
|
+
};
|
145
|
+
/**
|
146
|
+
* @worklet
|
147
|
+
*/
|
148
|
+
|
149
|
+
|
150
|
+
const pivot = (m, p) => {
|
151
|
+
"worklet";
|
152
|
+
|
153
|
+
return multiply4(translate(p.x, p.y), multiply4(m, translate(-p.x, -p.y)));
|
154
|
+
};
|
155
|
+
/**
|
156
|
+
* @worklet
|
157
|
+
*/
|
158
|
+
|
159
|
+
|
160
|
+
exports.pivot = pivot;
|
161
|
+
|
162
|
+
const scale = function (sx, sy) {
|
163
|
+
"worklet";
|
164
|
+
|
165
|
+
let sz = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
166
|
+
let p = arguments.length > 3 ? arguments[3] : undefined;
|
167
|
+
const m4 = [sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1];
|
168
|
+
|
169
|
+
if (p) {
|
170
|
+
return pivot(m4, p);
|
171
|
+
}
|
172
|
+
|
173
|
+
return m4;
|
174
|
+
};
|
175
|
+
|
176
|
+
exports.scale = scale;
|
177
|
+
|
178
|
+
const rotateAxis = (axis, angle, p) => {
|
179
|
+
"worklet";
|
180
|
+
|
181
|
+
const result = rotate(axis, angle);
|
182
|
+
|
183
|
+
if (p) {
|
184
|
+
return pivot(result, p);
|
185
|
+
}
|
186
|
+
|
187
|
+
return result;
|
188
|
+
};
|
189
|
+
/**
|
190
|
+
* @worklet
|
191
|
+
*/
|
192
|
+
|
193
|
+
|
194
|
+
const rotateZ = (value, p) => {
|
195
|
+
"worklet";
|
196
|
+
|
197
|
+
return rotateAxis([0, 0, 1], value, p);
|
198
|
+
};
|
199
|
+
/**
|
200
|
+
* @worklet
|
201
|
+
*/
|
202
|
+
|
203
|
+
|
204
|
+
exports.rotateZ = rotateZ;
|
205
|
+
|
206
|
+
const rotateX = (value, p) => {
|
207
|
+
"worklet";
|
208
|
+
|
209
|
+
return rotateAxis([1, 0, 0], value, p);
|
210
|
+
};
|
126
211
|
/**
|
127
212
|
* @worklet
|
128
213
|
*/
|
129
214
|
|
130
215
|
|
216
|
+
exports.rotateX = rotateX;
|
217
|
+
|
218
|
+
const rotateY = (value, p) => {
|
219
|
+
"worklet";
|
220
|
+
|
221
|
+
return rotateAxis([0, 1, 0], value, p);
|
222
|
+
};
|
223
|
+
/**
|
224
|
+
* @worklet
|
225
|
+
*/
|
226
|
+
|
227
|
+
|
228
|
+
exports.rotateY = rotateY;
|
229
|
+
|
131
230
|
const processTransform3d = transforms => {
|
132
231
|
"worklet";
|
133
232
|
|