@shopify/react-native-skia 0.1.185 → 0.1.187
Sign up to get free protection for your applications and to get access to all the features.
- package/android/build.gradle +2 -1
- package/android/cpp/jni/JniPlatformContext.cpp +92 -3
- package/android/cpp/jni/include/JniPlatformContext.h +4 -0
- package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +8 -0
- package/android/src/main/java/com/shopify/reactnative/skia/PlatformContext.java +17 -1
- package/android/src/main/java/com/shopify/reactnative/skia/ViewScreenshotService.java +180 -0
- package/cpp/api/JsiSkFont.h +1 -1
- package/cpp/api/JsiSkHostObjects.h +1 -1
- package/cpp/api/JsiSkImage.h +1 -1
- package/cpp/api/JsiSkImageFactory.h +29 -0
- package/cpp/api/JsiSkPaint.h +7 -7
- package/cpp/api/JsiSkPathFactory.h +1 -1
- package/cpp/api/JsiSkPicture.h +2 -2
- package/cpp/api/JsiSkRuntimeEffect.h +3 -3
- package/cpp/api/JsiSkSVG.h +12 -2
- package/cpp/api/JsiSkShader.h +1 -1
- package/cpp/api/JsiSkSurface.h +3 -3
- package/cpp/api/JsiSkSurfaceFactory.h +1 -1
- package/cpp/api/JsiSkTypeface.h +1 -1
- package/cpp/rnskia/RNSkAnimation.h +3 -3
- package/cpp/rnskia/RNSkDomView.h +9 -9
- package/cpp/rnskia/RNSkInfoParameter.h +2 -2
- package/cpp/rnskia/RNSkJsView.h +8 -8
- package/cpp/rnskia/RNSkJsiViewApi.h +5 -5
- package/cpp/rnskia/RNSkPictureView.h +8 -8
- package/cpp/rnskia/RNSkPlatformContext.h +32 -3
- package/cpp/rnskia/RNSkValueApi.h +5 -5
- package/cpp/rnskia/RNSkView.h +6 -6
- package/cpp/rnskia/dom/base/ConcatablePaint.h +6 -6
- package/cpp/rnskia/dom/base/Declaration.h +1 -1
- package/cpp/rnskia/dom/base/DeclarationContext.h +7 -7
- package/cpp/rnskia/dom/base/DrawingContext.h +3 -3
- package/cpp/rnskia/dom/base/NodePropsContainer.h +1 -1
- package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +1 -1
- package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +1 -1
- package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +8 -7
- package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +1 -1
- package/cpp/rnskia/dom/nodes/JsiImageNode.h +5 -2
- package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +9 -9
- package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +1 -1
- package/cpp/rnskia/dom/nodes/JsiPathNode.h +1 -1
- package/cpp/rnskia/dom/nodes/JsiPointsNode.h +1 -1
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +7 -3
- package/cpp/rnskia/dom/nodes/JsiTextNode.h +5 -4
- package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +3 -1
- package/cpp/rnskia/dom/props/BlendModeProp.h +1 -1
- package/cpp/rnskia/dom/props/CircleProp.h +1 -1
- package/cpp/rnskia/dom/props/ClipProp.h +1 -1
- package/cpp/rnskia/dom/props/FontProp.h +15 -10
- package/cpp/rnskia/dom/props/ImageProps.h +30 -16
- package/cpp/rnskia/dom/props/PaintProps.h +1 -1
- package/cpp/rnskia/dom/props/PathProp.h +1 -1
- package/cpp/rnskia/dom/props/PointProp.h +1 -1
- package/cpp/rnskia/dom/props/PointsProp.h +1 -1
- package/cpp/rnskia/dom/props/RRectProp.h +2 -2
- package/cpp/rnskia/dom/props/RadiusProp.h +1 -1
- package/cpp/rnskia/dom/props/RectProp.h +1 -1
- package/cpp/rnskia/dom/props/StrokeProps.h +1 -1
- package/cpp/rnskia/dom/props/SvgProp.h +18 -12
- package/cpp/rnskia/dom/props/TextBlobProp.h +60 -57
- package/cpp/rnskia/dom/props/TileModeProp.h +1 -1
- package/cpp/rnskia/dom/props/UniformsProp.h +1 -1
- package/cpp/rnskia/dom/props/VertexModeProp.h +1 -1
- package/cpp/rnskia/dom/props/VerticesProps.h +1 -1
- package/cpp/rnskia/values/RNSkClockValue.h +2 -2
- package/cpp/rnskia/values/RNSkComputedValue.h +1 -1
- package/cpp/rnskia/values/RNSkReadonlyValue.h +3 -3
- package/cpp/rnskia/values/RNSkValue.h +4 -4
- package/cpp/utils/RNSkMeasureTime.h +1 -1
- package/cpp/utils/RNSkTimingInfo.h +1 -1
- package/globalJestSetup.js +6 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +16 -13
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +8 -0
- package/ios/RNSkia-iOS/SkiaManager.mm +20 -1
- package/ios/RNSkia-iOS/ViewScreenshotService.h +21 -0
- package/ios/RNSkia-iOS/ViewScreenshotService.mm +79 -0
- package/jestSetup.js +2 -3
- package/lib/commonjs/dom/nodes/drawings/ImageNode.js +22 -1
- package/lib/commonjs/dom/nodes/drawings/ImageNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/ImageSVG.js +5 -0
- package/lib/commonjs/dom/nodes/drawings/ImageSVG.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/Text.d.ts +2 -2
- package/lib/commonjs/dom/nodes/drawings/Text.js +13 -2
- package/lib/commonjs/dom/nodes/drawings/Text.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/Shaders.js +5 -0
- package/lib/commonjs/dom/nodes/paint/Shaders.js.map +1 -1
- package/lib/commonjs/dom/types/Drawings.d.ts +5 -5
- package/lib/commonjs/dom/types/Drawings.js.map +1 -1
- package/lib/commonjs/dom/types/Shaders.d.ts +1 -1
- package/lib/commonjs/dom/types/Shaders.js.map +1 -1
- package/lib/commonjs/mock/index.d.ts +2 -15
- package/lib/commonjs/mock/index.js +37 -110
- package/lib/commonjs/mock/index.js.map +1 -1
- package/lib/commonjs/skia/core/Image.d.ts +14 -2
- package/lib/commonjs/skia/core/Image.js +37 -1
- package/lib/commonjs/skia/core/Image.js.map +1 -1
- package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +7 -0
- package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
- package/lib/commonjs/skia/types/SVG/SVG.d.ts +4 -1
- package/lib/commonjs/skia/types/SVG/SVG.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -1
- package/lib/commonjs/skia/web/JsiSkImageFactory.js +7 -0
- package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
- package/lib/module/dom/nodes/drawings/ImageNode.js +22 -1
- package/lib/module/dom/nodes/drawings/ImageNode.js.map +1 -1
- package/lib/module/dom/nodes/drawings/ImageSVG.js +5 -0
- package/lib/module/dom/nodes/drawings/ImageSVG.js.map +1 -1
- package/lib/module/dom/nodes/drawings/Text.d.ts +2 -2
- package/lib/module/dom/nodes/drawings/Text.js +13 -2
- package/lib/module/dom/nodes/drawings/Text.js.map +1 -1
- package/lib/module/dom/nodes/paint/Shaders.js +5 -0
- package/lib/module/dom/nodes/paint/Shaders.js.map +1 -1
- package/lib/module/dom/types/Drawings.d.ts +5 -5
- package/lib/module/dom/types/Drawings.js.map +1 -1
- package/lib/module/dom/types/Shaders.d.ts +1 -1
- package/lib/module/dom/types/Shaders.js.map +1 -1
- package/lib/module/mock/index.d.ts +2 -15
- package/lib/module/mock/index.js +33 -95
- package/lib/module/mock/index.js.map +1 -1
- package/lib/module/skia/core/Image.d.ts +14 -2
- package/lib/module/skia/core/Image.js +32 -0
- package/lib/module/skia/core/Image.js.map +1 -1
- package/lib/module/skia/types/Image/ImageFactory.d.ts +7 -0
- package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
- package/lib/module/skia/types/SVG/SVG.d.ts +4 -1
- package/lib/module/skia/types/SVG/SVG.js.map +1 -1
- package/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -1
- package/lib/module/skia/web/JsiSkImageFactory.js +7 -0
- package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
- package/lib/typescript/globalJestSetup.d.ts +2 -0
- package/lib/typescript/src/dom/nodes/drawings/Text.d.ts +2 -2
- package/lib/typescript/src/dom/types/Drawings.d.ts +5 -5
- package/lib/typescript/src/dom/types/Shaders.d.ts +1 -1
- package/lib/typescript/src/mock/index.d.ts +2 -15
- package/lib/typescript/src/skia/core/Image.d.ts +14 -2
- package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +7 -0
- package/lib/typescript/src/skia/types/SVG/SVG.d.ts +4 -1
- package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +2 -1
- package/package.json +3 -2
- package/scripts/install-npm.js +3 -2
- package/src/dom/nodes/drawings/ImageNode.ts +9 -1
- package/src/dom/nodes/drawings/ImageSVG.ts +3 -0
- package/src/dom/nodes/drawings/Text.ts +13 -3
- package/src/dom/nodes/paint/Shaders.ts +4 -0
- package/src/dom/types/Drawings.ts +5 -5
- package/src/dom/types/Shaders.ts +1 -1
- package/src/mock/index.ts +35 -98
- package/src/skia/core/Image.ts +43 -1
- package/src/skia/types/Image/ImageFactory.ts +8 -0
- package/src/skia/types/SVG/SVG.ts +4 -1
- package/src/skia/web/JsiSkImageFactory.ts +8 -1
@@ -16,6 +16,13 @@ class JsiSkImageFactory extends _Host.Host {
|
|
16
16
|
super(CanvasKit);
|
17
17
|
}
|
18
18
|
|
19
|
+
MakeImageFromViewTag(viewTag) {
|
20
|
+
const view = viewTag; // TODO: Implement screenshot from view in React JS
|
21
|
+
|
22
|
+
console.log(view);
|
23
|
+
return Promise.resolve(null);
|
24
|
+
}
|
25
|
+
|
19
26
|
MakeImageFromEncoded(encoded) {
|
20
27
|
const image = this.CanvasKit.MakeImageFromEncoded(_JsiSkData.JsiSkData.fromValue(encoded));
|
21
28
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["JsiSkImageFactory","Host","constructor","CanvasKit","MakeImageFromEncoded","encoded","image","JsiSkData","fromValue","JsiSkImage","MakeImage","info","data","bytesPerRow","alphaType","ckEnum","colorSpace","ColorSpace","SRGB","colorType","height","width"],"sources":["JsiSkImageFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type { SkData, ImageInfo } from \"../types\";\nimport type { ImageFactory } from \"../types/Image/ImageFactory\";\n\nimport { Host, ckEnum } from \"./Host\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkData } from \"./JsiSkData\";\n\nexport class JsiSkImageFactory extends Host implements ImageFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n MakeImageFromEncoded(encoded: SkData) {\n const image = this.CanvasKit.MakeImageFromEncoded(\n JsiSkData.fromValue(encoded)\n );\n if (image === null) {\n return null;\n }\n return new JsiSkImage(this.CanvasKit, image);\n }\n\n MakeImage(info: ImageInfo, data: SkData, bytesPerRow: number) {\n // see toSkImageInfo() from canvaskit\n const image = this.CanvasKit.MakeImage(\n {\n alphaType: ckEnum(info.alphaType),\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n colorType: ckEnum(info.colorType),\n height: info.height,\n width: info.width,\n },\n JsiSkData.fromValue(data),\n bytesPerRow\n );\n if (image === null) {\n return null;\n }\n return new JsiSkImage(this.CanvasKit, image);\n }\n}\n"],"mappings":";;;;;;;AAKA;;AACA;;AACA;;AAEO,MAAMA,iBAAN,SAAgCC,UAAhC,CAA6D;EAClEC,WAAW,CAACC,SAAD,EAAuB;IAChC,MAAMA,SAAN;EACD;;EAEDC,oBAAoB,CAACC,OAAD,EAAkB;IACpC,MAAMC,KAAK,GAAG,
|
1
|
+
{"version":3,"names":["JsiSkImageFactory","Host","constructor","CanvasKit","MakeImageFromViewTag","viewTag","view","console","log","Promise","resolve","MakeImageFromEncoded","encoded","image","JsiSkData","fromValue","JsiSkImage","MakeImage","info","data","bytesPerRow","alphaType","ckEnum","colorSpace","ColorSpace","SRGB","colorType","height","width"],"sources":["JsiSkImageFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type { SkData, ImageInfo, SkImage } from \"../types\";\nimport type { ImageFactory } from \"../types/Image/ImageFactory\";\n\nimport { Host, ckEnum } from \"./Host\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkData } from \"./JsiSkData\";\n\nexport class JsiSkImageFactory extends Host implements ImageFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n MakeImageFromViewTag(viewTag: number): Promise<SkImage | null> {\n const view = viewTag as unknown as HTMLElement;\n // TODO: Implement screenshot from view in React JS\n console.log(view);\n return Promise.resolve(null);\n }\n\n MakeImageFromEncoded(encoded: SkData) {\n const image = this.CanvasKit.MakeImageFromEncoded(\n JsiSkData.fromValue(encoded)\n );\n if (image === null) {\n return null;\n }\n return new JsiSkImage(this.CanvasKit, image);\n }\n\n MakeImage(info: ImageInfo, data: SkData, bytesPerRow: number) {\n // see toSkImageInfo() from canvaskit\n const image = this.CanvasKit.MakeImage(\n {\n alphaType: ckEnum(info.alphaType),\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n colorType: ckEnum(info.colorType),\n height: info.height,\n width: info.width,\n },\n JsiSkData.fromValue(data),\n bytesPerRow\n );\n if (image === null) {\n return null;\n }\n return new JsiSkImage(this.CanvasKit, image);\n }\n}\n"],"mappings":";;;;;;;AAKA;;AACA;;AACA;;AAEO,MAAMA,iBAAN,SAAgCC,UAAhC,CAA6D;EAClEC,WAAW,CAACC,SAAD,EAAuB;IAChC,MAAMA,SAAN;EACD;;EAEDC,oBAAoB,CAACC,OAAD,EAA2C;IAC7D,MAAMC,IAAI,GAAGD,OAAb,CAD6D,CAE7D;;IACAE,OAAO,CAACC,GAAR,CAAYF,IAAZ;IACA,OAAOG,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;EACD;;EAEDC,oBAAoB,CAACC,OAAD,EAAkB;IACpC,MAAMC,KAAK,GAAG,KAAKV,SAAL,CAAeQ,oBAAf,CACZG,oBAAA,CAAUC,SAAV,CAAoBH,OAApB,CADY,CAAd;;IAGA,IAAIC,KAAK,KAAK,IAAd,EAAoB;MAClB,OAAO,IAAP;IACD;;IACD,OAAO,IAAIG,sBAAJ,CAAe,KAAKb,SAApB,EAA+BU,KAA/B,CAAP;EACD;;EAEDI,SAAS,CAACC,IAAD,EAAkBC,IAAlB,EAAgCC,WAAhC,EAAqD;IAC5D;IACA,MAAMP,KAAK,GAAG,KAAKV,SAAL,CAAec,SAAf,CACZ;MACEI,SAAS,EAAE,IAAAC,YAAA,EAAOJ,IAAI,CAACG,SAAZ,CADb;MAEEE,UAAU,EAAE,KAAKpB,SAAL,CAAeqB,UAAf,CAA0BC,IAFxC;MAGEC,SAAS,EAAE,IAAAJ,YAAA,EAAOJ,IAAI,CAACQ,SAAZ,CAHb;MAIEC,MAAM,EAAET,IAAI,CAACS,MAJf;MAKEC,KAAK,EAAEV,IAAI,CAACU;IALd,CADY,EAQZd,oBAAA,CAAUC,SAAV,CAAoBI,IAApB,CARY,EASZC,WATY,CAAd;;IAWA,IAAIP,KAAK,KAAK,IAAd,EAAoB;MAClB,OAAO,IAAP;IACD;;IACD,OAAO,IAAIG,sBAAJ,CAAe,KAAKb,SAApB,EAA+BU,KAA/B,CAAP;EACD;;AAvCiE"}
|
@@ -12,6 +12,24 @@ export class ImageNode extends JsiDrawingNode {
|
|
12
12
|
const {
|
13
13
|
image
|
14
14
|
} = this.props;
|
15
|
+
|
16
|
+
if (!image) {
|
17
|
+
return {
|
18
|
+
src: {
|
19
|
+
x: 0,
|
20
|
+
y: 0,
|
21
|
+
width: 0,
|
22
|
+
height: 0
|
23
|
+
},
|
24
|
+
dst: {
|
25
|
+
x: 0,
|
26
|
+
y: 0,
|
27
|
+
width: 0,
|
28
|
+
height: 0
|
29
|
+
}
|
30
|
+
};
|
31
|
+
}
|
32
|
+
|
15
33
|
const fit = (_this$props$fit = this.props.fit) !== null && _this$props$fit !== void 0 ? _this$props$fit : "contain";
|
16
34
|
const rect = processRect(this.Skia, this.props);
|
17
35
|
const {
|
@@ -46,7 +64,10 @@ export class ImageNode extends JsiDrawingNode {
|
|
46
64
|
src,
|
47
65
|
dst
|
48
66
|
} = this.derived;
|
49
|
-
|
67
|
+
|
68
|
+
if (image) {
|
69
|
+
canvas.drawImageRect(image, src, dst, paint);
|
70
|
+
}
|
50
71
|
}
|
51
72
|
|
52
73
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["NodeType","fitRects","processRect","JsiDrawingNode","ImageNode","constructor","ctx","props","Image","deriveProps","image","
|
1
|
+
{"version":3,"names":["NodeType","fitRects","processRect","JsiDrawingNode","ImageNode","constructor","ctx","props","Image","deriveProps","image","src","x","y","width","height","dst","fit","rect","Skia","draw","canvas","paint","derived","Error","drawImageRect"],"sources":["ImageNode.ts"],"sourcesContent":["import type { SkRect } from \"../../../skia/types\";\nimport type { DrawingContext, ImageProps } from \"../../types\";\nimport { NodeType } from \"../../types\";\nimport { fitRects, processRect } from \"../datatypes\";\nimport { JsiDrawingNode } from \"../DrawingNode\";\nimport type { NodeContext } from \"../Node\";\n\nexport class ImageNode extends JsiDrawingNode<\n ImageProps,\n { src: SkRect; dst: SkRect }\n> {\n constructor(ctx: NodeContext, props: ImageProps) {\n super(ctx, NodeType.Image, props);\n }\n\n deriveProps() {\n const { image } = this.props;\n if (!image) {\n return {\n src: { x: 0, y: 0, width: 0, height: 0 },\n dst: { x: 0, y: 0, width: 0, height: 0 },\n };\n }\n const fit = this.props.fit ?? \"contain\";\n const rect = processRect(this.Skia, this.props);\n const { src, dst } = fitRects(\n fit,\n {\n x: 0,\n y: 0,\n width: image.width(),\n height: image.height(),\n },\n rect\n );\n return { src, dst };\n }\n\n draw({ canvas, paint }: DrawingContext) {\n const { image } = this.props;\n if (!this.derived) {\n throw new Error(\"ImageNode: src and dst are undefined\");\n }\n const { src, dst } = this.derived;\n if (image) {\n canvas.drawImageRect(image, src, dst, paint);\n }\n }\n}\n"],"mappings":"AAEA,SAASA,QAAT,QAAyB,aAAzB;AACA,SAASC,QAAT,EAAmBC,WAAnB,QAAsC,cAAtC;AACA,SAASC,cAAT,QAA+B,gBAA/B;AAGA,OAAO,MAAMC,SAAN,SAAwBD,cAAxB,CAGL;EACAE,WAAW,CAACC,GAAD,EAAmBC,KAAnB,EAAsC;IAC/C,MAAMD,GAAN,EAAWN,QAAQ,CAACQ,KAApB,EAA2BD,KAA3B;EACD;;EAEDE,WAAW,GAAG;IAAA;;IACZ,MAAM;MAAEC;IAAF,IAAY,KAAKH,KAAvB;;IACA,IAAI,CAACG,KAAL,EAAY;MACV,OAAO;QACLC,GAAG,EAAE;UAAEC,CAAC,EAAE,CAAL;UAAQC,CAAC,EAAE,CAAX;UAAcC,KAAK,EAAE,CAArB;UAAwBC,MAAM,EAAE;QAAhC,CADA;QAELC,GAAG,EAAE;UAAEJ,CAAC,EAAE,CAAL;UAAQC,CAAC,EAAE,CAAX;UAAcC,KAAK,EAAE,CAArB;UAAwBC,MAAM,EAAE;QAAhC;MAFA,CAAP;IAID;;IACD,MAAME,GAAG,sBAAG,KAAKV,KAAL,CAAWU,GAAd,6DAAqB,SAA9B;IACA,MAAMC,IAAI,GAAGhB,WAAW,CAAC,KAAKiB,IAAN,EAAY,KAAKZ,KAAjB,CAAxB;IACA,MAAM;MAAEI,GAAF;MAAOK;IAAP,IAAef,QAAQ,CAC3BgB,GAD2B,EAE3B;MACEL,CAAC,EAAE,CADL;MAEEC,CAAC,EAAE,CAFL;MAGEC,KAAK,EAAEJ,KAAK,CAACI,KAAN,EAHT;MAIEC,MAAM,EAAEL,KAAK,CAACK,MAAN;IAJV,CAF2B,EAQ3BG,IAR2B,CAA7B;IAUA,OAAO;MAAEP,GAAF;MAAOK;IAAP,CAAP;EACD;;EAEDI,IAAI,OAAoC;IAAA,IAAnC;MAAEC,MAAF;MAAUC;IAAV,CAAmC;IACtC,MAAM;MAAEZ;IAAF,IAAY,KAAKH,KAAvB;;IACA,IAAI,CAAC,KAAKgB,OAAV,EAAmB;MACjB,MAAM,IAAIC,KAAJ,CAAU,sCAAV,CAAN;IACD;;IACD,MAAM;MAAEb,GAAF;MAAOK;IAAP,IAAe,KAAKO,OAA1B;;IACA,IAAIb,KAAJ,EAAW;MACTW,MAAM,CAACI,aAAP,CAAqBf,KAArB,EAA4BC,GAA5B,EAAiCK,GAAjC,EAAsCM,KAAtC;IACD;EACF;;AArCD"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["NodeType","processRect","JsiDrawingNode","ImageSVGNode","constructor","ctx","props","ImageSVG","deriveProps","draw","canvas","svg","x","y","width","height","Skia","save","translate","drawSvg","restore"],"sources":["ImageSVG.ts"],"sourcesContent":["import type { DrawingContext, ImageSVGProps } from \"../../types\";\nimport { NodeType } from \"../../types\";\nimport { processRect } from \"../datatypes\";\nimport { JsiDrawingNode } from \"../DrawingNode\";\nimport type { NodeContext } from \"../Node\";\n\nexport class ImageSVGNode extends JsiDrawingNode<ImageSVGProps, null> {\n constructor(ctx: NodeContext, props: ImageSVGProps) {\n super(ctx, NodeType.ImageSVG, props);\n }\n\n deriveProps() {\n return null;\n }\n\n draw({ canvas }: DrawingContext) {\n const { svg } = this.props;\n const { x, y, width, height } = processRect(this.Skia, this.props);\n canvas.save();\n canvas.translate(x, y);\n canvas.drawSvg(svg, width, height);\n canvas.restore();\n }\n}\n"],"mappings":"AACA,SAASA,QAAT,QAAyB,aAAzB;AACA,SAASC,WAAT,QAA4B,cAA5B;AACA,SAASC,cAAT,QAA+B,gBAA/B;AAGA,OAAO,MAAMC,YAAN,SAA2BD,cAA3B,CAA+D;EACpEE,WAAW,CAACC,GAAD,EAAmBC,KAAnB,EAAyC;IAClD,MAAMD,GAAN,EAAWL,QAAQ,CAACO,QAApB,EAA8BD,KAA9B;EACD;;EAEDE,WAAW,GAAG;IACZ,OAAO,IAAP;EACD;;EAEDC,IAAI,OAA6B;IAAA,IAA5B;MAAEC;IAAF,CAA4B;IAC/B,MAAM;MAAEC;IAAF,IAAU,KAAKL,KAArB
|
1
|
+
{"version":3,"names":["NodeType","processRect","JsiDrawingNode","ImageSVGNode","constructor","ctx","props","ImageSVG","deriveProps","draw","canvas","svg","x","y","width","height","Skia","save","translate","drawSvg","restore"],"sources":["ImageSVG.ts"],"sourcesContent":["import type { DrawingContext, ImageSVGProps } from \"../../types\";\nimport { NodeType } from \"../../types\";\nimport { processRect } from \"../datatypes\";\nimport { JsiDrawingNode } from \"../DrawingNode\";\nimport type { NodeContext } from \"../Node\";\n\nexport class ImageSVGNode extends JsiDrawingNode<ImageSVGProps, null> {\n constructor(ctx: NodeContext, props: ImageSVGProps) {\n super(ctx, NodeType.ImageSVG, props);\n }\n\n deriveProps() {\n return null;\n }\n\n draw({ canvas }: DrawingContext) {\n const { svg } = this.props;\n if (!svg) {\n return;\n }\n const { x, y, width, height } = processRect(this.Skia, this.props);\n canvas.save();\n canvas.translate(x, y);\n canvas.drawSvg(svg, width, height);\n canvas.restore();\n }\n}\n"],"mappings":"AACA,SAASA,QAAT,QAAyB,aAAzB;AACA,SAASC,WAAT,QAA4B,cAA5B;AACA,SAASC,cAAT,QAA+B,gBAA/B;AAGA,OAAO,MAAMC,YAAN,SAA2BD,cAA3B,CAA+D;EACpEE,WAAW,CAACC,GAAD,EAAmBC,KAAnB,EAAyC;IAClD,MAAMD,GAAN,EAAWL,QAAQ,CAACO,QAApB,EAA8BD,KAA9B;EACD;;EAEDE,WAAW,GAAG;IACZ,OAAO,IAAP;EACD;;EAEDC,IAAI,OAA6B;IAAA,IAA5B;MAAEC;IAAF,CAA4B;IAC/B,MAAM;MAAEC;IAAF,IAAU,KAAKL,KAArB;;IACA,IAAI,CAACK,GAAL,EAAU;MACR;IACD;;IACD,MAAM;MAAEC,CAAF;MAAKC,CAAL;MAAQC,KAAR;MAAeC;IAAf,IAA0Bd,WAAW,CAAC,KAAKe,IAAN,EAAY,KAAKV,KAAjB,CAA3C;IACAI,MAAM,CAACO,IAAP;IACAP,MAAM,CAACQ,SAAP,CAAiBN,CAAjB,EAAoBC,CAApB;IACAH,MAAM,CAACS,OAAP,CAAeR,GAAf,EAAoBG,KAApB,EAA2BC,MAA3B;IACAL,MAAM,CAACU,OAAP;EACD;;AAnBmE"}
|
@@ -8,9 +8,9 @@ export declare class TextNode extends JsiDrawingNode<TextProps, null> {
|
|
8
8
|
protected deriveProps(): null;
|
9
9
|
draw({ canvas, paint }: DrawingContext): void;
|
10
10
|
}
|
11
|
-
export declare class TextPathNode extends JsiDrawingNode<TextPathProps, SkTextBlob> {
|
11
|
+
export declare class TextPathNode extends JsiDrawingNode<TextPathProps, SkTextBlob | null> {
|
12
12
|
constructor(ctx: NodeContext, props: TextPathProps);
|
13
|
-
deriveProps(): SkTextBlob;
|
13
|
+
deriveProps(): SkTextBlob | null;
|
14
14
|
draw({ canvas, paint }: DrawingContext): void;
|
15
15
|
}
|
16
16
|
export declare class TextBlobNode extends JsiDrawingNode<TextBlobProps, null> {
|
@@ -21,7 +21,10 @@ export class TextNode extends JsiDrawingNode {
|
|
21
21
|
y,
|
22
22
|
font
|
23
23
|
} = this.props;
|
24
|
-
|
24
|
+
|
25
|
+
if (font) {
|
26
|
+
canvas.drawText(text, x, y, paint, font);
|
27
|
+
}
|
25
28
|
}
|
26
29
|
|
27
30
|
}
|
@@ -36,6 +39,11 @@ export class TextPathNode extends JsiDrawingNode {
|
|
36
39
|
font,
|
37
40
|
initialOffset
|
38
41
|
} = this.props;
|
42
|
+
|
43
|
+
if (!font) {
|
44
|
+
return null;
|
45
|
+
}
|
46
|
+
|
39
47
|
let {
|
40
48
|
text
|
41
49
|
} = this.props;
|
@@ -152,7 +160,10 @@ export class GlyphsNode extends JsiDrawingNode {
|
|
152
160
|
y,
|
153
161
|
font
|
154
162
|
} = this.props;
|
155
|
-
|
163
|
+
|
164
|
+
if (font) {
|
165
|
+
canvas.drawGlyphs(glyphs, positions, x, y, font, paint);
|
166
|
+
}
|
156
167
|
}
|
157
168
|
|
158
169
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["NodeType","processPath","JsiDrawingNode","TextNode","constructor","ctx","props","Text","deriveProps","draw","canvas","paint","text","x","y","font","drawText","TextPathNode","TextPath","path","Skia","initialOffset","ids","getGlyphIDs","widths","getGlyphWidths","rsx","meas","ContourMeasureIter","cont","next","dist","i","length","width","substring","p","t","getPosTan","adjustedX","adjustedY","push","RSXform","TextBlob","MakeFromRSXform","derived","Error","drawTextBlob","TextBlobNode","blob","GlyphsNode","Glyphs","glyphs","reduce","acc","glyph","id","pos","positions","drawGlyphs"],"sources":["Text.ts"],"sourcesContent":["import type { SkRSXform, SkTextBlob, SkPoint } from \"../../../skia/types\";\nimport type {\n DrawingContext,\n TextBlobProps,\n TextPathProps,\n TextProps,\n} from \"../../types\";\nimport { NodeType } from \"../../types\";\nimport { processPath } from \"../datatypes\";\nimport type { GlyphsProps } from \"../../types/Drawings\";\nimport { JsiDrawingNode } from \"../DrawingNode\";\nimport type { NodeContext } from \"../Node\";\n\nexport class TextNode extends JsiDrawingNode<TextProps, null> {\n constructor(ctx: NodeContext, props: TextProps) {\n super(ctx, NodeType.Text, props);\n }\n\n protected deriveProps() {\n return null;\n }\n\n draw({ canvas, paint }: DrawingContext) {\n const { text, x, y, font } = this.props;\n canvas.drawText(text, x, y, paint, font);\n }\n}\n\nexport class TextPathNode extends JsiDrawingNode
|
1
|
+
{"version":3,"names":["NodeType","processPath","JsiDrawingNode","TextNode","constructor","ctx","props","Text","deriveProps","draw","canvas","paint","text","x","y","font","drawText","TextPathNode","TextPath","path","Skia","initialOffset","ids","getGlyphIDs","widths","getGlyphWidths","rsx","meas","ContourMeasureIter","cont","next","dist","i","length","width","substring","p","t","getPosTan","adjustedX","adjustedY","push","RSXform","TextBlob","MakeFromRSXform","derived","Error","drawTextBlob","TextBlobNode","blob","GlyphsNode","Glyphs","glyphs","reduce","acc","glyph","id","pos","positions","drawGlyphs"],"sources":["Text.ts"],"sourcesContent":["import type { SkRSXform, SkTextBlob, SkPoint } from \"../../../skia/types\";\nimport type {\n DrawingContext,\n TextBlobProps,\n TextPathProps,\n TextProps,\n} from \"../../types\";\nimport { NodeType } from \"../../types\";\nimport { processPath } from \"../datatypes\";\nimport type { GlyphsProps } from \"../../types/Drawings\";\nimport { JsiDrawingNode } from \"../DrawingNode\";\nimport type { NodeContext } from \"../Node\";\n\nexport class TextNode extends JsiDrawingNode<TextProps, null> {\n constructor(ctx: NodeContext, props: TextProps) {\n super(ctx, NodeType.Text, props);\n }\n\n protected deriveProps() {\n return null;\n }\n\n draw({ canvas, paint }: DrawingContext) {\n const { text, x, y, font } = this.props;\n if (font) {\n canvas.drawText(text, x, y, paint, font);\n }\n }\n}\n\nexport class TextPathNode extends JsiDrawingNode<\n TextPathProps,\n SkTextBlob | null\n> {\n constructor(ctx: NodeContext, props: TextPathProps) {\n super(ctx, NodeType.TextPath, props);\n }\n\n deriveProps() {\n const path = processPath(this.Skia, this.props.path);\n const { font, initialOffset } = this.props;\n if (!font) {\n return null;\n }\n let { text } = this.props;\n const ids = font.getGlyphIDs(text);\n const widths = font.getGlyphWidths(ids);\n const rsx: SkRSXform[] = [];\n const meas = this.Skia.ContourMeasureIter(path, false, 1);\n let cont = meas.next();\n let dist = initialOffset;\n for (let i = 0; i < text.length && cont; i++) {\n const width = widths[i];\n dist += width / 2;\n if (dist > cont.length()) {\n // jump to next contour\n cont = meas.next();\n if (!cont) {\n // We have come to the end of the path - terminate the string\n // right here.\n text = text.substring(0, i);\n break;\n }\n dist = width / 2;\n }\n // Gives us the (x, y) coordinates as well as the cos/sin of the tangent\n // line at that position.\n const [p, t] = cont.getPosTan(dist);\n const adjustedX = p.x - (width / 2) * t.x;\n const adjustedY = p.y - (width / 2) * t.y;\n rsx.push(this.Skia.RSXform(t.x, t.y, adjustedX, adjustedY));\n dist += width / 2;\n }\n return this.Skia.TextBlob.MakeFromRSXform(text, rsx, font);\n }\n\n draw({ canvas, paint }: DrawingContext) {\n if (!this.derived) {\n throw new Error(\"TextPathNode: blob is null\");\n }\n canvas.drawTextBlob(this.derived, 0, 0, paint);\n }\n}\n\nexport class TextBlobNode extends JsiDrawingNode<TextBlobProps, null> {\n constructor(ctx: NodeContext, props: TextBlobProps) {\n super(ctx, NodeType.TextBlob, props);\n }\n\n protected deriveProps() {\n return null;\n }\n\n draw({ canvas, paint }: DrawingContext) {\n const { blob, x, y } = this.props;\n canvas.drawTextBlob(blob, x, y, paint);\n }\n}\n\ninterface ProcessedGlyphs {\n glyphs: number[];\n positions: SkPoint[];\n}\n\nexport class GlyphsNode extends JsiDrawingNode<GlyphsProps, ProcessedGlyphs> {\n constructor(ctx: NodeContext, props: GlyphsProps) {\n super(ctx, NodeType.Glyphs, props);\n }\n\n deriveProps() {\n return this.props.glyphs.reduce<ProcessedGlyphs>(\n (acc, glyph) => {\n const { id, pos } = glyph;\n acc.glyphs.push(id);\n acc.positions.push(pos);\n return acc;\n },\n { glyphs: [], positions: [] }\n );\n }\n\n draw({ canvas, paint }: DrawingContext) {\n if (!this.derived) {\n throw new Error(\"GlyphsNode: processedGlyphs is null\");\n }\n const { glyphs, positions } = this.derived;\n const { x, y, font } = this.props;\n if (font) {\n canvas.drawGlyphs(glyphs, positions, x, y, font, paint);\n }\n }\n}\n"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["processUniforms","FilterMode","MipmapMode","TileMode","JsiDeclarationNode","DeclarationType","NodeType","enumKey","fitRects","getRect","processGradientProps","processTransformProps","rect2rect","ShaderDeclaration","constructor","ctx","type","props","Shader","ShaderNode","decorate","decorateChildren","source","uniforms","transform","m3","Skia","Matrix","shader","makeShaderWithChildren","shaders","popAll","push","ImageShaderNode","ImageShader","fit","image","tx","ty","fm","mm","imageShaderProps","rct","rects","x","y","width","height","sx","sy","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","makeShaderOptions","ColorNode","ColorShader","color","MakeColor","Color","TurbulenceNode","Turbulence","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeTurbulence","FractalNoiseNode","FractalNoise","MakeFractalNoise","LinearGradientNode","LinearGradient","start","end","colors","positions","mode","localMatrix","flags","MakeLinearGradient","RadialGradientNode","RadialGradient","c","r","MakeRadialGradient","SweepGradientNode","SweepGradient","MakeSweepGradient","TwoPointConicalGradientNode","TwoPointConicalGradient","startR","endR","MakeTwoPointConicalGradient"],"sources":["Shaders.ts"],"sourcesContent":["import {\n processUniforms,\n FilterMode,\n MipmapMode,\n TileMode,\n} from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type {\n ColorProps,\n DeclarationContext,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport {\n enumKey,\n fitRects,\n getRect,\n processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../datatypes\";\n\nexport abstract class ShaderDeclaration<P> extends JsiDeclarationNode<P> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, DeclarationType.Shader, type, props);\n }\n}\n\nexport class ShaderNode extends ShaderDeclaration<ShaderProps> {\n constructor(ctx: NodeContext, props: ShaderProps) {\n super(ctx, NodeType.Shader, props);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const { source, uniforms, ...transform } = this.props;\n const m3 = this.Skia.Matrix();\n processTransformProps(m3, transform);\n const shader = source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n ctx.shaders.popAll(),\n m3\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class ImageShaderNode extends ShaderDeclaration<ImageShaderProps> {\n constructor(ctx: NodeContext, props: ImageShaderProps) {\n super(ctx, NodeType.ImageShader, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { fit, image, tx, ty, fm, mm, ...imageShaderProps } = this.props;\n const rct = getRect(this.Skia, imageShaderProps);\n const m3 = this.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = this.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n const shader = image.makeShaderOptions(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n FilterMode[enumKey(fm)],\n MipmapMode[enumKey(mm)],\n lm\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class ColorNode extends ShaderDeclaration<ColorProps> {\n constructor(ctx: NodeContext, props: ColorProps) {\n super(ctx, NodeType.ColorShader, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { color } = this.props;\n const shader = this.Skia.Shader.MakeColor(this.Skia.Color(color));\n ctx.shaders.push(shader);\n }\n}\n\nexport class TurbulenceNode extends ShaderDeclaration<TurbulenceProps> {\n constructor(ctx: NodeContext, props: TurbulenceProps) {\n super(ctx, NodeType.Turbulence, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = this.props;\n const shader = this.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class FractalNoiseNode extends ShaderDeclaration<FractalNoiseProps> {\n constructor(ctx: NodeContext, props: FractalNoiseProps) {\n super(ctx, NodeType.FractalNoise, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = this.props;\n const shader = this.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class LinearGradientNode extends ShaderDeclaration<LinearGradientProps> {\n constructor(ctx: NodeContext, props: LinearGradientProps) {\n super(ctx, NodeType.LinearGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class RadialGradientNode extends ShaderDeclaration<RadialGradientProps> {\n constructor(ctx: NodeContext, props: RadialGradientProps) {\n super(ctx, NodeType.RadialGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { c, r } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class SweepGradientNode extends ShaderDeclaration<SweepGradientProps> {\n constructor(ctx: NodeContext, props: SweepGradientProps) {\n super(ctx, NodeType.SweepGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { c, start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class TwoPointConicalGradientNode extends ShaderDeclaration<TwoPointConicalGradientProps> {\n constructor(ctx: NodeContext, props: TwoPointConicalGradientProps) {\n super(ctx, NodeType.TwoPointConicalGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { startR, endR, start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n }\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["processUniforms","FilterMode","MipmapMode","TileMode","JsiDeclarationNode","DeclarationType","NodeType","enumKey","fitRects","getRect","processGradientProps","processTransformProps","rect2rect","ShaderDeclaration","constructor","ctx","type","props","Shader","ShaderNode","decorate","decorateChildren","source","uniforms","transform","m3","Skia","Matrix","shader","makeShaderWithChildren","shaders","popAll","push","ImageShaderNode","ImageShader","fit","image","tx","ty","fm","mm","imageShaderProps","rct","rects","x","y","width","height","sx","sy","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","makeShaderOptions","ColorNode","ColorShader","color","MakeColor","Color","TurbulenceNode","Turbulence","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeTurbulence","FractalNoiseNode","FractalNoise","MakeFractalNoise","LinearGradientNode","LinearGradient","start","end","colors","positions","mode","localMatrix","flags","MakeLinearGradient","RadialGradientNode","RadialGradient","c","r","MakeRadialGradient","SweepGradientNode","SweepGradient","MakeSweepGradient","TwoPointConicalGradientNode","TwoPointConicalGradient","startR","endR","MakeTwoPointConicalGradient"],"sources":["Shaders.ts"],"sourcesContent":["import {\n processUniforms,\n FilterMode,\n MipmapMode,\n TileMode,\n} from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type {\n ColorProps,\n DeclarationContext,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport {\n enumKey,\n fitRects,\n getRect,\n processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../datatypes\";\n\nexport abstract class ShaderDeclaration<P> extends JsiDeclarationNode<P> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, DeclarationType.Shader, type, props);\n }\n}\n\nexport class ShaderNode extends ShaderDeclaration<ShaderProps> {\n constructor(ctx: NodeContext, props: ShaderProps) {\n super(ctx, NodeType.Shader, props);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const { source, uniforms, ...transform } = this.props;\n const m3 = this.Skia.Matrix();\n processTransformProps(m3, transform);\n const shader = source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n ctx.shaders.popAll(),\n m3\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class ImageShaderNode extends ShaderDeclaration<ImageShaderProps> {\n constructor(ctx: NodeContext, props: ImageShaderProps) {\n super(ctx, NodeType.ImageShader, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { fit, image, tx, ty, fm, mm, ...imageShaderProps } = this.props;\n if (!image) {\n return;\n }\n\n const rct = getRect(this.Skia, imageShaderProps);\n const m3 = this.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = this.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n const shader = image.makeShaderOptions(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n FilterMode[enumKey(fm)],\n MipmapMode[enumKey(mm)],\n lm\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class ColorNode extends ShaderDeclaration<ColorProps> {\n constructor(ctx: NodeContext, props: ColorProps) {\n super(ctx, NodeType.ColorShader, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { color } = this.props;\n const shader = this.Skia.Shader.MakeColor(this.Skia.Color(color));\n ctx.shaders.push(shader);\n }\n}\n\nexport class TurbulenceNode extends ShaderDeclaration<TurbulenceProps> {\n constructor(ctx: NodeContext, props: TurbulenceProps) {\n super(ctx, NodeType.Turbulence, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = this.props;\n const shader = this.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class FractalNoiseNode extends ShaderDeclaration<FractalNoiseProps> {\n constructor(ctx: NodeContext, props: FractalNoiseProps) {\n super(ctx, NodeType.FractalNoise, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = this.props;\n const shader = this.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class LinearGradientNode extends ShaderDeclaration<LinearGradientProps> {\n constructor(ctx: NodeContext, props: LinearGradientProps) {\n super(ctx, NodeType.LinearGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class RadialGradientNode extends ShaderDeclaration<RadialGradientProps> {\n constructor(ctx: NodeContext, props: RadialGradientProps) {\n super(ctx, NodeType.RadialGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { c, r } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class SweepGradientNode extends ShaderDeclaration<SweepGradientProps> {\n constructor(ctx: NodeContext, props: SweepGradientProps) {\n super(ctx, NodeType.SweepGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { c, start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class TwoPointConicalGradientNode extends ShaderDeclaration<TwoPointConicalGradientProps> {\n constructor(ctx: NodeContext, props: TwoPointConicalGradientProps) {\n super(ctx, NodeType.TwoPointConicalGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { startR, endR, start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n }\n}\n"],"mappings":"AAAA,SACEA,eADF,EAEEC,UAFF,EAGEC,UAHF,EAIEC,QAJF,QAKO,qBALP;AAOA,SAASC,kBAAT,QAAmC,SAAnC;AAaA,SAASC,eAAT,EAA0BC,QAA1B,QAA0C,aAA1C;AACA,SACEC,OADF,EAEEC,QAFF,EAGEC,OAHF,EAIEC,oBAJF,EAKEC,qBALF,EAMEC,SANF,QAOO,cAPP;AASA,OAAO,MAAeC,iBAAf,SAA4CT,kBAA5C,CAAkE;EACvEU,WAAW,CAACC,GAAD,EAAmBC,IAAnB,EAAmCC,KAAnC,EAA6C;IACtD,MAAMF,GAAN,EAAWV,eAAe,CAACa,MAA3B,EAAmCF,IAAnC,EAAyCC,KAAzC;EACD;;AAHsE;AAMzE,OAAO,MAAME,UAAN,SAAyBN,iBAAzB,CAAwD;EAC7DC,WAAW,CAACC,GAAD,EAAmBE,KAAnB,EAAuC;IAChD,MAAMF,GAAN,EAAWT,QAAQ,CAACY,MAApB,EAA4BD,KAA5B;EACD;;EAEDG,QAAQ,CAACL,GAAD,EAA0B;IAChC,KAAKM,gBAAL,CAAsBN,GAAtB;IACA,MAAM;MAAEO,MAAF;MAAUC,QAAV;MAAoB,GAAGC;IAAvB,IAAqC,KAAKP,KAAhD;IACA,MAAMQ,EAAE,GAAG,KAAKC,IAAL,CAAUC,MAAV,EAAX;IACAhB,qBAAqB,CAACc,EAAD,EAAKD,SAAL,CAArB;IACA,MAAMI,MAAM,GAAGN,MAAM,CAACO,sBAAP,CACb7B,eAAe,CAACsB,MAAD,EAASC,QAAT,CADF,EAEbR,GAAG,CAACe,OAAJ,CAAYC,MAAZ,EAFa,EAGbN,EAHa,CAAf;IAKAV,GAAG,CAACe,OAAJ,CAAYE,IAAZ,CAAiBJ,MAAjB;EACD;;AAhB4D;AAmB/D,OAAO,MAAMK,eAAN,SAA8BpB,iBAA9B,CAAkE;EACvEC,WAAW,CAACC,GAAD,EAAmBE,KAAnB,EAA4C;IACrD,MAAMF,GAAN,EAAWT,QAAQ,CAAC4B,WAApB,EAAiCjB,KAAjC;EACD;;EAEDG,QAAQ,CAACL,GAAD,EAA0B;IAChC,MAAM;MAAEoB,GAAF;MAAOC,KAAP;MAAcC,EAAd;MAAkBC,EAAlB;MAAsBC,EAAtB;MAA0BC,EAA1B;MAA8B,GAAGC;IAAjC,IAAsD,KAAKxB,KAAjE;;IACA,IAAI,CAACmB,KAAL,EAAY;MACV;IACD;;IAED,MAAMM,GAAG,GAAGjC,OAAO,CAAC,KAAKiB,IAAN,EAAYe,gBAAZ,CAAnB;IACA,MAAMhB,EAAE,GAAG,KAAKC,IAAL,CAAUC,MAAV,EAAX;;IACA,IAAIe,GAAJ,EAAS;MACP,MAAMC,KAAK,GAAGnC,QAAQ,CACpB2B,GADoB,EAEpB;QAAES,CAAC,EAAE,CAAL;QAAQC,CAAC,EAAE,CAAX;QAAcC,KAAK,EAAEV,KAAK,CAACU,KAAN,EAArB;QAAoCC,MAAM,EAAEX,KAAK,CAACW,MAAN;MAA5C,CAFoB,EAGpBL,GAHoB,CAAtB;MAKA,MAAM,CAACE,CAAD,EAAIC,CAAJ,EAAOG,EAAP,EAAWC,EAAX,IAAiBrC,SAAS,CAAC+B,KAAK,CAACO,GAAP,EAAYP,KAAK,CAACQ,GAAlB,CAAhC;MACA1B,EAAE,CAAC2B,SAAH,CAAaR,CAAC,CAACS,UAAf,EAA2BR,CAAC,CAACS,UAA7B;MACA7B,EAAE,CAAC8B,KAAH,CAASP,EAAE,CAACQ,MAAZ,EAAoBP,EAAE,CAACQ,MAAvB;IACD;;IACD,MAAMC,EAAE,GAAG,KAAKhC,IAAL,CAAUC,MAAV,EAAX;IACA+B,EAAE,CAACC,MAAH,CAAUlC,EAAV;IACAd,qBAAqB,CAAC+C,EAAD,EAAKjB,gBAAL,CAArB;IACA,MAAMb,MAAM,GAAGQ,KAAK,CAACwB,iBAAN,CACbzD,QAAQ,CAACI,OAAO,CAAC8B,EAAD,CAAR,CADK,EAEblC,QAAQ,CAACI,OAAO,CAAC+B,EAAD,CAAR,CAFK,EAGbrC,UAAU,CAACM,OAAO,CAACgC,EAAD,CAAR,CAHG,EAIbrC,UAAU,CAACK,OAAO,CAACiC,EAAD,CAAR,CAJG,EAKbkB,EALa,CAAf;IAOA3C,GAAG,CAACe,OAAJ,CAAYE,IAAZ,CAAiBJ,MAAjB;EACD;;AAlCsE;AAqCzE,OAAO,MAAMiC,SAAN,SAAwBhD,iBAAxB,CAAsD;EAC3DC,WAAW,CAACC,GAAD,EAAmBE,KAAnB,EAAsC;IAC/C,MAAMF,GAAN,EAAWT,QAAQ,CAACwD,WAApB,EAAiC7C,KAAjC;EACD;;EAEDG,QAAQ,CAACL,GAAD,EAA0B;IAChC,MAAM;MAAEgD;IAAF,IAAY,KAAK9C,KAAvB;IACA,MAAMW,MAAM,GAAG,KAAKF,IAAL,CAAUR,MAAV,CAAiB8C,SAAjB,CAA2B,KAAKtC,IAAL,CAAUuC,KAAV,CAAgBF,KAAhB,CAA3B,CAAf;IACAhD,GAAG,CAACe,OAAJ,CAAYE,IAAZ,CAAiBJ,MAAjB;EACD;;AAT0D;AAY7D,OAAO,MAAMsC,cAAN,SAA6BrD,iBAA7B,CAAgE;EACrEC,WAAW,CAACC,GAAD,EAAmBE,KAAnB,EAA2C;IACpD,MAAMF,GAAN,EAAWT,QAAQ,CAAC6D,UAApB,EAAgClD,KAAhC;EACD;;EAEDG,QAAQ,CAACL,GAAD,EAA0B;IAChC,MAAM;MAAEqD,KAAF;MAASC,KAAT;MAAgBC,OAAhB;MAAyBC,IAAzB;MAA+BC,SAA/B;MAA0CC;IAA1C,IAAyD,KAAKxD,KAApE;IACA,MAAMW,MAAM,GAAG,KAAKF,IAAL,CAAUR,MAAV,CAAiBwD,cAAjB,CACbN,KADa,EAEbC,KAFa,EAGbC,OAHa,EAIbC,IAJa,EAKbC,SALa,EAMbC,UANa,CAAf;IAQA1D,GAAG,CAACe,OAAJ,CAAYE,IAAZ,CAAiBJ,MAAjB;EACD;;AAhBoE;AAmBvE,OAAO,MAAM+C,gBAAN,SAA+B9D,iBAA/B,CAAoE;EACzEC,WAAW,CAACC,GAAD,EAAmBE,KAAnB,EAA6C;IACtD,MAAMF,GAAN,EAAWT,QAAQ,CAACsE,YAApB,EAAkC3D,KAAlC;EACD;;EAEDG,QAAQ,CAACL,GAAD,EAA0B;IAChC,MAAM;MAAEqD,KAAF;MAASC,KAAT;MAAgBC,OAAhB;MAAyBC,IAAzB;MAA+BC,SAA/B;MAA0CC;IAA1C,IAAyD,KAAKxD,KAApE;IACA,MAAMW,MAAM,GAAG,KAAKF,IAAL,CAAUR,MAAV,CAAiB2D,gBAAjB,CACbT,KADa,EAEbC,KAFa,EAGbC,OAHa,EAIbC,IAJa,EAKbC,SALa,EAMbC,UANa,CAAf;IAQA1D,GAAG,CAACe,OAAJ,CAAYE,IAAZ,CAAiBJ,MAAjB;EACD;;AAhBwE;AAmB3E,OAAO,MAAMkD,kBAAN,SAAiCjE,iBAAjC,CAAwE;EAC7EC,WAAW,CAACC,GAAD,EAAmBE,KAAnB,EAA+C;IACxD,MAAMF,GAAN,EAAWT,QAAQ,CAACyE,cAApB,EAAoC9D,KAApC;EACD;;EAEDG,QAAQ,CAACL,GAAD,EAA0B;IAChC,MAAM;MAAEiE,KAAF;MAASC;IAAT,IAAiB,KAAKhE,KAA5B;IACA,MAAM;MAAEiE,MAAF;MAAUC,SAAV;MAAqBC,IAArB;MAA2BC,WAA3B;MAAwCC;IAAxC,IACJ5E,oBAAoB,CAAC,KAAKgB,IAAN,EAAY,KAAKT,KAAjB,CADtB;IAEA,MAAMW,MAAM,GAAG,KAAKF,IAAL,CAAUR,MAAV,CAAiBqE,kBAAjB,CACbP,KADa,EAEbC,GAFa,EAGbC,MAHa,EAIbC,SAJa,aAIbA,SAJa,cAIbA,SAJa,GAIA,IAJA,EAKbC,IALa,EAMbC,WANa,EAObC,KAPa,CAAf;IASAvE,GAAG,CAACe,OAAJ,CAAYE,IAAZ,CAAiBJ,MAAjB;EACD;;AAnB4E;AAsB/E,OAAO,MAAM4D,kBAAN,SAAiC3E,iBAAjC,CAAwE;EAC7EC,WAAW,CAACC,GAAD,EAAmBE,KAAnB,EAA+C;IACxD,MAAMF,GAAN,EAAWT,QAAQ,CAACmF,cAApB,EAAoCxE,KAApC;EACD;;EAEDG,QAAQ,CAACL,GAAD,EAA0B;IAChC,MAAM;MAAE2E,CAAF;MAAKC;IAAL,IAAW,KAAK1E,KAAtB;IACA,MAAM;MAAEiE,MAAF;MAAUC,SAAV;MAAqBC,IAArB;MAA2BC,WAA3B;MAAwCC;IAAxC,IACJ5E,oBAAoB,CAAC,KAAKgB,IAAN,EAAY,KAAKT,KAAjB,CADtB;IAEA,MAAMW,MAAM,GAAG,KAAKF,IAAL,CAAUR,MAAV,CAAiB0E,kBAAjB,CACbF,CADa,EAEbC,CAFa,EAGbT,MAHa,EAIbC,SAJa,EAKbC,IALa,EAMbC,WANa,EAObC,KAPa,CAAf;IASAvE,GAAG,CAACe,OAAJ,CAAYE,IAAZ,CAAiBJ,MAAjB;EACD;;AAnB4E;AAsB/E,OAAO,MAAMiE,iBAAN,SAAgChF,iBAAhC,CAAsE;EAC3EC,WAAW,CAACC,GAAD,EAAmBE,KAAnB,EAA8C;IACvD,MAAMF,GAAN,EAAWT,QAAQ,CAACwF,aAApB,EAAmC7E,KAAnC;EACD;;EAEDG,QAAQ,CAACL,GAAD,EAA0B;IAChC,MAAM;MAAE2E,CAAF;MAAKV,KAAL;MAAYC;IAAZ,IAAoB,KAAKhE,KAA/B;IACA,MAAM;MAAEiE,MAAF;MAAUC,SAAV;MAAqBC,IAArB;MAA2BC,WAA3B;MAAwCC;IAAxC,IACJ5E,oBAAoB,CAAC,KAAKgB,IAAN,EAAY,KAAKT,KAAjB,CADtB;IAEA,MAAMW,MAAM,GAAG,KAAKF,IAAL,CAAUR,MAAV,CAAiB6E,iBAAjB,CACbL,CAAC,CAAC9C,CADW,EAEb8C,CAAC,CAAC7C,CAFW,EAGbqC,MAHa,EAIbC,SAJa,EAKbC,IALa,EAMbC,WANa,EAObC,KAPa,EAQbN,KARa,EASbC,GATa,CAAf;IAWAlE,GAAG,CAACe,OAAJ,CAAYE,IAAZ,CAAiBJ,MAAjB;EACD;;AArB0E;AAwB7E,OAAO,MAAMoE,2BAAN,SAA0CnF,iBAA1C,CAA0F;EAC/FC,WAAW,CAACC,GAAD,EAAmBE,KAAnB,EAAwD;IACjE,MAAMF,GAAN,EAAWT,QAAQ,CAAC2F,uBAApB,EAA6ChF,KAA7C;EACD;;EAEDG,QAAQ,CAACL,GAAD,EAA0B;IAChC,MAAM;MAAEmF,MAAF;MAAUC,IAAV;MAAgBnB,KAAhB;MAAuBC;IAAvB,IAA+B,KAAKhE,KAA1C;IACA,MAAM;MAAEiE,MAAF;MAAUC,SAAV;MAAqBC,IAArB;MAA2BC,WAA3B;MAAwCC;IAAxC,IACJ5E,oBAAoB,CAAC,KAAKgB,IAAN,EAAY,KAAKT,KAAjB,CADtB;IAEA,MAAMW,MAAM,GAAG,KAAKF,IAAL,CAAUR,MAAV,CAAiBkF,2BAAjB,CACbpB,KADa,EAEbkB,MAFa,EAGbjB,GAHa,EAIbkB,IAJa,EAKbjB,MALa,EAMbC,SANa,EAObC,IAPa,EAQbC,WARa,EASbC,KATa,CAAf;IAWAvE,GAAG,CAACe,OAAJ,CAAYE,IAAZ,CAAiBJ,MAAjB;EACD;;AArB8F"}
|
@@ -6,7 +6,7 @@ export interface DrawingNodeProps extends GroupProps {
|
|
6
6
|
}
|
7
7
|
export declare type ImageProps = DrawingNodeProps & RectDef & {
|
8
8
|
fit?: Fit;
|
9
|
-
image: SkImage;
|
9
|
+
image: SkImage | null;
|
10
10
|
};
|
11
11
|
export declare type CircleProps = CircleDef & DrawingNodeProps;
|
12
12
|
export interface PathProps extends DrawingNodeProps {
|
@@ -51,7 +51,7 @@ export interface VerticesProps extends DrawingNodeProps {
|
|
51
51
|
indices?: number[];
|
52
52
|
}
|
53
53
|
export declare type ImageSVGProps = RectDef & {
|
54
|
-
svg: SkSVG;
|
54
|
+
svg: SkSVG | null;
|
55
55
|
} & DrawingNodeProps;
|
56
56
|
export interface PictureProps extends DrawingNodeProps {
|
57
57
|
picture: SkPicture;
|
@@ -65,13 +65,13 @@ export interface DiffRectProps extends DrawingNodeProps {
|
|
65
65
|
outer: SkRRect;
|
66
66
|
}
|
67
67
|
export interface TextProps extends DrawingNodeProps {
|
68
|
-
font: SkFont;
|
68
|
+
font: SkFont | null;
|
69
69
|
text: string;
|
70
70
|
x: number;
|
71
71
|
y: number;
|
72
72
|
}
|
73
73
|
export interface TextPathProps extends DrawingNodeProps {
|
74
|
-
font: SkFont;
|
74
|
+
font: SkFont | null;
|
75
75
|
text: string;
|
76
76
|
path: PathDef;
|
77
77
|
initialOffset: number;
|
@@ -86,7 +86,7 @@ export interface Glyph {
|
|
86
86
|
pos: SkPoint;
|
87
87
|
}
|
88
88
|
export interface GlyphsProps extends DrawingNodeProps {
|
89
|
-
font: SkFont;
|
89
|
+
font: SkFont | null;
|
90
90
|
x: number;
|
91
91
|
y: number;
|
92
92
|
glyphs: Glyph[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["Drawings.ts"],"sourcesContent":["import type {\n FillType,\n SkImage,\n StrokeOpts,\n Vector,\n Color,\n SkPoint,\n BlendMode,\n PointMode,\n VertexMode,\n SkFont,\n SkRRect,\n SkTextBlob,\n SkPicture,\n SkSVG,\n SkPaint,\n SkRect,\n} from \"../../skia/types\";\n\nimport type {\n CircleDef,\n Fit,\n GroupProps,\n PathDef,\n RectDef,\n RRectDef,\n SkEnum,\n} from \"./Common\";\nimport type { DrawingContext } from \"./DrawingContext\";\n\nexport interface DrawingNodeProps extends GroupProps {\n paint?: SkPaint;\n}\n\nexport type ImageProps = DrawingNodeProps &\n RectDef & {\n fit?: Fit;\n image: SkImage;\n };\n\nexport type CircleProps = CircleDef & DrawingNodeProps;\n\nexport interface PathProps extends DrawingNodeProps {\n path: PathDef;\n start: number;\n end: number;\n stroke?: StrokeOpts;\n fillType?: SkEnum<typeof FillType>;\n}\n\nexport interface CustomDrawingNodeProps extends DrawingNodeProps {\n drawing: (ctx: DrawingContext) => void;\n}\n\nexport interface LineProps extends DrawingNodeProps {\n p1: Vector;\n p2: Vector;\n}\n\nexport type OvalProps = RectDef & DrawingNodeProps;\n\nexport type RectProps = RectDef & DrawingNodeProps;\n\nexport type RoundedRectProps = RRectDef & DrawingNodeProps;\n\nexport interface CubicBezierHandle {\n pos: Vector;\n c1: Vector;\n c2: Vector;\n}\n\nexport interface PatchProps extends DrawingNodeProps {\n colors?: Color[];\n patch: [\n CubicBezierHandle,\n CubicBezierHandle,\n CubicBezierHandle,\n CubicBezierHandle\n ];\n texture?: readonly [SkPoint, SkPoint, SkPoint, SkPoint];\n blendMode?: SkEnum<typeof BlendMode>;\n}\n\nexport interface VerticesProps extends DrawingNodeProps {\n colors?: string[];\n vertices: SkPoint[];\n textures?: SkPoint[];\n mode: SkEnum<typeof VertexMode>;\n blendMode?: SkEnum<typeof BlendMode>;\n indices?: number[];\n}\n\nexport type ImageSVGProps = RectDef & {\n svg: SkSVG;\n} & DrawingNodeProps;\n\nexport interface PictureProps extends DrawingNodeProps {\n picture: SkPicture;\n}\n\nexport interface PointsProps extends DrawingNodeProps {\n points: SkPoint[];\n mode: SkEnum<typeof PointMode>;\n}\n\nexport interface DiffRectProps extends DrawingNodeProps {\n inner: SkRRect;\n outer: SkRRect;\n}\n\nexport interface TextProps extends DrawingNodeProps {\n font: SkFont;\n text: string;\n x: number;\n y: number;\n}\n\nexport interface TextPathProps extends DrawingNodeProps {\n font: SkFont;\n text: string;\n path: PathDef;\n initialOffset: number;\n}\n\nexport interface TextBlobProps extends DrawingNodeProps {\n blob: SkTextBlob;\n x: number;\n y: number;\n}\n\nexport interface Glyph {\n id: number;\n pos: SkPoint;\n}\n\nexport interface GlyphsProps extends DrawingNodeProps {\n font: SkFont;\n x: number;\n y: number;\n glyphs: Glyph[];\n}\n\nexport interface BoxProps extends DrawingNodeProps {\n box: SkRRect | SkRect;\n}\n\nexport interface BoxShadowProps {\n dx?: number;\n dy?: number;\n spread?: number;\n blur: number;\n color?: Color;\n inner?: boolean;\n}\n"],"mappings":""}
|
1
|
+
{"version":3,"names":[],"sources":["Drawings.ts"],"sourcesContent":["import type {\n FillType,\n SkImage,\n StrokeOpts,\n Vector,\n Color,\n SkPoint,\n BlendMode,\n PointMode,\n VertexMode,\n SkFont,\n SkRRect,\n SkTextBlob,\n SkPicture,\n SkSVG,\n SkPaint,\n SkRect,\n} from \"../../skia/types\";\n\nimport type {\n CircleDef,\n Fit,\n GroupProps,\n PathDef,\n RectDef,\n RRectDef,\n SkEnum,\n} from \"./Common\";\nimport type { DrawingContext } from \"./DrawingContext\";\n\nexport interface DrawingNodeProps extends GroupProps {\n paint?: SkPaint;\n}\n\nexport type ImageProps = DrawingNodeProps &\n RectDef & {\n fit?: Fit;\n image: SkImage | null;\n };\n\nexport type CircleProps = CircleDef & DrawingNodeProps;\n\nexport interface PathProps extends DrawingNodeProps {\n path: PathDef;\n start: number;\n end: number;\n stroke?: StrokeOpts;\n fillType?: SkEnum<typeof FillType>;\n}\n\nexport interface CustomDrawingNodeProps extends DrawingNodeProps {\n drawing: (ctx: DrawingContext) => void;\n}\n\nexport interface LineProps extends DrawingNodeProps {\n p1: Vector;\n p2: Vector;\n}\n\nexport type OvalProps = RectDef & DrawingNodeProps;\n\nexport type RectProps = RectDef & DrawingNodeProps;\n\nexport type RoundedRectProps = RRectDef & DrawingNodeProps;\n\nexport interface CubicBezierHandle {\n pos: Vector;\n c1: Vector;\n c2: Vector;\n}\n\nexport interface PatchProps extends DrawingNodeProps {\n colors?: Color[];\n patch: [\n CubicBezierHandle,\n CubicBezierHandle,\n CubicBezierHandle,\n CubicBezierHandle\n ];\n texture?: readonly [SkPoint, SkPoint, SkPoint, SkPoint];\n blendMode?: SkEnum<typeof BlendMode>;\n}\n\nexport interface VerticesProps extends DrawingNodeProps {\n colors?: string[];\n vertices: SkPoint[];\n textures?: SkPoint[];\n mode: SkEnum<typeof VertexMode>;\n blendMode?: SkEnum<typeof BlendMode>;\n indices?: number[];\n}\n\nexport type ImageSVGProps = RectDef & {\n svg: SkSVG | null;\n} & DrawingNodeProps;\n\nexport interface PictureProps extends DrawingNodeProps {\n picture: SkPicture;\n}\n\nexport interface PointsProps extends DrawingNodeProps {\n points: SkPoint[];\n mode: SkEnum<typeof PointMode>;\n}\n\nexport interface DiffRectProps extends DrawingNodeProps {\n inner: SkRRect;\n outer: SkRRect;\n}\n\nexport interface TextProps extends DrawingNodeProps {\n font: SkFont | null;\n text: string;\n x: number;\n y: number;\n}\n\nexport interface TextPathProps extends DrawingNodeProps {\n font: SkFont | null;\n text: string;\n path: PathDef;\n initialOffset: number;\n}\n\nexport interface TextBlobProps extends DrawingNodeProps {\n blob: SkTextBlob;\n x: number;\n y: number;\n}\n\nexport interface Glyph {\n id: number;\n pos: SkPoint;\n}\n\nexport interface GlyphsProps extends DrawingNodeProps {\n font: SkFont | null;\n x: number;\n y: number;\n glyphs: Glyph[];\n}\n\nexport interface BoxProps extends DrawingNodeProps {\n box: SkRRect | SkRect;\n}\n\nexport interface BoxShadowProps {\n dx?: number;\n dy?: number;\n spread?: number;\n blur: number;\n color?: Color;\n inner?: boolean;\n}\n"],"mappings":""}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["Shaders.ts"],"sourcesContent":["import type {\n Color,\n FilterMode,\n MipmapMode,\n SkImage,\n SkRect,\n SkRuntimeEffect,\n TileMode,\n Uniforms,\n Vector,\n} from \"../../skia/types\";\n\nimport type {\n SkEnum,\n TransformProps,\n ChildrenProps,\n RectCtor,\n Fit,\n} from \"./Common\";\n\nexport interface ShaderProps extends TransformProps, ChildrenProps {\n source: SkRuntimeEffect;\n uniforms: Uniforms;\n}\n\nexport interface ImageShaderProps extends TransformProps, Partial<RectCtor> {\n tx: SkEnum<typeof TileMode>;\n ty: SkEnum<typeof TileMode>;\n fm: SkEnum<typeof FilterMode>;\n mm: SkEnum<typeof MipmapMode>;\n fit: Fit;\n rect?: SkRect;\n image: SkImage;\n}\n\nexport interface ColorProps {\n color: Color;\n}\n\nexport interface TurbulenceProps {\n freqX: number;\n freqY: number;\n octaves: number;\n seed: number;\n tileWidth: number;\n tileHeight: number;\n}\n\nexport interface FractalNoiseProps {\n freqX: number;\n freqY: number;\n octaves: number;\n seed: number;\n tileWidth: number;\n tileHeight: number;\n}\n\nexport interface GradientProps extends TransformProps {\n colors: Color[];\n positions?: number[];\n mode?: SkEnum<typeof TileMode>;\n flags?: number;\n}\n\nexport interface LinearGradientProps extends GradientProps {\n start: Vector;\n end: Vector;\n}\n\nexport interface RadialGradientProps extends GradientProps {\n c: Vector;\n r: number;\n}\n\nexport interface SweepGradientProps extends GradientProps {\n c: Vector;\n start?: number;\n end?: number;\n}\n\nexport interface TwoPointConicalGradientProps extends GradientProps {\n start: Vector;\n startR: number;\n end: Vector;\n endR: number;\n}\n"],"mappings":""}
|
1
|
+
{"version":3,"names":[],"sources":["Shaders.ts"],"sourcesContent":["import type {\n Color,\n FilterMode,\n MipmapMode,\n SkImage,\n SkRect,\n SkRuntimeEffect,\n TileMode,\n Uniforms,\n Vector,\n} from \"../../skia/types\";\n\nimport type {\n SkEnum,\n TransformProps,\n ChildrenProps,\n RectCtor,\n Fit,\n} from \"./Common\";\n\nexport interface ShaderProps extends TransformProps, ChildrenProps {\n source: SkRuntimeEffect;\n uniforms: Uniforms;\n}\n\nexport interface ImageShaderProps extends TransformProps, Partial<RectCtor> {\n tx: SkEnum<typeof TileMode>;\n ty: SkEnum<typeof TileMode>;\n fm: SkEnum<typeof FilterMode>;\n mm: SkEnum<typeof MipmapMode>;\n fit: Fit;\n rect?: SkRect;\n image: SkImage | null;\n}\n\nexport interface ColorProps {\n color: Color;\n}\n\nexport interface TurbulenceProps {\n freqX: number;\n freqY: number;\n octaves: number;\n seed: number;\n tileWidth: number;\n tileHeight: number;\n}\n\nexport interface FractalNoiseProps {\n freqX: number;\n freqY: number;\n octaves: number;\n seed: number;\n tileWidth: number;\n tileHeight: number;\n}\n\nexport interface GradientProps extends TransformProps {\n colors: Color[];\n positions?: number[];\n mode?: SkEnum<typeof TileMode>;\n flags?: number;\n}\n\nexport interface LinearGradientProps extends GradientProps {\n start: Vector;\n end: Vector;\n}\n\nexport interface RadialGradientProps extends GradientProps {\n c: Vector;\n r: number;\n}\n\nexport interface SweepGradientProps extends GradientProps {\n c: Vector;\n start?: number;\n end?: number;\n}\n\nexport interface TwoPointConicalGradientProps extends GradientProps {\n start: Vector;\n startR: number;\n end: Vector;\n endR: number;\n}\n"],"mappings":""}
|
@@ -1,15 +1,2 @@
|
|
1
|
-
import type {
|
2
|
-
|
3
|
-
import type * as ValueExports from "../values";
|
4
|
-
import type * as AnimationExports from "../animation";
|
5
|
-
import { ShaderLib } from "../renderer/components/shaders/ShaderLib";
|
6
|
-
export declare const Skia: SkiaApi;
|
7
|
-
export declare const vec: (x?: number, y?: number) => {
|
8
|
-
x: number;
|
9
|
-
y: number;
|
10
|
-
};
|
11
|
-
export declare const Mock: typeof SkiaExports & typeof ValueExports & typeof AnimationExports & {
|
12
|
-
createDrawing: () => any;
|
13
|
-
createDeclaration: () => any;
|
14
|
-
ShaderLib: typeof ShaderLib;
|
15
|
-
};
|
1
|
+
import type { CanvasKit } from "canvaskit-wasm";
|
2
|
+
export declare const Mock: (CanvasKit: CanvasKit) => any;
|
package/lib/module/mock/index.js
CHANGED
@@ -1,102 +1,40 @@
|
|
1
|
-
|
2
|
-
import
|
3
|
-
import * as ValuesHooks from "../values/hooks";
|
4
|
-
import { Selector } from "../values/selector";
|
5
|
-
import * as BaseSkia from "../skia/types";
|
6
|
-
import * as timingFunctions from "../animation/timing";
|
7
|
-
import * as springFunctions from "../animation/spring";
|
8
|
-
import * as decayFunctions from "../animation/decay";
|
9
|
-
import * as interpolateFn from "../animation/functions/interpolate";
|
10
|
-
import * as interpolatePathFn from "../animation/functions/interpolatePaths";
|
11
|
-
import * as interpolateVectorFn from "../animation/functions/interpolateVector";
|
12
|
-
import { ShaderLib } from "../renderer/components/shaders/ShaderLib";
|
1
|
+
import { JsiSkApi } from "../skia/web";
|
2
|
+
import { ValueApi } from "../values/web"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
13
3
|
|
14
|
-
|
15
|
-
constructor() {
|
16
|
-
return new Proxy(() => {}, {
|
17
|
-
get: () => new Stub(),
|
18
|
-
apply: () => new Stub(),
|
19
|
-
set: () => true
|
20
|
-
});
|
21
|
-
}
|
4
|
+
const Noop = () => undefined;
|
22
5
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
export const Skia = new Stub();
|
28
|
-
export const vec = (x, y) => {
|
29
|
-
var _ref;
|
6
|
+
const NoopValue = () => ({
|
7
|
+
current: 0
|
8
|
+
});
|
30
9
|
|
10
|
+
export const Mock = CanvasKit => {
|
11
|
+
global.SkiaApi = JsiSkApi(CanvasKit);
|
12
|
+
global.SkiaValueApi = ValueApi;
|
13
|
+
const Skia = global.SkiaApi;
|
31
14
|
return {
|
32
|
-
|
33
|
-
|
15
|
+
Skia,
|
16
|
+
...require("../renderer/components"),
|
17
|
+
...require("../skia"),
|
18
|
+
...require("../values"),
|
19
|
+
...require("../animation"),
|
20
|
+
...require("../dom/types"),
|
21
|
+
...require("../dom/nodes"),
|
22
|
+
// We could use the real Canvas if we mock the SkiaView component for node
|
23
|
+
Canvas: Noop,
|
24
|
+
useValue: NoopValue,
|
25
|
+
useComputedValue: NoopValue,
|
26
|
+
useTouchHandler: Noop,
|
27
|
+
useTiming: NoopValue,
|
28
|
+
useLoop: NoopValue,
|
29
|
+
useSpring: NoopValue,
|
30
|
+
useClockValue: NoopValue,
|
31
|
+
useValueEffect: Noop,
|
32
|
+
useRawData: Noop,
|
33
|
+
useData: Noop,
|
34
|
+
useFont: () => Skia.Font(undefined, 0),
|
35
|
+
useTypeface: () => null,
|
36
|
+
useImage: () => null,
|
37
|
+
useSVG: () => null
|
34
38
|
};
|
35
39
|
};
|
36
|
-
export const Mock = {
|
37
|
-
// SkiaExports
|
38
|
-
// 1. Skia API. BaseSkia contains the enums, and functions like isPaint etc
|
39
|
-
Skia,
|
40
|
-
...BaseSkia,
|
41
|
-
// 2. Hooks
|
42
|
-
useRawData: Noop,
|
43
|
-
useData: Noop,
|
44
|
-
useFont: Noop,
|
45
|
-
useTypeface: Noop,
|
46
|
-
useImage: Noop,
|
47
|
-
useSVG: Noop,
|
48
|
-
createPicture: Noop,
|
49
|
-
// 3. Point/Rect/Transform utilities
|
50
|
-
vec,
|
51
|
-
rect: (x, y, width, height) => ({
|
52
|
-
x,
|
53
|
-
y,
|
54
|
-
width,
|
55
|
-
height
|
56
|
-
}),
|
57
|
-
rrect: (r, rx, ry) => ({
|
58
|
-
rect: r,
|
59
|
-
rx,
|
60
|
-
ry
|
61
|
-
}),
|
62
|
-
point: vec,
|
63
|
-
add: (a, b) => vec(a.x + b.x, a.y + b.y),
|
64
|
-
sub: (a, b) => vec(a.x - b.x, a.y - b.y),
|
65
|
-
neg: a => vec(-a.x, -a.y),
|
66
|
-
dist: (a, b) => Math.hypot(a.x - b.x, a.y - b.y),
|
67
|
-
translate: _ref2 => {
|
68
|
-
let {
|
69
|
-
x,
|
70
|
-
y
|
71
|
-
} = _ref2;
|
72
|
-
return [{
|
73
|
-
translateX: x
|
74
|
-
}, {
|
75
|
-
translateY: y
|
76
|
-
}];
|
77
|
-
},
|
78
|
-
bounds: Noop,
|
79
|
-
topLeft: Noop,
|
80
|
-
topRight: Noop,
|
81
|
-
bottomLeft: Noop,
|
82
|
-
bottomRight: Noop,
|
83
|
-
center: Noop,
|
84
|
-
processTransform2d: Noop,
|
85
|
-
// ValueExports
|
86
|
-
...Values,
|
87
|
-
...ValuesHooks,
|
88
|
-
Selector,
|
89
|
-
// Animations
|
90
|
-
...timingFunctions,
|
91
|
-
...springFunctions,
|
92
|
-
...decayFunctions,
|
93
|
-
...interpolateFn,
|
94
|
-
...interpolatePathFn,
|
95
|
-
...interpolateVectorFn,
|
96
|
-
interpolateColors: (_value, _inputRange, _outputRange) => Float32Array.of(0, 0, 0, 0),
|
97
|
-
mixColors: (_v, _x, _y) => Float32Array.of(0, 0, 0, 0),
|
98
|
-
ShaderLib,
|
99
|
-
createDrawing: Noop,
|
100
|
-
createDeclaration: Noop
|
101
|
-
};
|
102
40
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["
|
1
|
+
{"version":3,"names":["JsiSkApi","ValueApi","Noop","undefined","NoopValue","current","Mock","CanvasKit","global","SkiaApi","SkiaValueApi","Skia","require","Canvas","useValue","useComputedValue","useTouchHandler","useTiming","useLoop","useSpring","useClockValue","useValueEffect","useRawData","useData","useFont","Font","useTypeface","useImage","useSVG"],"sources":["index.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport { JsiSkApi } from \"../skia/web\";\nimport { ValueApi } from \"../values/web\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst Noop: () => any = () => undefined;\nconst NoopValue = () => ({ current: 0 });\n\nexport const Mock = (CanvasKit: CanvasKit) => {\n global.SkiaApi = JsiSkApi(CanvasKit);\n global.SkiaValueApi = ValueApi;\n const Skia = global.SkiaApi;\n return {\n Skia,\n ...require(\"../renderer/components\"),\n ...require(\"../skia\"),\n ...require(\"../values\"),\n ...require(\"../animation\"),\n ...require(\"../dom/types\"),\n ...require(\"../dom/nodes\"),\n // We could use the real Canvas if we mock the SkiaView component for node\n Canvas: Noop,\n useValue: NoopValue,\n useComputedValue: NoopValue,\n useTouchHandler: Noop,\n useTiming: NoopValue,\n useLoop: NoopValue,\n useSpring: NoopValue,\n useClockValue: NoopValue,\n useValueEffect: Noop,\n useRawData: Noop,\n useData: Noop,\n useFont: () => Skia.Font(undefined, 0),\n useTypeface: () => null,\n useImage: () => null,\n useSVG: () => null,\n };\n};\n"],"mappings":"AAEA,SAASA,QAAT,QAAyB,aAAzB;AACA,SAASC,QAAT,QAAyB,eAAzB,C,CAEA;;AACA,MAAMC,IAAe,GAAG,MAAMC,SAA9B;;AACA,MAAMC,SAAS,GAAG,OAAO;EAAEC,OAAO,EAAE;AAAX,CAAP,CAAlB;;AAEA,OAAO,MAAMC,IAAI,GAAIC,SAAD,IAA0B;EAC5CC,MAAM,CAACC,OAAP,GAAiBT,QAAQ,CAACO,SAAD,CAAzB;EACAC,MAAM,CAACE,YAAP,GAAsBT,QAAtB;EACA,MAAMU,IAAI,GAAGH,MAAM,CAACC,OAApB;EACA,OAAO;IACLE,IADK;IAEL,GAAGC,OAAO,CAAC,wBAAD,CAFL;IAGL,GAAGA,OAAO,CAAC,SAAD,CAHL;IAIL,GAAGA,OAAO,CAAC,WAAD,CAJL;IAKL,GAAGA,OAAO,CAAC,cAAD,CALL;IAML,GAAGA,OAAO,CAAC,cAAD,CANL;IAOL,GAAGA,OAAO,CAAC,cAAD,CAPL;IAQL;IACAC,MAAM,EAAEX,IATH;IAULY,QAAQ,EAAEV,SAVL;IAWLW,gBAAgB,EAAEX,SAXb;IAYLY,eAAe,EAAEd,IAZZ;IAaLe,SAAS,EAAEb,SAbN;IAcLc,OAAO,EAAEd,SAdJ;IAeLe,SAAS,EAAEf,SAfN;IAgBLgB,aAAa,EAAEhB,SAhBV;IAiBLiB,cAAc,EAAEnB,IAjBX;IAkBLoB,UAAU,EAAEpB,IAlBP;IAmBLqB,OAAO,EAAErB,IAnBJ;IAoBLsB,OAAO,EAAE,MAAMb,IAAI,CAACc,IAAL,CAAUtB,SAAV,EAAqB,CAArB,CApBV;IAqBLuB,WAAW,EAAE,MAAM,IArBd;IAsBLC,QAAQ,EAAE,MAAM,IAtBX;IAuBLC,MAAM,EAAE,MAAM;EAvBT,CAAP;AAyBD,CA7BM"}
|
@@ -1,5 +1,17 @@
|
|
1
|
-
|
1
|
+
/// <reference types="react" />
|
2
|
+
import type { DataSourceParam, SkImage } from "../types";
|
2
3
|
/**
|
3
4
|
* Returns a Skia Image object
|
4
5
|
* */
|
5
|
-
export declare const useImage: (source: DataSourceParam, onError?: ((err: Error) => void) | undefined) =>
|
6
|
+
export declare const useImage: (source: DataSourceParam, onError?: ((err: Error) => void) | undefined) => SkImage | null;
|
7
|
+
/**
|
8
|
+
* Creates an image from a given view reference. NOTE: This method has different implementations
|
9
|
+
* on web/native. On web, the callback is called with the view ref and the callback is expected to
|
10
|
+
* return a promise that resolves to a Skia Image object. On native, the view ref is used to
|
11
|
+
* find the view tag and the Skia Image object is created from the view tag. This means that on web
|
12
|
+
* you will need to implement the logic to create the image from the view ref yourself.
|
13
|
+
* @param viewRef Ref to the view we're creating an image from
|
14
|
+
* @returns A promise that resolves to a Skia Image object or rejects
|
15
|
+
* with an error id the view tag is invalid.
|
16
|
+
*/
|
17
|
+
export declare const makeImageFromView: <T extends number | import("react").Component<unknown, unknown, any> | import("react").ComponentClass<unknown, any>>(viewRef: import("react").RefObject<T>, callback?: ((viewRef: import("react").RefObject<T>) => Promise<SkImage | null>) | null) => Promise<SkImage | null>;
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { findNodeHandle, Platform } from "react-native";
|
1
2
|
import { Skia } from "../Skia";
|
2
3
|
import { useRawData } from "./Data";
|
3
4
|
const imgFactory = Skia.Image.MakeImageFromEncoded.bind(Skia.Image);
|
@@ -6,4 +7,35 @@ const imgFactory = Skia.Image.MakeImageFromEncoded.bind(Skia.Image);
|
|
6
7
|
* */
|
7
8
|
|
8
9
|
export const useImage = (source, onError) => useRawData(source, imgFactory, onError);
|
10
|
+
/**
|
11
|
+
* Creates an image from a given view reference. NOTE: This method has different implementations
|
12
|
+
* on web/native. On web, the callback is called with the view ref and the callback is expected to
|
13
|
+
* return a promise that resolves to a Skia Image object. On native, the view ref is used to
|
14
|
+
* find the view tag and the Skia Image object is created from the view tag. This means that on web
|
15
|
+
* you will need to implement the logic to create the image from the view ref yourself.
|
16
|
+
* @param viewRef Ref to the view we're creating an image from
|
17
|
+
* @returns A promise that resolves to a Skia Image object or rejects
|
18
|
+
* with an error id the view tag is invalid.
|
19
|
+
*/
|
20
|
+
|
21
|
+
export const makeImageFromView = function (viewRef) {
|
22
|
+
let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
23
|
+
|
24
|
+
// In web implementation we just delegate the work to the provided callback
|
25
|
+
if (Platform.OS === "web") {
|
26
|
+
if (callback) {
|
27
|
+
return callback(viewRef);
|
28
|
+
} else {
|
29
|
+
Promise.reject(new Error("Callback is required on web in the makeImageFromView function."));
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
const viewTag = findNodeHandle(viewRef.current);
|
34
|
+
|
35
|
+
if (viewTag !== null && viewTag !== 0) {
|
36
|
+
return Skia.Image.MakeImageFromViewTag(viewTag);
|
37
|
+
}
|
38
|
+
|
39
|
+
return Promise.reject(new Error("Invalid view tag"));
|
40
|
+
};
|
9
41
|
//# sourceMappingURL=Image.js.map
|