@shopify/react-native-skia 2.4.6 → 2.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cpp/rnskia/RNSkPictureView.h +7 -5
- package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.js +1 -7
- package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.d.ts +1 -1
- package/lib/commonjs/views/SkiaPictureView.web.d.ts +4 -1
- package/lib/commonjs/views/SkiaPictureView.web.js +7 -2
- package/lib/commonjs/views/SkiaPictureView.web.js.map +1 -1
- package/lib/module/skia/web/JsiSkCanvas.d.ts +1 -1
- package/lib/module/skia/web/JsiSkCanvas.js +1 -7
- package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/module/specs/SkiaPictureViewNativeComponent.web.d.ts +1 -1
- package/lib/module/views/SkiaPictureView.web.d.ts +4 -1
- package/lib/module/views/SkiaPictureView.web.js +7 -3
- package/lib/module/views/SkiaPictureView.web.js.map +1 -1
- package/lib/typescript/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -1
- package/lib/typescript/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.d.ts +1 -11
- package/lib/typescript/lib/commonjs/views/SkiaPictureView.web.d.ts +1 -1
- package/lib/typescript/lib/module/skia/web/JsiSkCanvas.d.ts +1 -1
- package/lib/typescript/lib/module/specs/SkiaPictureViewNativeComponent.web.d.ts +1 -1
- package/lib/typescript/lib/module/views/SkiaPictureView.web.d.ts +1 -1
- package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +1 -1
- package/lib/typescript/src/specs/SkiaPictureViewNativeComponent.web.d.ts +1 -1
- package/lib/typescript/src/views/SkiaPictureView.web.d.ts +4 -1
- package/package.json +1 -1
- package/src/skia/web/JsiSkCanvas.ts +1 -3
- package/src/views/SkiaPictureView.web.tsx +8 -7
|
@@ -60,14 +60,16 @@ public:
|
|
|
60
60
|
|
|
61
61
|
private:
|
|
62
62
|
bool performDraw(std::shared_ptr<RNSkCanvasProvider> canvasProvider) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
// Capture picture pointer to ensure thread safety - _picture can be
|
|
64
|
+
// modified from the JS thread while we're drawing on the render thread
|
|
65
|
+
sk_sp<SkPicture> picture = _picture;
|
|
66
|
+
auto pd = _platformContext->getPixelDensity();
|
|
67
|
+
return canvasProvider->renderToCanvas([=](SkCanvas *canvas) {
|
|
66
68
|
canvas->clear(SK_ColorTRANSPARENT);
|
|
67
69
|
canvas->save();
|
|
68
70
|
canvas->scale(pd, pd);
|
|
69
|
-
if (
|
|
70
|
-
canvas->drawPicture(
|
|
71
|
+
if (picture != nullptr) {
|
|
72
|
+
canvas->drawPicture(picture);
|
|
71
73
|
}
|
|
72
74
|
canvas->restore();
|
|
73
75
|
});
|
|
@@ -27,7 +27,7 @@ export declare class JsiSkCanvas extends HostObject<Canvas, "Canvas"> implements
|
|
|
27
27
|
drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont): void;
|
|
28
28
|
drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint): void;
|
|
29
29
|
drawGlyphs(glyphs: number[], positions: SkPoint[], x: number, y: number, font: SkFont, paint: SkPaint): void;
|
|
30
|
-
drawSvg(svg: SkSVG,
|
|
30
|
+
drawSvg(svg: SkSVG, _width?: number, _height?: number): void;
|
|
31
31
|
save(): number;
|
|
32
32
|
saveLayer(paint?: SkPaint, bounds?: SkRect | null, backdrop?: SkImageFilter | null, flags?: SaveLayerFlag): number;
|
|
33
33
|
restore(): void;
|
|
@@ -101,13 +101,7 @@ class JsiSkCanvas extends _Host.HostObject {
|
|
|
101
101
|
drawGlyphs(glyphs, positions, x, y, font, paint) {
|
|
102
102
|
this.ref.drawGlyphs(glyphs, positions.map(p => [p.x, p.y]).flat(), x, y, _JsiSkFont.JsiSkFont.fromValue(font), _JsiSkPaint.JsiSkPaint.fromValue(paint));
|
|
103
103
|
}
|
|
104
|
-
drawSvg(svg,
|
|
105
|
-
const ctm = this.ref.getLocalToDevice();
|
|
106
|
-
console.log({
|
|
107
|
-
ctm,
|
|
108
|
-
width,
|
|
109
|
-
height
|
|
110
|
-
});
|
|
104
|
+
drawSvg(svg, _width, _height) {
|
|
111
105
|
const image = this.CanvasKit.MakeImageFromCanvasImageSource(svg.ref);
|
|
112
106
|
this.ref.drawImage(image, 0, 0);
|
|
113
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_types","require","_Host","_JsiSkPaint","_JsiSkRect","_JsiSkRRect","_JsiSkImage","_JsiSkVertices","_JsiSkPath","_JsiSkFont","_JsiSkTextBlob","_JsiSkPicture","_JsiSkMatrix","_JsiSkImageFilter","_JsiSkPoint","_JsiSkRSXform","JsiSkCanvas","HostObject","constructor","CanvasKit","ref","drawRect","rect","paint","JsiSkRect","fromValue","JsiSkPaint","drawImage","image","x","y","JsiSkImage","drawImageRect","img","src","dest","fastSample","drawImageCubic","left","top","B","C","drawImageOptions","fm","mm","getEnum","drawImageNine","center","filter","Array","from","drawImageRectCubic","drawImageRectOptions","drawPaint","drawLine","x0","y0","x1","y1","drawCircle","cx","cy","radius","drawVertices","verts","mode","JsiSkVertices","drawPatch","cubics","colors","texs","map","flat","flatMap","p","JsiSkPoint","undefined","restoreToCount","saveCount","getTotalMatrix","JsiSkMatrix","Float32Array","of","drawPoints","points","drawArc","oval","startAngle","sweepAngle","useCenter","drawRRect","rrect","JsiSkRRect","drawDRRect","outer","inner","drawOval","drawPath","path","JsiSkPath","drawText","str","font","JsiSkFont","drawTextBlob","blob","JsiSkTextBlob","drawGlyphs","glyphs","positions","drawSvg","svg","width","height","ctm","getLocalToDevice","console","log","MakeImageFromCanvasImageSource","save","saveLayer","bounds","backdrop","flags","JsiSkImageFilter","restore","rotate","rotationInDegrees","rx","ry","scale","sx","sy","skew","translate","dx","dy","drawColor","color","blendMode","clear","clipPath","op","doAntiAlias","clipRect","clipRRect","concat","m","isArray","drawPicture","skp","JsiSkPicture","drawAtlas","atlas","srcs","dsts","sampling","s","dst","JsiSkRSXform","cls","Uint32Array","length","i","r","g","b","a","ColorAsInt","ckSampling","FilterMode","Linear","mipmap","MipmapMode","None","isCubicSampling","BlendMode","DstOver","readPixels","srcX","srcY","imageInfo","pxInfo","colorSpace","ColorSpace","SRGB","alphaType","colorType","exports"],"sources":["JsiSkCanvas.ts"],"sourcesContent":["import type {\n Canvas,\n CanvasKit,\n CubicResampler as CKCubicResampler,\n FilterOptions as CKFilterOptions,\n} from \"canvaskit-wasm\";\n\nimport {\n type BlendMode,\n type ClipOp,\n type FilterMode,\n type MipmapMode,\n type PointMode,\n type SaveLayerFlag,\n type ImageInfo,\n type SkCanvas,\n type SkColor,\n type SkFont,\n type SkImage,\n type SkImageFilter,\n type SkMatrix,\n type SkPaint,\n type SkPath,\n type SkPicture,\n type SkPoint,\n type SkRect,\n type InputRRect,\n type SkSVG,\n type SkTextBlob,\n type SkVertices,\n type SkRSXform,\n type CubicResampler,\n type FilterOptions,\n isCubicSampling,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkVertices } from \"./JsiSkVertices\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { JsiSkTextBlob } from \"./JsiSkTextBlob\";\nimport { JsiSkPicture } from \"./JsiSkPicture\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkImageFilter } from \"./JsiSkImageFilter\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport type { JsiSkSVG } from \"./JsiSkSVG\";\n\nexport class JsiSkCanvas\n extends HostObject<Canvas, \"Canvas\">\n implements SkCanvas\n{\n constructor(CanvasKit: CanvasKit, ref: Canvas) {\n super(CanvasKit, ref, \"Canvas\");\n }\n\n drawRect(rect: SkRect, paint: SkPaint) {\n this.ref.drawRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawImage(image: SkImage, x: number, y: number, paint?: SkPaint) {\n this.ref.drawImage(\n JsiSkImage.fromValue(image),\n x,\n y,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRect(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n paint: SkPaint,\n fastSample?: boolean\n ) {\n this.ref.drawImageRect(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n JsiSkPaint.fromValue(paint),\n fastSample\n );\n }\n\n drawImageCubic(\n img: SkImage,\n left: number,\n top: number,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageCubic(\n JsiSkImage.fromValue(img),\n left,\n top,\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageOptions(\n img: SkImage,\n left: number,\n top: number,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageOptions(\n JsiSkImage.fromValue(img),\n left,\n top,\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageNine(\n img: SkImage,\n center: SkRect,\n dest: SkRect,\n filter: FilterMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageNine(\n JsiSkImage.fromValue(img),\n Array.from(JsiSkRect.fromValue(this.CanvasKit, center)),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", filter),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectCubic(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectCubic(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectOptions(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectOptions(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawPaint(paint: SkPaint) {\n this.ref.drawPaint(JsiSkPaint.fromValue(paint));\n }\n\n drawLine(x0: number, y0: number, x1: number, y1: number, paint: SkPaint) {\n this.ref.drawLine(x0, y0, x1, y1, JsiSkPaint.fromValue(paint));\n }\n\n drawCircle(cx: number, cy: number, radius: number, paint: SkPaint) {\n this.ref.drawCircle(cx, cy, radius, JsiSkPaint.fromValue(paint));\n }\n\n drawVertices(verts: SkVertices, mode: BlendMode, paint: SkPaint) {\n this.ref.drawVertices(\n JsiSkVertices.fromValue(verts),\n getEnum(this.CanvasKit, \"BlendMode\", mode),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPatch(\n cubics: SkPoint[],\n colors?: SkColor[] | null,\n texs?: SkPoint[] | null,\n mode?: BlendMode | null,\n paint?: SkPaint\n ) {\n this.ref.drawPatch(\n cubics.map(({ x, y }) => [x, y]).flat(),\n colors,\n texs ? texs.flatMap((p) => Array.from(JsiSkPoint.fromValue(p))) : texs,\n mode ? getEnum(this.CanvasKit, \"BlendMode\", mode) : null,\n paint ? JsiSkPaint.fromValue(paint) : undefined\n );\n }\n\n restoreToCount(saveCount: number) {\n this.ref.restoreToCount(saveCount);\n }\n\n getTotalMatrix(): SkMatrix {\n return new JsiSkMatrix(\n this.CanvasKit,\n Float32Array.of(...this.ref.getTotalMatrix())\n );\n }\n\n drawPoints(mode: PointMode, points: SkPoint[], paint: SkPaint) {\n this.ref.drawPoints(\n getEnum(this.CanvasKit, \"PointMode\", mode),\n points.map(({ x, y }) => [x, y]).flat(),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawArc(\n oval: SkRect,\n startAngle: number,\n sweepAngle: number,\n useCenter: boolean,\n paint: SkPaint\n ) {\n this.ref.drawArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngle,\n sweepAngle,\n useCenter,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawRRect(rrect: InputRRect, paint: SkPaint) {\n this.ref.drawRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawDRRect(outer: InputRRect, inner: InputRRect, paint: SkPaint) {\n this.ref.drawDRRect(\n JsiSkRRect.fromValue(this.CanvasKit, outer),\n JsiSkRRect.fromValue(this.CanvasKit, inner),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawOval(oval: SkRect, paint: SkPaint) {\n this.ref.drawOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPath(path: SkPath, paint: SkPaint) {\n this.ref.drawPath(JsiSkPath.fromValue(path), JsiSkPaint.fromValue(paint));\n }\n\n drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont) {\n this.ref.drawText(\n str,\n x,\n y,\n JsiSkPaint.fromValue(paint),\n JsiSkFont.fromValue(font)\n );\n }\n\n drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint) {\n this.ref.drawTextBlob(\n JsiSkTextBlob.fromValue(blob),\n x,\n y,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawGlyphs(\n glyphs: number[],\n positions: SkPoint[],\n x: number,\n y: number,\n font: SkFont,\n paint: SkPaint\n ) {\n this.ref.drawGlyphs(\n glyphs,\n positions.map((p) => [p.x, p.y]).flat(),\n x,\n y,\n JsiSkFont.fromValue(font),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawSvg(svg: SkSVG, width?: number, height?: number) {\n const ctm = this.ref.getLocalToDevice();\n console.log({ ctm, width, height });\n const image = this.CanvasKit.MakeImageFromCanvasImageSource(\n (svg as JsiSkSVG).ref\n );\n this.ref.drawImage(image, 0, 0);\n }\n\n save() {\n return this.ref.save();\n }\n\n saveLayer(\n paint?: SkPaint,\n bounds?: SkRect | null,\n backdrop?: SkImageFilter | null,\n flags?: SaveLayerFlag\n ) {\n return this.ref.saveLayer(\n paint ? JsiSkPaint.fromValue(paint) : undefined,\n bounds ? JsiSkRect.fromValue(this.CanvasKit, bounds) : bounds,\n backdrop ? JsiSkImageFilter.fromValue(backdrop) : backdrop,\n flags\n );\n }\n\n restore() {\n this.ref.restore();\n }\n\n rotate(rotationInDegrees: number, rx: number, ry: number) {\n this.ref.rotate(rotationInDegrees, rx, ry);\n }\n\n scale(sx: number, sy: number) {\n this.ref.scale(sx, sy);\n }\n\n skew(sx: number, sy: number) {\n this.ref.skew(sx, sy);\n }\n\n translate(dx: number, dy: number) {\n this.ref.translate(dx, dy);\n }\n\n drawColor(color: SkColor, blendMode?: BlendMode) {\n this.ref.drawColor(\n color,\n blendMode ? getEnum(this.CanvasKit, \"BlendMode\", blendMode) : undefined\n );\n }\n\n clear(color: SkColor) {\n this.ref.clear(color);\n }\n\n clipPath(path: SkPath, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipPath(\n JsiSkPath.fromValue(path),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRect(rect: SkRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRRect(rrect: InputRRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n concat(m: SkMatrix | number[]) {\n this.ref.concat(Array.isArray(m) ? m : JsiSkMatrix.fromValue(m));\n }\n\n drawPicture(skp: SkPicture) {\n this.ref.drawPicture(JsiSkPicture.fromValue(skp));\n }\n\n drawAtlas(\n atlas: SkImage,\n srcs: SkRect[],\n dsts: SkRSXform[],\n paint: SkPaint,\n blendMode?: BlendMode,\n colors?: SkColor[],\n sampling?: CubicResampler | FilterOptions\n ) {\n const src = srcs.flatMap((s) =>\n Array.from(JsiSkRect.fromValue(this.CanvasKit, s))\n );\n const dst = dsts.flatMap((s) => Array.from(JsiSkRSXform.fromValue(s)));\n let cls: Uint32Array | undefined;\n if (colors) {\n cls = new Uint32Array(colors.length);\n for (let i = 0; i < colors.length; i++) {\n const [r, g, b, a] = colors[i];\n cls[i] = this.CanvasKit.ColorAsInt(r * 255, g * 255, b * 255, a * 255);\n }\n }\n let ckSampling: CKCubicResampler | CKFilterOptions = {\n filter: this.CanvasKit.FilterMode.Linear,\n mipmap: this.CanvasKit.MipmapMode.None,\n };\n if (sampling && isCubicSampling(sampling)) {\n ckSampling = sampling;\n } else if (sampling) {\n ckSampling = {\n filter: getEnum(this.CanvasKit, \"FilterMode\", sampling.filter),\n mipmap: sampling.mipmap\n ? getEnum(this.CanvasKit, \"MipmapMode\", sampling.mipmap)\n : this.CanvasKit.MipmapMode.None,\n };\n }\n this.ref.drawAtlas(\n JsiSkImage.fromValue(atlas),\n src,\n dst,\n JsiSkPaint.fromValue(paint),\n blendMode\n ? getEnum(this.CanvasKit, \"BlendMode\", blendMode)\n : this.CanvasKit.BlendMode.DstOver,\n cls,\n ckSampling\n );\n }\n\n readPixels(srcX: number, srcY: number, imageInfo: ImageInfo) {\n const pxInfo = {\n width: imageInfo.width,\n height: imageInfo.height,\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n alphaType: getEnum(this.CanvasKit, \"AlphaType\", imageInfo.alphaType),\n colorType: getEnum(this.CanvasKit, \"ColorType\", imageInfo.colorType),\n };\n return this.ref.readPixels(srcX, srcY, pxInfo);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_types","require","_Host","_JsiSkPaint","_JsiSkRect","_JsiSkRRect","_JsiSkImage","_JsiSkVertices","_JsiSkPath","_JsiSkFont","_JsiSkTextBlob","_JsiSkPicture","_JsiSkMatrix","_JsiSkImageFilter","_JsiSkPoint","_JsiSkRSXform","JsiSkCanvas","HostObject","constructor","CanvasKit","ref","drawRect","rect","paint","JsiSkRect","fromValue","JsiSkPaint","drawImage","image","x","y","JsiSkImage","drawImageRect","img","src","dest","fastSample","drawImageCubic","left","top","B","C","drawImageOptions","fm","mm","getEnum","drawImageNine","center","filter","Array","from","drawImageRectCubic","drawImageRectOptions","drawPaint","drawLine","x0","y0","x1","y1","drawCircle","cx","cy","radius","drawVertices","verts","mode","JsiSkVertices","drawPatch","cubics","colors","texs","map","flat","flatMap","p","JsiSkPoint","undefined","restoreToCount","saveCount","getTotalMatrix","JsiSkMatrix","Float32Array","of","drawPoints","points","drawArc","oval","startAngle","sweepAngle","useCenter","drawRRect","rrect","JsiSkRRect","drawDRRect","outer","inner","drawOval","drawPath","path","JsiSkPath","drawText","str","font","JsiSkFont","drawTextBlob","blob","JsiSkTextBlob","drawGlyphs","glyphs","positions","drawSvg","svg","_width","_height","MakeImageFromCanvasImageSource","save","saveLayer","bounds","backdrop","flags","JsiSkImageFilter","restore","rotate","rotationInDegrees","rx","ry","scale","sx","sy","skew","translate","dx","dy","drawColor","color","blendMode","clear","clipPath","op","doAntiAlias","clipRect","clipRRect","concat","m","isArray","drawPicture","skp","JsiSkPicture","drawAtlas","atlas","srcs","dsts","sampling","s","dst","JsiSkRSXform","cls","Uint32Array","length","i","r","g","b","a","ColorAsInt","ckSampling","FilterMode","Linear","mipmap","MipmapMode","None","isCubicSampling","BlendMode","DstOver","readPixels","srcX","srcY","imageInfo","pxInfo","width","height","colorSpace","ColorSpace","SRGB","alphaType","colorType","exports"],"sources":["JsiSkCanvas.ts"],"sourcesContent":["import type {\n Canvas,\n CanvasKit,\n CubicResampler as CKCubicResampler,\n FilterOptions as CKFilterOptions,\n} from \"canvaskit-wasm\";\n\nimport {\n type BlendMode,\n type ClipOp,\n type FilterMode,\n type MipmapMode,\n type PointMode,\n type SaveLayerFlag,\n type ImageInfo,\n type SkCanvas,\n type SkColor,\n type SkFont,\n type SkImage,\n type SkImageFilter,\n type SkMatrix,\n type SkPaint,\n type SkPath,\n type SkPicture,\n type SkPoint,\n type SkRect,\n type InputRRect,\n type SkSVG,\n type SkTextBlob,\n type SkVertices,\n type SkRSXform,\n type CubicResampler,\n type FilterOptions,\n isCubicSampling,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkVertices } from \"./JsiSkVertices\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { JsiSkTextBlob } from \"./JsiSkTextBlob\";\nimport { JsiSkPicture } from \"./JsiSkPicture\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkImageFilter } from \"./JsiSkImageFilter\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport type { JsiSkSVG } from \"./JsiSkSVG\";\n\nexport class JsiSkCanvas\n extends HostObject<Canvas, \"Canvas\">\n implements SkCanvas\n{\n constructor(CanvasKit: CanvasKit, ref: Canvas) {\n super(CanvasKit, ref, \"Canvas\");\n }\n\n drawRect(rect: SkRect, paint: SkPaint) {\n this.ref.drawRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawImage(image: SkImage, x: number, y: number, paint?: SkPaint) {\n this.ref.drawImage(\n JsiSkImage.fromValue(image),\n x,\n y,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRect(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n paint: SkPaint,\n fastSample?: boolean\n ) {\n this.ref.drawImageRect(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n JsiSkPaint.fromValue(paint),\n fastSample\n );\n }\n\n drawImageCubic(\n img: SkImage,\n left: number,\n top: number,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageCubic(\n JsiSkImage.fromValue(img),\n left,\n top,\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageOptions(\n img: SkImage,\n left: number,\n top: number,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageOptions(\n JsiSkImage.fromValue(img),\n left,\n top,\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageNine(\n img: SkImage,\n center: SkRect,\n dest: SkRect,\n filter: FilterMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageNine(\n JsiSkImage.fromValue(img),\n Array.from(JsiSkRect.fromValue(this.CanvasKit, center)),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", filter),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectCubic(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectCubic(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectOptions(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectOptions(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawPaint(paint: SkPaint) {\n this.ref.drawPaint(JsiSkPaint.fromValue(paint));\n }\n\n drawLine(x0: number, y0: number, x1: number, y1: number, paint: SkPaint) {\n this.ref.drawLine(x0, y0, x1, y1, JsiSkPaint.fromValue(paint));\n }\n\n drawCircle(cx: number, cy: number, radius: number, paint: SkPaint) {\n this.ref.drawCircle(cx, cy, radius, JsiSkPaint.fromValue(paint));\n }\n\n drawVertices(verts: SkVertices, mode: BlendMode, paint: SkPaint) {\n this.ref.drawVertices(\n JsiSkVertices.fromValue(verts),\n getEnum(this.CanvasKit, \"BlendMode\", mode),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPatch(\n cubics: SkPoint[],\n colors?: SkColor[] | null,\n texs?: SkPoint[] | null,\n mode?: BlendMode | null,\n paint?: SkPaint\n ) {\n this.ref.drawPatch(\n cubics.map(({ x, y }) => [x, y]).flat(),\n colors,\n texs ? texs.flatMap((p) => Array.from(JsiSkPoint.fromValue(p))) : texs,\n mode ? getEnum(this.CanvasKit, \"BlendMode\", mode) : null,\n paint ? JsiSkPaint.fromValue(paint) : undefined\n );\n }\n\n restoreToCount(saveCount: number) {\n this.ref.restoreToCount(saveCount);\n }\n\n getTotalMatrix(): SkMatrix {\n return new JsiSkMatrix(\n this.CanvasKit,\n Float32Array.of(...this.ref.getTotalMatrix())\n );\n }\n\n drawPoints(mode: PointMode, points: SkPoint[], paint: SkPaint) {\n this.ref.drawPoints(\n getEnum(this.CanvasKit, \"PointMode\", mode),\n points.map(({ x, y }) => [x, y]).flat(),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawArc(\n oval: SkRect,\n startAngle: number,\n sweepAngle: number,\n useCenter: boolean,\n paint: SkPaint\n ) {\n this.ref.drawArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngle,\n sweepAngle,\n useCenter,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawRRect(rrect: InputRRect, paint: SkPaint) {\n this.ref.drawRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawDRRect(outer: InputRRect, inner: InputRRect, paint: SkPaint) {\n this.ref.drawDRRect(\n JsiSkRRect.fromValue(this.CanvasKit, outer),\n JsiSkRRect.fromValue(this.CanvasKit, inner),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawOval(oval: SkRect, paint: SkPaint) {\n this.ref.drawOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPath(path: SkPath, paint: SkPaint) {\n this.ref.drawPath(JsiSkPath.fromValue(path), JsiSkPaint.fromValue(paint));\n }\n\n drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont) {\n this.ref.drawText(\n str,\n x,\n y,\n JsiSkPaint.fromValue(paint),\n JsiSkFont.fromValue(font)\n );\n }\n\n drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint) {\n this.ref.drawTextBlob(\n JsiSkTextBlob.fromValue(blob),\n x,\n y,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawGlyphs(\n glyphs: number[],\n positions: SkPoint[],\n x: number,\n y: number,\n font: SkFont,\n paint: SkPaint\n ) {\n this.ref.drawGlyphs(\n glyphs,\n positions.map((p) => [p.x, p.y]).flat(),\n x,\n y,\n JsiSkFont.fromValue(font),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawSvg(svg: SkSVG, _width?: number, _height?: number) {\n const image = this.CanvasKit.MakeImageFromCanvasImageSource(\n (svg as JsiSkSVG).ref\n );\n this.ref.drawImage(image, 0, 0);\n }\n\n save() {\n return this.ref.save();\n }\n\n saveLayer(\n paint?: SkPaint,\n bounds?: SkRect | null,\n backdrop?: SkImageFilter | null,\n flags?: SaveLayerFlag\n ) {\n return this.ref.saveLayer(\n paint ? JsiSkPaint.fromValue(paint) : undefined,\n bounds ? JsiSkRect.fromValue(this.CanvasKit, bounds) : bounds,\n backdrop ? JsiSkImageFilter.fromValue(backdrop) : backdrop,\n flags\n );\n }\n\n restore() {\n this.ref.restore();\n }\n\n rotate(rotationInDegrees: number, rx: number, ry: number) {\n this.ref.rotate(rotationInDegrees, rx, ry);\n }\n\n scale(sx: number, sy: number) {\n this.ref.scale(sx, sy);\n }\n\n skew(sx: number, sy: number) {\n this.ref.skew(sx, sy);\n }\n\n translate(dx: number, dy: number) {\n this.ref.translate(dx, dy);\n }\n\n drawColor(color: SkColor, blendMode?: BlendMode) {\n this.ref.drawColor(\n color,\n blendMode ? getEnum(this.CanvasKit, \"BlendMode\", blendMode) : undefined\n );\n }\n\n clear(color: SkColor) {\n this.ref.clear(color);\n }\n\n clipPath(path: SkPath, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipPath(\n JsiSkPath.fromValue(path),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRect(rect: SkRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRRect(rrect: InputRRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n concat(m: SkMatrix | number[]) {\n this.ref.concat(Array.isArray(m) ? m : JsiSkMatrix.fromValue(m));\n }\n\n drawPicture(skp: SkPicture) {\n this.ref.drawPicture(JsiSkPicture.fromValue(skp));\n }\n\n drawAtlas(\n atlas: SkImage,\n srcs: SkRect[],\n dsts: SkRSXform[],\n paint: SkPaint,\n blendMode?: BlendMode,\n colors?: SkColor[],\n sampling?: CubicResampler | FilterOptions\n ) {\n const src = srcs.flatMap((s) =>\n Array.from(JsiSkRect.fromValue(this.CanvasKit, s))\n );\n const dst = dsts.flatMap((s) => Array.from(JsiSkRSXform.fromValue(s)));\n let cls: Uint32Array | undefined;\n if (colors) {\n cls = new Uint32Array(colors.length);\n for (let i = 0; i < colors.length; i++) {\n const [r, g, b, a] = colors[i];\n cls[i] = this.CanvasKit.ColorAsInt(r * 255, g * 255, b * 255, a * 255);\n }\n }\n let ckSampling: CKCubicResampler | CKFilterOptions = {\n filter: this.CanvasKit.FilterMode.Linear,\n mipmap: this.CanvasKit.MipmapMode.None,\n };\n if (sampling && isCubicSampling(sampling)) {\n ckSampling = sampling;\n } else if (sampling) {\n ckSampling = {\n filter: getEnum(this.CanvasKit, \"FilterMode\", sampling.filter),\n mipmap: sampling.mipmap\n ? getEnum(this.CanvasKit, \"MipmapMode\", sampling.mipmap)\n : this.CanvasKit.MipmapMode.None,\n };\n }\n this.ref.drawAtlas(\n JsiSkImage.fromValue(atlas),\n src,\n dst,\n JsiSkPaint.fromValue(paint),\n blendMode\n ? getEnum(this.CanvasKit, \"BlendMode\", blendMode)\n : this.CanvasKit.BlendMode.DstOver,\n cls,\n ckSampling\n );\n }\n\n readPixels(srcX: number, srcY: number, imageInfo: ImageInfo) {\n const pxInfo = {\n width: imageInfo.width,\n height: imageInfo.height,\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n alphaType: getEnum(this.CanvasKit, \"AlphaType\", imageInfo.alphaType),\n colorType: getEnum(this.CanvasKit, \"ColorType\", imageInfo.colorType),\n };\n return this.ref.readPixels(srcX, srcY, pxInfo);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,5 +4,5 @@ export interface NativeProps extends ViewProps {
|
|
|
4
4
|
opaque?: boolean;
|
|
5
5
|
nativeID: string;
|
|
6
6
|
}
|
|
7
|
-
declare const SkiaPictureViewNativeComponent: ({ nativeID, debug, opaque, onLayout, ...viewProps }: NativeProps) => import("react").FunctionComponentElement<import("
|
|
7
|
+
declare const SkiaPictureViewNativeComponent: ({ nativeID, debug, opaque, onLayout, ...viewProps }: NativeProps) => import("react").FunctionComponentElement<import("../views/SkiaPictureView.web").SkiaPictureViewProps>;
|
|
8
8
|
export default SkiaPictureViewNativeComponent;
|
|
@@ -12,4 +12,7 @@ export interface SkiaPictureViewHandle {
|
|
|
12
12
|
measure(callback: (x: number, y: number, width: number, height: number, pageX: number, pageY: number) => void): void;
|
|
13
13
|
measureInWindow(callback: (x: number, y: number, width: number, height: number) => void): void;
|
|
14
14
|
}
|
|
15
|
-
export
|
|
15
|
+
export interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {
|
|
16
|
+
ref?: React.Ref<SkiaPictureViewHandle>;
|
|
17
|
+
}
|
|
18
|
+
export declare const SkiaPictureView: (props: SkiaPictureViewProps) => React.JSX.Element;
|
|
@@ -178,7 +178,10 @@ class StaticWebGLRenderer {
|
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
const pd = _Platform.Platform.PixelRatio;
|
|
181
|
-
const SkiaPictureView =
|
|
181
|
+
const SkiaPictureView = props => {
|
|
182
|
+
const {
|
|
183
|
+
ref
|
|
184
|
+
} = props;
|
|
182
185
|
const canvasRef = (0, _react.useRef)(null);
|
|
183
186
|
const renderer = (0, _react.useRef)(null);
|
|
184
187
|
const redrawRequestsRef = (0, _react.useRef)(0);
|
|
@@ -303,6 +306,7 @@ const SkiaPictureView = exports.SkiaPictureView = /*#__PURE__*/(0, _react.forwar
|
|
|
303
306
|
}, [picture, redraw]);
|
|
304
307
|
const {
|
|
305
308
|
debug = false,
|
|
309
|
+
ref: _ref,
|
|
306
310
|
...viewProps
|
|
307
311
|
} = props;
|
|
308
312
|
return /*#__PURE__*/_react.default.createElement(_Platform.Platform.View, _extends({}, viewProps, {
|
|
@@ -314,5 +318,6 @@ const SkiaPictureView = exports.SkiaPictureView = /*#__PURE__*/(0, _react.forwar
|
|
|
314
318
|
flex: 1
|
|
315
319
|
}
|
|
316
320
|
}));
|
|
317
|
-
}
|
|
321
|
+
};
|
|
322
|
+
exports.SkiaPictureView = SkiaPictureView;
|
|
318
323
|
//# sourceMappingURL=SkiaPictureView.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_JsiSkSurface","_Platform","_SkiaViewNativeId","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","dp2Pixel","pd","rect","undefined","x","y","width","height","WebGLRenderer","constructor","canvas","onResize","makeImageSnapshot","picture","surface","getCanvas","clear","CanvasKit","TRANSPARENT","draw","ref","flush","clientWidth","clientHeight","MakeWebGLCanvasSurface","ctx","getContext","drawingBufferColorSpace","Error","JsiSkSurface","Float32Array","of","save","scale","drawPicture","restore","dispose","_this$canvas","getExtension","loseContext","delete","StaticWebGLRenderer","cachedImage","renderPictureToSurface","tempCanvas","OffscreenCanvas","webglSurface","skiaCanvas","error","cleanupWebGLContext","renderResult","ctx2d","drawImage","console","_this$cachedImage","Platform","PixelRatio","SkiaPictureView","exports","forwardRef","props","canvasRef","useRef","renderer","redrawRequestsRef","requestIdRef","pictureRef","onLayout","redraw","useCallback","current","getSize","_canvasRef$current","_canvasRef$current2","setPicture","newPicture","measure","callback","getBoundingClientRect","parentElement","offsetParent","parentRect","left","top","pageX","window","scrollX","pageY","scrollY","measureInWindow","tick","requestAnimationFrame","onLayoutEvent","evt","__destroyWebGLContextAfterRender","useImperativeHandle","useEffect","_props$nativeID","nativeID","SkiaViewNativeId","global","SkiaViewApi","registerView","cancelAnimationFrame","debug","viewProps","createElement","View","style","display","flex"],"sources":["SkiaPictureView.web.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n forwardRef,\n} from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkPicture, SkImage } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\nimport type { ISkiaViewApiWeb } from \"../specs/NativeSkiaModule.web\";\n\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst dp2Pixel = (pd: number, rect?: SkRect) => {\n if (!rect) {\n return undefined;\n }\n return {\n x: rect.x * pd,\n y: rect.y * pd,\n width: rect.width * pd,\n height: rect.height * pd,\n };\n};\n\ninterface Renderer {\n onResize(): void;\n draw(picture: SkPicture): void;\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null;\n dispose(): void;\n}\n\nclass WebGLRenderer implements Renderer {\n private surface: JsiSkSurface | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {\n this.onResize();\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.surface) {\n return null;\n }\n const canvas = this.surface.getCanvas();\n canvas!.clear(CanvasKit.TRANSPARENT);\n this.draw(picture);\n this.surface.ref.flush();\n return this.surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n }\n\n onResize() {\n const { canvas, pd } = this;\n canvas.width = canvas.clientWidth * pd;\n canvas.height = canvas.clientHeight * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n const ctx = canvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this.surface = new JsiSkSurface(CanvasKit, surface);\n }\n\n draw(picture: SkPicture) {\n if (this.surface) {\n const canvas = this.surface.getCanvas();\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n canvas.drawPicture(picture);\n canvas.restore();\n this.surface.ref.flush();\n }\n }\n\n dispose(): void {\n if (this.surface) {\n this.canvas\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\n this.surface.ref.delete();\n this.surface = null;\n }\n }\n}\n\nclass StaticWebGLRenderer implements Renderer {\n private cachedImage: SkImage | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {}\n\n onResize(): void {\n this.cachedImage = null;\n }\n\n private renderPictureToSurface(\n picture: SkPicture\n ): { surface: JsiSkSurface; tempCanvas: OffscreenCanvas } | null {\n const tempCanvas = new OffscreenCanvas(\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n let surface: JsiSkSurface | null = null;\n\n try {\n const webglSurface = CanvasKit.MakeWebGLCanvasSurface(tempCanvas);\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n\n if (!webglSurface) {\n throw new Error(\"Could not create WebGL surface\");\n }\n\n surface = new JsiSkSurface(CanvasKit, webglSurface);\n\n const skiaCanvas = surface.getCanvas();\n skiaCanvas.clear(Float32Array.of(0, 0, 0, 0));\n skiaCanvas.save();\n skiaCanvas.scale(this.pd, this.pd);\n skiaCanvas.drawPicture(picture);\n skiaCanvas.restore();\n surface.ref.flush();\n\n return { surface, tempCanvas };\n } catch (error) {\n if (surface) {\n surface.ref.delete();\n }\n this.cleanupWebGLContext(tempCanvas);\n return null;\n }\n }\n\n private cleanupWebGLContext(tempCanvas: OffscreenCanvas): void {\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n const loseContext = ctx.getExtension(\"WEBGL_lose_context\");\n if (loseContext) {\n loseContext.loseContext();\n }\n }\n }\n\n draw(picture: SkPicture): void {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return;\n }\n const { tempCanvas } = renderResult;\n const ctx2d = this.canvas.getContext(\"2d\");\n if (!ctx2d) {\n throw new Error(\"Could not get 2D context\");\n }\n\n // Set canvas dimensions to match pixel density\n this.canvas.width = this.canvas.clientWidth * this.pd;\n this.canvas.height = this.canvas.clientHeight * this.pd;\n\n // Draw the tempCanvas scaled down to the display size\n ctx2d.drawImage(\n tempCanvas,\n 0,\n 0,\n tempCanvas.width,\n tempCanvas.height,\n 0,\n 0,\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n this.cleanupWebGLContext(tempCanvas);\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.cachedImage) {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return null;\n }\n\n const { surface, tempCanvas } = renderResult;\n\n try {\n this.cachedImage = surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n } catch (error) {\n console.error(\"Error creating image snapshot:\", error);\n } finally {\n surface.ref.delete();\n this.cleanupWebGLContext(tempCanvas);\n }\n }\n\n return this.cachedImage;\n }\n\n dispose(): void {\n this.cachedImage?.dispose();\n this.cachedImage = null;\n }\n}\n\nconst pd = Platform.PixelRatio;\n\nexport interface SkiaPictureViewHandle {\n setPicture(picture: SkPicture): void;\n getSize(): { width: number; height: number };\n redraw(): void;\n makeImageSnapshot(rect?: SkRect): SkImage | null;\n measure(\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ): void;\n measureInWindow(\n callback: (x: number, y: number, width: number, height: number) => void\n ): void;\n}\n\nexport const SkiaPictureView = forwardRef<\n SkiaPictureViewHandle,\n SkiaPictureViewNativeProps\n>((props, ref) => {\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const renderer = useRef<Renderer | null>(null);\n const redrawRequestsRef = useRef(0);\n const requestIdRef = useRef(0);\n const pictureRef = useRef<SkPicture | null>(null);\n\n const { picture, onLayout } = props;\n\n const redraw = useCallback(() => {\n redrawRequestsRef.current++;\n }, []);\n\n const getSize = useCallback(() => {\n return {\n width: canvasRef.current?.clientWidth || 0,\n height: canvasRef.current?.clientHeight || 0,\n };\n }, []);\n\n const setPicture = useCallback(\n (newPicture: SkPicture) => {\n pictureRef.current = newPicture;\n redraw();\n },\n [redraw]\n );\n\n const makeImageSnapshot = useCallback((rect?: SkRect) => {\n if (renderer.current && pictureRef.current) {\n return renderer.current.makeImageSnapshot(pictureRef.current, rect);\n }\n return null;\n }, []);\n\n const measure = useCallback(\n (\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n const parentElement = canvasRef.current.offsetParent as HTMLElement;\n const parentRect = parentElement?.getBoundingClientRect() || {\n left: 0,\n top: 0,\n };\n\n // x, y are relative to the parent\n const x = rect.left - parentRect.left;\n const y = rect.top - parentRect.top;\n\n // pageX, pageY are absolute screen coordinates\n const pageX = rect.left + window.scrollX;\n const pageY = rect.top + window.scrollY;\n\n callback(x, y, rect.width, rect.height, pageX, pageY);\n }\n },\n []\n );\n\n const measureInWindow = useCallback(\n (\n callback: (x: number, y: number, width: number, height: number) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n\n // x, y are the absolute coordinates in the window\n const x = rect.left;\n const y = rect.top;\n\n callback(x, y, rect.width, rect.height);\n }\n },\n []\n );\n\n const tick = useCallback(() => {\n if (redrawRequestsRef.current > 0) {\n redrawRequestsRef.current = 0;\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n requestIdRef.current = requestAnimationFrame(tick);\n }, []);\n\n const onLayoutEvent = useCallback(\n (evt: LayoutChangeEvent) => {\n const canvas = canvasRef.current;\n if (canvas) {\n renderer.current =\n props.__destroyWebGLContextAfterRender === true\n ? new StaticWebGLRenderer(canvas, pd)\n : new WebGLRenderer(canvas, pd);\n if (pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n if (onLayout) {\n onLayout(evt);\n }\n },\n [onLayout, props.__destroyWebGLContextAfterRender]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n get canvasRef() {\n return () => canvasRef.current;\n },\n }),\n [setPicture, getSize, redraw, makeImageSnapshot, measure, measureInWindow]\n );\n\n useEffect(() => {\n const nativeID = props.nativeID ?? `${SkiaViewNativeId.current++}`;\n (global.SkiaViewApi as ISkiaViewApiWeb).registerView(nativeID, {\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n } as SkiaPictureViewHandle);\n }, [\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n props.nativeID,\n ]);\n\n useEffect(() => {\n if (props.picture) {\n setPicture(props.picture);\n }\n }, [setPicture, props.picture]);\n\n useEffect(() => {\n tick();\n return () => {\n cancelAnimationFrame(requestIdRef.current);\n if (renderer.current) {\n renderer.current.dispose();\n renderer.current = null;\n }\n };\n }, [tick]);\n\n useEffect(() => {\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }, [picture, redraw]);\n\n const { debug = false, ...viewProps } = props;\n return (\n <Platform.View {...viewProps} onLayout={onLayoutEvent}>\n <canvas ref={canvasRef} style={{ display: \"flex\", flex: 1 }} />\n </Platform.View>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_JsiSkSurface","_Platform","_SkiaViewNativeId","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","dp2Pixel","pd","rect","undefined","x","y","width","height","WebGLRenderer","constructor","canvas","onResize","makeImageSnapshot","picture","surface","getCanvas","clear","CanvasKit","TRANSPARENT","draw","ref","flush","clientWidth","clientHeight","MakeWebGLCanvasSurface","ctx","getContext","drawingBufferColorSpace","Error","JsiSkSurface","Float32Array","of","save","scale","drawPicture","restore","dispose","_this$canvas","getExtension","loseContext","delete","StaticWebGLRenderer","cachedImage","renderPictureToSurface","tempCanvas","OffscreenCanvas","webglSurface","skiaCanvas","error","cleanupWebGLContext","renderResult","ctx2d","drawImage","console","_this$cachedImage","Platform","PixelRatio","SkiaPictureView","props","canvasRef","useRef","renderer","redrawRequestsRef","requestIdRef","pictureRef","onLayout","redraw","useCallback","current","getSize","_canvasRef$current","_canvasRef$current2","setPicture","newPicture","measure","callback","getBoundingClientRect","parentElement","offsetParent","parentRect","left","top","pageX","window","scrollX","pageY","scrollY","measureInWindow","tick","requestAnimationFrame","onLayoutEvent","evt","__destroyWebGLContextAfterRender","useImperativeHandle","useEffect","_props$nativeID","nativeID","SkiaViewNativeId","global","SkiaViewApi","registerView","cancelAnimationFrame","debug","_ref","viewProps","createElement","View","style","display","flex","exports"],"sources":["SkiaPictureView.web.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n} from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkPicture, SkImage } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\nimport type { ISkiaViewApiWeb } from \"../specs/NativeSkiaModule.web\";\n\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst dp2Pixel = (pd: number, rect?: SkRect) => {\n if (!rect) {\n return undefined;\n }\n return {\n x: rect.x * pd,\n y: rect.y * pd,\n width: rect.width * pd,\n height: rect.height * pd,\n };\n};\n\ninterface Renderer {\n onResize(): void;\n draw(picture: SkPicture): void;\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null;\n dispose(): void;\n}\n\nclass WebGLRenderer implements Renderer {\n private surface: JsiSkSurface | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {\n this.onResize();\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.surface) {\n return null;\n }\n const canvas = this.surface.getCanvas();\n canvas!.clear(CanvasKit.TRANSPARENT);\n this.draw(picture);\n this.surface.ref.flush();\n return this.surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n }\n\n onResize() {\n const { canvas, pd } = this;\n canvas.width = canvas.clientWidth * pd;\n canvas.height = canvas.clientHeight * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n const ctx = canvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this.surface = new JsiSkSurface(CanvasKit, surface);\n }\n\n draw(picture: SkPicture) {\n if (this.surface) {\n const canvas = this.surface.getCanvas();\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n canvas.drawPicture(picture);\n canvas.restore();\n this.surface.ref.flush();\n }\n }\n\n dispose(): void {\n if (this.surface) {\n this.canvas\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\n this.surface.ref.delete();\n this.surface = null;\n }\n }\n}\n\nclass StaticWebGLRenderer implements Renderer {\n private cachedImage: SkImage | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {}\n\n onResize(): void {\n this.cachedImage = null;\n }\n\n private renderPictureToSurface(\n picture: SkPicture\n ): { surface: JsiSkSurface; tempCanvas: OffscreenCanvas } | null {\n const tempCanvas = new OffscreenCanvas(\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n let surface: JsiSkSurface | null = null;\n\n try {\n const webglSurface = CanvasKit.MakeWebGLCanvasSurface(tempCanvas);\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n\n if (!webglSurface) {\n throw new Error(\"Could not create WebGL surface\");\n }\n\n surface = new JsiSkSurface(CanvasKit, webglSurface);\n\n const skiaCanvas = surface.getCanvas();\n skiaCanvas.clear(Float32Array.of(0, 0, 0, 0));\n skiaCanvas.save();\n skiaCanvas.scale(this.pd, this.pd);\n skiaCanvas.drawPicture(picture);\n skiaCanvas.restore();\n surface.ref.flush();\n\n return { surface, tempCanvas };\n } catch (error) {\n if (surface) {\n surface.ref.delete();\n }\n this.cleanupWebGLContext(tempCanvas);\n return null;\n }\n }\n\n private cleanupWebGLContext(tempCanvas: OffscreenCanvas): void {\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n const loseContext = ctx.getExtension(\"WEBGL_lose_context\");\n if (loseContext) {\n loseContext.loseContext();\n }\n }\n }\n\n draw(picture: SkPicture): void {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return;\n }\n const { tempCanvas } = renderResult;\n const ctx2d = this.canvas.getContext(\"2d\");\n if (!ctx2d) {\n throw new Error(\"Could not get 2D context\");\n }\n\n // Set canvas dimensions to match pixel density\n this.canvas.width = this.canvas.clientWidth * this.pd;\n this.canvas.height = this.canvas.clientHeight * this.pd;\n\n // Draw the tempCanvas scaled down to the display size\n ctx2d.drawImage(\n tempCanvas,\n 0,\n 0,\n tempCanvas.width,\n tempCanvas.height,\n 0,\n 0,\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n this.cleanupWebGLContext(tempCanvas);\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.cachedImage) {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return null;\n }\n\n const { surface, tempCanvas } = renderResult;\n\n try {\n this.cachedImage = surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n } catch (error) {\n console.error(\"Error creating image snapshot:\", error);\n } finally {\n surface.ref.delete();\n this.cleanupWebGLContext(tempCanvas);\n }\n }\n\n return this.cachedImage;\n }\n\n dispose(): void {\n this.cachedImage?.dispose();\n this.cachedImage = null;\n }\n}\n\nconst pd = Platform.PixelRatio;\n\nexport interface SkiaPictureViewHandle {\n setPicture(picture: SkPicture): void;\n getSize(): { width: number; height: number };\n redraw(): void;\n makeImageSnapshot(rect?: SkRect): SkImage | null;\n measure(\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ): void;\n measureInWindow(\n callback: (x: number, y: number, width: number, height: number) => void\n ): void;\n}\n\nexport interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {\n ref?: React.Ref<SkiaPictureViewHandle>;\n}\n\nexport const SkiaPictureView = (props: SkiaPictureViewProps) => {\n const { ref } = props;\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const renderer = useRef<Renderer | null>(null);\n const redrawRequestsRef = useRef(0);\n const requestIdRef = useRef(0);\n const pictureRef = useRef<SkPicture | null>(null);\n\n const { picture, onLayout } = props;\n\n const redraw = useCallback(() => {\n redrawRequestsRef.current++;\n }, []);\n\n const getSize = useCallback(() => {\n return {\n width: canvasRef.current?.clientWidth || 0,\n height: canvasRef.current?.clientHeight || 0,\n };\n }, []);\n\n const setPicture = useCallback(\n (newPicture: SkPicture) => {\n pictureRef.current = newPicture;\n redraw();\n },\n [redraw]\n );\n\n const makeImageSnapshot = useCallback((rect?: SkRect) => {\n if (renderer.current && pictureRef.current) {\n return renderer.current.makeImageSnapshot(pictureRef.current, rect);\n }\n return null;\n }, []);\n\n const measure = useCallback(\n (\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n const parentElement = canvasRef.current.offsetParent as HTMLElement;\n const parentRect = parentElement?.getBoundingClientRect() || {\n left: 0,\n top: 0,\n };\n\n // x, y are relative to the parent\n const x = rect.left - parentRect.left;\n const y = rect.top - parentRect.top;\n\n // pageX, pageY are absolute screen coordinates\n const pageX = rect.left + window.scrollX;\n const pageY = rect.top + window.scrollY;\n\n callback(x, y, rect.width, rect.height, pageX, pageY);\n }\n },\n []\n );\n\n const measureInWindow = useCallback(\n (\n callback: (x: number, y: number, width: number, height: number) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n\n // x, y are the absolute coordinates in the window\n const x = rect.left;\n const y = rect.top;\n\n callback(x, y, rect.width, rect.height);\n }\n },\n []\n );\n\n const tick = useCallback(() => {\n if (redrawRequestsRef.current > 0) {\n redrawRequestsRef.current = 0;\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n requestIdRef.current = requestAnimationFrame(tick);\n }, []);\n\n const onLayoutEvent = useCallback(\n (evt: LayoutChangeEvent) => {\n const canvas = canvasRef.current;\n if (canvas) {\n renderer.current =\n props.__destroyWebGLContextAfterRender === true\n ? new StaticWebGLRenderer(canvas, pd)\n : new WebGLRenderer(canvas, pd);\n if (pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n if (onLayout) {\n onLayout(evt);\n }\n },\n [onLayout, props.__destroyWebGLContextAfterRender]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n get canvasRef() {\n return () => canvasRef.current;\n },\n }),\n [setPicture, getSize, redraw, makeImageSnapshot, measure, measureInWindow]\n );\n\n useEffect(() => {\n const nativeID = props.nativeID ?? `${SkiaViewNativeId.current++}`;\n (global.SkiaViewApi as ISkiaViewApiWeb).registerView(nativeID, {\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n } as SkiaPictureViewHandle);\n }, [\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n props.nativeID,\n ]);\n\n useEffect(() => {\n if (props.picture) {\n setPicture(props.picture);\n }\n }, [setPicture, props.picture]);\n\n useEffect(() => {\n tick();\n return () => {\n cancelAnimationFrame(requestIdRef.current);\n if (renderer.current) {\n renderer.current.dispose();\n renderer.current = null;\n }\n };\n }, [tick]);\n\n useEffect(() => {\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }, [picture, redraw]);\n\n const { debug = false, ref: _ref, ...viewProps } = props;\n return (\n <Platform.View {...viewProps} onLayout={onLayoutEvent}>\n <canvas ref={canvasRef} style={{ display: \"flex\", flex: 1 }} />\n </Platform.View>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,7 +27,7 @@ export declare class JsiSkCanvas extends HostObject<Canvas, "Canvas"> implements
|
|
|
27
27
|
drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont): void;
|
|
28
28
|
drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint): void;
|
|
29
29
|
drawGlyphs(glyphs: number[], positions: SkPoint[], x: number, y: number, font: SkFont, paint: SkPaint): void;
|
|
30
|
-
drawSvg(svg: SkSVG,
|
|
30
|
+
drawSvg(svg: SkSVG, _width?: number, _height?: number): void;
|
|
31
31
|
save(): number;
|
|
32
32
|
saveLayer(paint?: SkPaint, bounds?: SkRect | null, backdrop?: SkImageFilter | null, flags?: SaveLayerFlag): number;
|
|
33
33
|
restore(): void;
|
|
@@ -95,13 +95,7 @@ export class JsiSkCanvas extends HostObject {
|
|
|
95
95
|
drawGlyphs(glyphs, positions, x, y, font, paint) {
|
|
96
96
|
this.ref.drawGlyphs(glyphs, positions.map(p => [p.x, p.y]).flat(), x, y, JsiSkFont.fromValue(font), JsiSkPaint.fromValue(paint));
|
|
97
97
|
}
|
|
98
|
-
drawSvg(svg,
|
|
99
|
-
const ctm = this.ref.getLocalToDevice();
|
|
100
|
-
console.log({
|
|
101
|
-
ctm,
|
|
102
|
-
width,
|
|
103
|
-
height
|
|
104
|
-
});
|
|
98
|
+
drawSvg(svg, _width, _height) {
|
|
105
99
|
const image = this.CanvasKit.MakeImageFromCanvasImageSource(svg.ref);
|
|
106
100
|
this.ref.drawImage(image, 0, 0);
|
|
107
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isCubicSampling","getEnum","HostObject","JsiSkPaint","JsiSkRect","JsiSkRRect","JsiSkImage","JsiSkVertices","JsiSkPath","JsiSkFont","JsiSkTextBlob","JsiSkPicture","JsiSkMatrix","JsiSkImageFilter","JsiSkPoint","JsiSkRSXform","JsiSkCanvas","constructor","CanvasKit","ref","drawRect","rect","paint","fromValue","drawImage","image","x","y","drawImageRect","img","src","dest","fastSample","drawImageCubic","left","top","B","C","drawImageOptions","fm","mm","drawImageNine","center","filter","Array","from","drawImageRectCubic","drawImageRectOptions","drawPaint","drawLine","x0","y0","x1","y1","drawCircle","cx","cy","radius","drawVertices","verts","mode","drawPatch","cubics","colors","texs","map","flat","flatMap","p","undefined","restoreToCount","saveCount","getTotalMatrix","Float32Array","of","drawPoints","points","drawArc","oval","startAngle","sweepAngle","useCenter","drawRRect","rrect","drawDRRect","outer","inner","drawOval","drawPath","path","drawText","str","font","drawTextBlob","blob","drawGlyphs","glyphs","positions","drawSvg","svg","width","height","ctm","getLocalToDevice","console","log","MakeImageFromCanvasImageSource","save","saveLayer","bounds","backdrop","flags","restore","rotate","rotationInDegrees","rx","ry","scale","sx","sy","skew","translate","dx","dy","drawColor","color","blendMode","clear","clipPath","op","doAntiAlias","clipRect","clipRRect","concat","m","isArray","drawPicture","skp","drawAtlas","atlas","srcs","dsts","sampling","s","dst","cls","Uint32Array","length","i","r","g","b","a","ColorAsInt","ckSampling","FilterMode","Linear","mipmap","MipmapMode","None","BlendMode","DstOver","readPixels","srcX","srcY","imageInfo","pxInfo","colorSpace","ColorSpace","SRGB","alphaType","colorType"],"sources":["JsiSkCanvas.ts"],"sourcesContent":["import type {\n Canvas,\n CanvasKit,\n CubicResampler as CKCubicResampler,\n FilterOptions as CKFilterOptions,\n} from \"canvaskit-wasm\";\n\nimport {\n type BlendMode,\n type ClipOp,\n type FilterMode,\n type MipmapMode,\n type PointMode,\n type SaveLayerFlag,\n type ImageInfo,\n type SkCanvas,\n type SkColor,\n type SkFont,\n type SkImage,\n type SkImageFilter,\n type SkMatrix,\n type SkPaint,\n type SkPath,\n type SkPicture,\n type SkPoint,\n type SkRect,\n type InputRRect,\n type SkSVG,\n type SkTextBlob,\n type SkVertices,\n type SkRSXform,\n type CubicResampler,\n type FilterOptions,\n isCubicSampling,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkVertices } from \"./JsiSkVertices\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { JsiSkTextBlob } from \"./JsiSkTextBlob\";\nimport { JsiSkPicture } from \"./JsiSkPicture\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkImageFilter } from \"./JsiSkImageFilter\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport type { JsiSkSVG } from \"./JsiSkSVG\";\n\nexport class JsiSkCanvas\n extends HostObject<Canvas, \"Canvas\">\n implements SkCanvas\n{\n constructor(CanvasKit: CanvasKit, ref: Canvas) {\n super(CanvasKit, ref, \"Canvas\");\n }\n\n drawRect(rect: SkRect, paint: SkPaint) {\n this.ref.drawRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawImage(image: SkImage, x: number, y: number, paint?: SkPaint) {\n this.ref.drawImage(\n JsiSkImage.fromValue(image),\n x,\n y,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRect(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n paint: SkPaint,\n fastSample?: boolean\n ) {\n this.ref.drawImageRect(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n JsiSkPaint.fromValue(paint),\n fastSample\n );\n }\n\n drawImageCubic(\n img: SkImage,\n left: number,\n top: number,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageCubic(\n JsiSkImage.fromValue(img),\n left,\n top,\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageOptions(\n img: SkImage,\n left: number,\n top: number,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageOptions(\n JsiSkImage.fromValue(img),\n left,\n top,\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageNine(\n img: SkImage,\n center: SkRect,\n dest: SkRect,\n filter: FilterMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageNine(\n JsiSkImage.fromValue(img),\n Array.from(JsiSkRect.fromValue(this.CanvasKit, center)),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", filter),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectCubic(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectCubic(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectOptions(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectOptions(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawPaint(paint: SkPaint) {\n this.ref.drawPaint(JsiSkPaint.fromValue(paint));\n }\n\n drawLine(x0: number, y0: number, x1: number, y1: number, paint: SkPaint) {\n this.ref.drawLine(x0, y0, x1, y1, JsiSkPaint.fromValue(paint));\n }\n\n drawCircle(cx: number, cy: number, radius: number, paint: SkPaint) {\n this.ref.drawCircle(cx, cy, radius, JsiSkPaint.fromValue(paint));\n }\n\n drawVertices(verts: SkVertices, mode: BlendMode, paint: SkPaint) {\n this.ref.drawVertices(\n JsiSkVertices.fromValue(verts),\n getEnum(this.CanvasKit, \"BlendMode\", mode),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPatch(\n cubics: SkPoint[],\n colors?: SkColor[] | null,\n texs?: SkPoint[] | null,\n mode?: BlendMode | null,\n paint?: SkPaint\n ) {\n this.ref.drawPatch(\n cubics.map(({ x, y }) => [x, y]).flat(),\n colors,\n texs ? texs.flatMap((p) => Array.from(JsiSkPoint.fromValue(p))) : texs,\n mode ? getEnum(this.CanvasKit, \"BlendMode\", mode) : null,\n paint ? JsiSkPaint.fromValue(paint) : undefined\n );\n }\n\n restoreToCount(saveCount: number) {\n this.ref.restoreToCount(saveCount);\n }\n\n getTotalMatrix(): SkMatrix {\n return new JsiSkMatrix(\n this.CanvasKit,\n Float32Array.of(...this.ref.getTotalMatrix())\n );\n }\n\n drawPoints(mode: PointMode, points: SkPoint[], paint: SkPaint) {\n this.ref.drawPoints(\n getEnum(this.CanvasKit, \"PointMode\", mode),\n points.map(({ x, y }) => [x, y]).flat(),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawArc(\n oval: SkRect,\n startAngle: number,\n sweepAngle: number,\n useCenter: boolean,\n paint: SkPaint\n ) {\n this.ref.drawArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngle,\n sweepAngle,\n useCenter,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawRRect(rrect: InputRRect, paint: SkPaint) {\n this.ref.drawRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawDRRect(outer: InputRRect, inner: InputRRect, paint: SkPaint) {\n this.ref.drawDRRect(\n JsiSkRRect.fromValue(this.CanvasKit, outer),\n JsiSkRRect.fromValue(this.CanvasKit, inner),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawOval(oval: SkRect, paint: SkPaint) {\n this.ref.drawOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPath(path: SkPath, paint: SkPaint) {\n this.ref.drawPath(JsiSkPath.fromValue(path), JsiSkPaint.fromValue(paint));\n }\n\n drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont) {\n this.ref.drawText(\n str,\n x,\n y,\n JsiSkPaint.fromValue(paint),\n JsiSkFont.fromValue(font)\n );\n }\n\n drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint) {\n this.ref.drawTextBlob(\n JsiSkTextBlob.fromValue(blob),\n x,\n y,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawGlyphs(\n glyphs: number[],\n positions: SkPoint[],\n x: number,\n y: number,\n font: SkFont,\n paint: SkPaint\n ) {\n this.ref.drawGlyphs(\n glyphs,\n positions.map((p) => [p.x, p.y]).flat(),\n x,\n y,\n JsiSkFont.fromValue(font),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawSvg(svg: SkSVG, width?: number, height?: number) {\n const ctm = this.ref.getLocalToDevice();\n console.log({ ctm, width, height });\n const image = this.CanvasKit.MakeImageFromCanvasImageSource(\n (svg as JsiSkSVG).ref\n );\n this.ref.drawImage(image, 0, 0);\n }\n\n save() {\n return this.ref.save();\n }\n\n saveLayer(\n paint?: SkPaint,\n bounds?: SkRect | null,\n backdrop?: SkImageFilter | null,\n flags?: SaveLayerFlag\n ) {\n return this.ref.saveLayer(\n paint ? JsiSkPaint.fromValue(paint) : undefined,\n bounds ? JsiSkRect.fromValue(this.CanvasKit, bounds) : bounds,\n backdrop ? JsiSkImageFilter.fromValue(backdrop) : backdrop,\n flags\n );\n }\n\n restore() {\n this.ref.restore();\n }\n\n rotate(rotationInDegrees: number, rx: number, ry: number) {\n this.ref.rotate(rotationInDegrees, rx, ry);\n }\n\n scale(sx: number, sy: number) {\n this.ref.scale(sx, sy);\n }\n\n skew(sx: number, sy: number) {\n this.ref.skew(sx, sy);\n }\n\n translate(dx: number, dy: number) {\n this.ref.translate(dx, dy);\n }\n\n drawColor(color: SkColor, blendMode?: BlendMode) {\n this.ref.drawColor(\n color,\n blendMode ? getEnum(this.CanvasKit, \"BlendMode\", blendMode) : undefined\n );\n }\n\n clear(color: SkColor) {\n this.ref.clear(color);\n }\n\n clipPath(path: SkPath, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipPath(\n JsiSkPath.fromValue(path),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRect(rect: SkRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRRect(rrect: InputRRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n concat(m: SkMatrix | number[]) {\n this.ref.concat(Array.isArray(m) ? m : JsiSkMatrix.fromValue(m));\n }\n\n drawPicture(skp: SkPicture) {\n this.ref.drawPicture(JsiSkPicture.fromValue(skp));\n }\n\n drawAtlas(\n atlas: SkImage,\n srcs: SkRect[],\n dsts: SkRSXform[],\n paint: SkPaint,\n blendMode?: BlendMode,\n colors?: SkColor[],\n sampling?: CubicResampler | FilterOptions\n ) {\n const src = srcs.flatMap((s) =>\n Array.from(JsiSkRect.fromValue(this.CanvasKit, s))\n );\n const dst = dsts.flatMap((s) => Array.from(JsiSkRSXform.fromValue(s)));\n let cls: Uint32Array | undefined;\n if (colors) {\n cls = new Uint32Array(colors.length);\n for (let i = 0; i < colors.length; i++) {\n const [r, g, b, a] = colors[i];\n cls[i] = this.CanvasKit.ColorAsInt(r * 255, g * 255, b * 255, a * 255);\n }\n }\n let ckSampling: CKCubicResampler | CKFilterOptions = {\n filter: this.CanvasKit.FilterMode.Linear,\n mipmap: this.CanvasKit.MipmapMode.None,\n };\n if (sampling && isCubicSampling(sampling)) {\n ckSampling = sampling;\n } else if (sampling) {\n ckSampling = {\n filter: getEnum(this.CanvasKit, \"FilterMode\", sampling.filter),\n mipmap: sampling.mipmap\n ? getEnum(this.CanvasKit, \"MipmapMode\", sampling.mipmap)\n : this.CanvasKit.MipmapMode.None,\n };\n }\n this.ref.drawAtlas(\n JsiSkImage.fromValue(atlas),\n src,\n dst,\n JsiSkPaint.fromValue(paint),\n blendMode\n ? getEnum(this.CanvasKit, \"BlendMode\", blendMode)\n : this.CanvasKit.BlendMode.DstOver,\n cls,\n ckSampling\n );\n }\n\n readPixels(srcX: number, srcY: number, imageInfo: ImageInfo) {\n const pxInfo = {\n width: imageInfo.width,\n height: imageInfo.height,\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n alphaType: getEnum(this.CanvasKit, \"AlphaType\", imageInfo.alphaType),\n colorType: getEnum(this.CanvasKit, \"ColorType\", imageInfo.colorType),\n };\n return this.ref.readPixels(srcX, srcY, pxInfo);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["isCubicSampling","getEnum","HostObject","JsiSkPaint","JsiSkRect","JsiSkRRect","JsiSkImage","JsiSkVertices","JsiSkPath","JsiSkFont","JsiSkTextBlob","JsiSkPicture","JsiSkMatrix","JsiSkImageFilter","JsiSkPoint","JsiSkRSXform","JsiSkCanvas","constructor","CanvasKit","ref","drawRect","rect","paint","fromValue","drawImage","image","x","y","drawImageRect","img","src","dest","fastSample","drawImageCubic","left","top","B","C","drawImageOptions","fm","mm","drawImageNine","center","filter","Array","from","drawImageRectCubic","drawImageRectOptions","drawPaint","drawLine","x0","y0","x1","y1","drawCircle","cx","cy","radius","drawVertices","verts","mode","drawPatch","cubics","colors","texs","map","flat","flatMap","p","undefined","restoreToCount","saveCount","getTotalMatrix","Float32Array","of","drawPoints","points","drawArc","oval","startAngle","sweepAngle","useCenter","drawRRect","rrect","drawDRRect","outer","inner","drawOval","drawPath","path","drawText","str","font","drawTextBlob","blob","drawGlyphs","glyphs","positions","drawSvg","svg","_width","_height","MakeImageFromCanvasImageSource","save","saveLayer","bounds","backdrop","flags","restore","rotate","rotationInDegrees","rx","ry","scale","sx","sy","skew","translate","dx","dy","drawColor","color","blendMode","clear","clipPath","op","doAntiAlias","clipRect","clipRRect","concat","m","isArray","drawPicture","skp","drawAtlas","atlas","srcs","dsts","sampling","s","dst","cls","Uint32Array","length","i","r","g","b","a","ColorAsInt","ckSampling","FilterMode","Linear","mipmap","MipmapMode","None","BlendMode","DstOver","readPixels","srcX","srcY","imageInfo","pxInfo","width","height","colorSpace","ColorSpace","SRGB","alphaType","colorType"],"sources":["JsiSkCanvas.ts"],"sourcesContent":["import type {\n Canvas,\n CanvasKit,\n CubicResampler as CKCubicResampler,\n FilterOptions as CKFilterOptions,\n} from \"canvaskit-wasm\";\n\nimport {\n type BlendMode,\n type ClipOp,\n type FilterMode,\n type MipmapMode,\n type PointMode,\n type SaveLayerFlag,\n type ImageInfo,\n type SkCanvas,\n type SkColor,\n type SkFont,\n type SkImage,\n type SkImageFilter,\n type SkMatrix,\n type SkPaint,\n type SkPath,\n type SkPicture,\n type SkPoint,\n type SkRect,\n type InputRRect,\n type SkSVG,\n type SkTextBlob,\n type SkVertices,\n type SkRSXform,\n type CubicResampler,\n type FilterOptions,\n isCubicSampling,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkVertices } from \"./JsiSkVertices\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { JsiSkTextBlob } from \"./JsiSkTextBlob\";\nimport { JsiSkPicture } from \"./JsiSkPicture\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkImageFilter } from \"./JsiSkImageFilter\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport type { JsiSkSVG } from \"./JsiSkSVG\";\n\nexport class JsiSkCanvas\n extends HostObject<Canvas, \"Canvas\">\n implements SkCanvas\n{\n constructor(CanvasKit: CanvasKit, ref: Canvas) {\n super(CanvasKit, ref, \"Canvas\");\n }\n\n drawRect(rect: SkRect, paint: SkPaint) {\n this.ref.drawRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawImage(image: SkImage, x: number, y: number, paint?: SkPaint) {\n this.ref.drawImage(\n JsiSkImage.fromValue(image),\n x,\n y,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRect(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n paint: SkPaint,\n fastSample?: boolean\n ) {\n this.ref.drawImageRect(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n JsiSkPaint.fromValue(paint),\n fastSample\n );\n }\n\n drawImageCubic(\n img: SkImage,\n left: number,\n top: number,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageCubic(\n JsiSkImage.fromValue(img),\n left,\n top,\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageOptions(\n img: SkImage,\n left: number,\n top: number,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageOptions(\n JsiSkImage.fromValue(img),\n left,\n top,\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageNine(\n img: SkImage,\n center: SkRect,\n dest: SkRect,\n filter: FilterMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageNine(\n JsiSkImage.fromValue(img),\n Array.from(JsiSkRect.fromValue(this.CanvasKit, center)),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", filter),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectCubic(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectCubic(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectOptions(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectOptions(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawPaint(paint: SkPaint) {\n this.ref.drawPaint(JsiSkPaint.fromValue(paint));\n }\n\n drawLine(x0: number, y0: number, x1: number, y1: number, paint: SkPaint) {\n this.ref.drawLine(x0, y0, x1, y1, JsiSkPaint.fromValue(paint));\n }\n\n drawCircle(cx: number, cy: number, radius: number, paint: SkPaint) {\n this.ref.drawCircle(cx, cy, radius, JsiSkPaint.fromValue(paint));\n }\n\n drawVertices(verts: SkVertices, mode: BlendMode, paint: SkPaint) {\n this.ref.drawVertices(\n JsiSkVertices.fromValue(verts),\n getEnum(this.CanvasKit, \"BlendMode\", mode),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPatch(\n cubics: SkPoint[],\n colors?: SkColor[] | null,\n texs?: SkPoint[] | null,\n mode?: BlendMode | null,\n paint?: SkPaint\n ) {\n this.ref.drawPatch(\n cubics.map(({ x, y }) => [x, y]).flat(),\n colors,\n texs ? texs.flatMap((p) => Array.from(JsiSkPoint.fromValue(p))) : texs,\n mode ? getEnum(this.CanvasKit, \"BlendMode\", mode) : null,\n paint ? JsiSkPaint.fromValue(paint) : undefined\n );\n }\n\n restoreToCount(saveCount: number) {\n this.ref.restoreToCount(saveCount);\n }\n\n getTotalMatrix(): SkMatrix {\n return new JsiSkMatrix(\n this.CanvasKit,\n Float32Array.of(...this.ref.getTotalMatrix())\n );\n }\n\n drawPoints(mode: PointMode, points: SkPoint[], paint: SkPaint) {\n this.ref.drawPoints(\n getEnum(this.CanvasKit, \"PointMode\", mode),\n points.map(({ x, y }) => [x, y]).flat(),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawArc(\n oval: SkRect,\n startAngle: number,\n sweepAngle: number,\n useCenter: boolean,\n paint: SkPaint\n ) {\n this.ref.drawArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngle,\n sweepAngle,\n useCenter,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawRRect(rrect: InputRRect, paint: SkPaint) {\n this.ref.drawRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawDRRect(outer: InputRRect, inner: InputRRect, paint: SkPaint) {\n this.ref.drawDRRect(\n JsiSkRRect.fromValue(this.CanvasKit, outer),\n JsiSkRRect.fromValue(this.CanvasKit, inner),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawOval(oval: SkRect, paint: SkPaint) {\n this.ref.drawOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPath(path: SkPath, paint: SkPaint) {\n this.ref.drawPath(JsiSkPath.fromValue(path), JsiSkPaint.fromValue(paint));\n }\n\n drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont) {\n this.ref.drawText(\n str,\n x,\n y,\n JsiSkPaint.fromValue(paint),\n JsiSkFont.fromValue(font)\n );\n }\n\n drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint) {\n this.ref.drawTextBlob(\n JsiSkTextBlob.fromValue(blob),\n x,\n y,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawGlyphs(\n glyphs: number[],\n positions: SkPoint[],\n x: number,\n y: number,\n font: SkFont,\n paint: SkPaint\n ) {\n this.ref.drawGlyphs(\n glyphs,\n positions.map((p) => [p.x, p.y]).flat(),\n x,\n y,\n JsiSkFont.fromValue(font),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawSvg(svg: SkSVG, _width?: number, _height?: number) {\n const image = this.CanvasKit.MakeImageFromCanvasImageSource(\n (svg as JsiSkSVG).ref\n );\n this.ref.drawImage(image, 0, 0);\n }\n\n save() {\n return this.ref.save();\n }\n\n saveLayer(\n paint?: SkPaint,\n bounds?: SkRect | null,\n backdrop?: SkImageFilter | null,\n flags?: SaveLayerFlag\n ) {\n return this.ref.saveLayer(\n paint ? JsiSkPaint.fromValue(paint) : undefined,\n bounds ? JsiSkRect.fromValue(this.CanvasKit, bounds) : bounds,\n backdrop ? JsiSkImageFilter.fromValue(backdrop) : backdrop,\n flags\n );\n }\n\n restore() {\n this.ref.restore();\n }\n\n rotate(rotationInDegrees: number, rx: number, ry: number) {\n this.ref.rotate(rotationInDegrees, rx, ry);\n }\n\n scale(sx: number, sy: number) {\n this.ref.scale(sx, sy);\n }\n\n skew(sx: number, sy: number) {\n this.ref.skew(sx, sy);\n }\n\n translate(dx: number, dy: number) {\n this.ref.translate(dx, dy);\n }\n\n drawColor(color: SkColor, blendMode?: BlendMode) {\n this.ref.drawColor(\n color,\n blendMode ? getEnum(this.CanvasKit, \"BlendMode\", blendMode) : undefined\n );\n }\n\n clear(color: SkColor) {\n this.ref.clear(color);\n }\n\n clipPath(path: SkPath, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipPath(\n JsiSkPath.fromValue(path),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRect(rect: SkRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRRect(rrect: InputRRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n concat(m: SkMatrix | number[]) {\n this.ref.concat(Array.isArray(m) ? m : JsiSkMatrix.fromValue(m));\n }\n\n drawPicture(skp: SkPicture) {\n this.ref.drawPicture(JsiSkPicture.fromValue(skp));\n }\n\n drawAtlas(\n atlas: SkImage,\n srcs: SkRect[],\n dsts: SkRSXform[],\n paint: SkPaint,\n blendMode?: BlendMode,\n colors?: SkColor[],\n sampling?: CubicResampler | FilterOptions\n ) {\n const src = srcs.flatMap((s) =>\n Array.from(JsiSkRect.fromValue(this.CanvasKit, s))\n );\n const dst = dsts.flatMap((s) => Array.from(JsiSkRSXform.fromValue(s)));\n let cls: Uint32Array | undefined;\n if (colors) {\n cls = new Uint32Array(colors.length);\n for (let i = 0; i < colors.length; i++) {\n const [r, g, b, a] = colors[i];\n cls[i] = this.CanvasKit.ColorAsInt(r * 255, g * 255, b * 255, a * 255);\n }\n }\n let ckSampling: CKCubicResampler | CKFilterOptions = {\n filter: this.CanvasKit.FilterMode.Linear,\n mipmap: this.CanvasKit.MipmapMode.None,\n };\n if (sampling && isCubicSampling(sampling)) {\n ckSampling = sampling;\n } else if (sampling) {\n ckSampling = {\n filter: getEnum(this.CanvasKit, \"FilterMode\", sampling.filter),\n mipmap: sampling.mipmap\n ? getEnum(this.CanvasKit, \"MipmapMode\", sampling.mipmap)\n : this.CanvasKit.MipmapMode.None,\n };\n }\n this.ref.drawAtlas(\n JsiSkImage.fromValue(atlas),\n src,\n dst,\n JsiSkPaint.fromValue(paint),\n blendMode\n ? getEnum(this.CanvasKit, \"BlendMode\", blendMode)\n : this.CanvasKit.BlendMode.DstOver,\n cls,\n ckSampling\n );\n }\n\n readPixels(srcX: number, srcY: number, imageInfo: ImageInfo) {\n const pxInfo = {\n width: imageInfo.width,\n height: imageInfo.height,\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n alphaType: getEnum(this.CanvasKit, \"AlphaType\", imageInfo.alphaType),\n colorType: getEnum(this.CanvasKit, \"ColorType\", imageInfo.colorType),\n };\n return this.ref.readPixels(srcX, srcY, pxInfo);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,5 +4,5 @@ export interface NativeProps extends ViewProps {
|
|
|
4
4
|
opaque?: boolean;
|
|
5
5
|
nativeID: string;
|
|
6
6
|
}
|
|
7
|
-
declare const SkiaPictureViewNativeComponent: ({ nativeID, debug, opaque, onLayout, ...viewProps }: NativeProps) => import("react").FunctionComponentElement<import("
|
|
7
|
+
declare const SkiaPictureViewNativeComponent: ({ nativeID, debug, opaque, onLayout, ...viewProps }: NativeProps) => import("react").FunctionComponentElement<import("../views/SkiaPictureView.web").SkiaPictureViewProps>;
|
|
8
8
|
export default SkiaPictureViewNativeComponent;
|
|
@@ -12,4 +12,7 @@ export interface SkiaPictureViewHandle {
|
|
|
12
12
|
measure(callback: (x: number, y: number, width: number, height: number, pageX: number, pageY: number) => void): void;
|
|
13
13
|
measureInWindow(callback: (x: number, y: number, width: number, height: number) => void): void;
|
|
14
14
|
}
|
|
15
|
-
export
|
|
15
|
+
export interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {
|
|
16
|
+
ref?: React.Ref<SkiaPictureViewHandle>;
|
|
17
|
+
}
|
|
18
|
+
export declare const SkiaPictureView: (props: SkiaPictureViewProps) => React.JSX.Element;
|
|
@@ -3,7 +3,7 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
|
|
|
3
3
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
4
4
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
5
5
|
/* global HTMLCanvasElement */
|
|
6
|
-
import React, { useRef, useEffect, useCallback, useImperativeHandle
|
|
6
|
+
import React, { useRef, useEffect, useCallback, useImperativeHandle } from "react";
|
|
7
7
|
import { JsiSkSurface } from "../skia/web/JsiSkSurface";
|
|
8
8
|
import { Platform } from "../Platform";
|
|
9
9
|
import { SkiaViewNativeId } from "./SkiaViewNativeId";
|
|
@@ -171,7 +171,10 @@ class StaticWebGLRenderer {
|
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
const pd = Platform.PixelRatio;
|
|
174
|
-
export const SkiaPictureView =
|
|
174
|
+
export const SkiaPictureView = props => {
|
|
175
|
+
const {
|
|
176
|
+
ref
|
|
177
|
+
} = props;
|
|
175
178
|
const canvasRef = useRef(null);
|
|
176
179
|
const renderer = useRef(null);
|
|
177
180
|
const redrawRequestsRef = useRef(0);
|
|
@@ -296,6 +299,7 @@ export const SkiaPictureView = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
296
299
|
}, [picture, redraw]);
|
|
297
300
|
const {
|
|
298
301
|
debug = false,
|
|
302
|
+
ref: _ref,
|
|
299
303
|
...viewProps
|
|
300
304
|
} = props;
|
|
301
305
|
return /*#__PURE__*/React.createElement(Platform.View, _extends({}, viewProps, {
|
|
@@ -307,5 +311,5 @@ export const SkiaPictureView = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
307
311
|
flex: 1
|
|
308
312
|
}
|
|
309
313
|
}));
|
|
310
|
-
}
|
|
314
|
+
};
|
|
311
315
|
//# sourceMappingURL=SkiaPictureView.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useEffect","useCallback","useImperativeHandle","forwardRef","JsiSkSurface","Platform","SkiaViewNativeId","dp2Pixel","pd","rect","undefined","x","y","width","height","WebGLRenderer","constructor","canvas","_defineProperty","onResize","makeImageSnapshot","picture","surface","getCanvas","clear","CanvasKit","TRANSPARENT","draw","ref","flush","clientWidth","clientHeight","MakeWebGLCanvasSurface","ctx","getContext","drawingBufferColorSpace","Error","Float32Array","of","save","scale","drawPicture","restore","dispose","_this$canvas","getExtension","loseContext","delete","StaticWebGLRenderer","cachedImage","renderPictureToSurface","tempCanvas","OffscreenCanvas","webglSurface","skiaCanvas","error","cleanupWebGLContext","renderResult","ctx2d","drawImage","console","_this$cachedImage","PixelRatio","SkiaPictureView","props","canvasRef","renderer","redrawRequestsRef","requestIdRef","pictureRef","onLayout","redraw","current","getSize","_canvasRef$current","_canvasRef$current2","setPicture","newPicture","measure","callback","getBoundingClientRect","parentElement","offsetParent","parentRect","left","top","pageX","window","scrollX","pageY","scrollY","measureInWindow","tick","requestAnimationFrame","onLayoutEvent","evt","__destroyWebGLContextAfterRender","_props$nativeID","nativeID","global","SkiaViewApi","registerView","cancelAnimationFrame","debug","viewProps","createElement","View","_extends","style","display","flex"],"sources":["SkiaPictureView.web.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n forwardRef,\n} from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkPicture, SkImage } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\nimport type { ISkiaViewApiWeb } from \"../specs/NativeSkiaModule.web\";\n\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst dp2Pixel = (pd: number, rect?: SkRect) => {\n if (!rect) {\n return undefined;\n }\n return {\n x: rect.x * pd,\n y: rect.y * pd,\n width: rect.width * pd,\n height: rect.height * pd,\n };\n};\n\ninterface Renderer {\n onResize(): void;\n draw(picture: SkPicture): void;\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null;\n dispose(): void;\n}\n\nclass WebGLRenderer implements Renderer {\n private surface: JsiSkSurface | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {\n this.onResize();\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.surface) {\n return null;\n }\n const canvas = this.surface.getCanvas();\n canvas!.clear(CanvasKit.TRANSPARENT);\n this.draw(picture);\n this.surface.ref.flush();\n return this.surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n }\n\n onResize() {\n const { canvas, pd } = this;\n canvas.width = canvas.clientWidth * pd;\n canvas.height = canvas.clientHeight * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n const ctx = canvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this.surface = new JsiSkSurface(CanvasKit, surface);\n }\n\n draw(picture: SkPicture) {\n if (this.surface) {\n const canvas = this.surface.getCanvas();\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n canvas.drawPicture(picture);\n canvas.restore();\n this.surface.ref.flush();\n }\n }\n\n dispose(): void {\n if (this.surface) {\n this.canvas\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\n this.surface.ref.delete();\n this.surface = null;\n }\n }\n}\n\nclass StaticWebGLRenderer implements Renderer {\n private cachedImage: SkImage | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {}\n\n onResize(): void {\n this.cachedImage = null;\n }\n\n private renderPictureToSurface(\n picture: SkPicture\n ): { surface: JsiSkSurface; tempCanvas: OffscreenCanvas } | null {\n const tempCanvas = new OffscreenCanvas(\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n let surface: JsiSkSurface | null = null;\n\n try {\n const webglSurface = CanvasKit.MakeWebGLCanvasSurface(tempCanvas);\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n\n if (!webglSurface) {\n throw new Error(\"Could not create WebGL surface\");\n }\n\n surface = new JsiSkSurface(CanvasKit, webglSurface);\n\n const skiaCanvas = surface.getCanvas();\n skiaCanvas.clear(Float32Array.of(0, 0, 0, 0));\n skiaCanvas.save();\n skiaCanvas.scale(this.pd, this.pd);\n skiaCanvas.drawPicture(picture);\n skiaCanvas.restore();\n surface.ref.flush();\n\n return { surface, tempCanvas };\n } catch (error) {\n if (surface) {\n surface.ref.delete();\n }\n this.cleanupWebGLContext(tempCanvas);\n return null;\n }\n }\n\n private cleanupWebGLContext(tempCanvas: OffscreenCanvas): void {\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n const loseContext = ctx.getExtension(\"WEBGL_lose_context\");\n if (loseContext) {\n loseContext.loseContext();\n }\n }\n }\n\n draw(picture: SkPicture): void {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return;\n }\n const { tempCanvas } = renderResult;\n const ctx2d = this.canvas.getContext(\"2d\");\n if (!ctx2d) {\n throw new Error(\"Could not get 2D context\");\n }\n\n // Set canvas dimensions to match pixel density\n this.canvas.width = this.canvas.clientWidth * this.pd;\n this.canvas.height = this.canvas.clientHeight * this.pd;\n\n // Draw the tempCanvas scaled down to the display size\n ctx2d.drawImage(\n tempCanvas,\n 0,\n 0,\n tempCanvas.width,\n tempCanvas.height,\n 0,\n 0,\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n this.cleanupWebGLContext(tempCanvas);\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.cachedImage) {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return null;\n }\n\n const { surface, tempCanvas } = renderResult;\n\n try {\n this.cachedImage = surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n } catch (error) {\n console.error(\"Error creating image snapshot:\", error);\n } finally {\n surface.ref.delete();\n this.cleanupWebGLContext(tempCanvas);\n }\n }\n\n return this.cachedImage;\n }\n\n dispose(): void {\n this.cachedImage?.dispose();\n this.cachedImage = null;\n }\n}\n\nconst pd = Platform.PixelRatio;\n\nexport interface SkiaPictureViewHandle {\n setPicture(picture: SkPicture): void;\n getSize(): { width: number; height: number };\n redraw(): void;\n makeImageSnapshot(rect?: SkRect): SkImage | null;\n measure(\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ): void;\n measureInWindow(\n callback: (x: number, y: number, width: number, height: number) => void\n ): void;\n}\n\nexport const SkiaPictureView = forwardRef<\n SkiaPictureViewHandle,\n SkiaPictureViewNativeProps\n>((props, ref) => {\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const renderer = useRef<Renderer | null>(null);\n const redrawRequestsRef = useRef(0);\n const requestIdRef = useRef(0);\n const pictureRef = useRef<SkPicture | null>(null);\n\n const { picture, onLayout } = props;\n\n const redraw = useCallback(() => {\n redrawRequestsRef.current++;\n }, []);\n\n const getSize = useCallback(() => {\n return {\n width: canvasRef.current?.clientWidth || 0,\n height: canvasRef.current?.clientHeight || 0,\n };\n }, []);\n\n const setPicture = useCallback(\n (newPicture: SkPicture) => {\n pictureRef.current = newPicture;\n redraw();\n },\n [redraw]\n );\n\n const makeImageSnapshot = useCallback((rect?: SkRect) => {\n if (renderer.current && pictureRef.current) {\n return renderer.current.makeImageSnapshot(pictureRef.current, rect);\n }\n return null;\n }, []);\n\n const measure = useCallback(\n (\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n const parentElement = canvasRef.current.offsetParent as HTMLElement;\n const parentRect = parentElement?.getBoundingClientRect() || {\n left: 0,\n top: 0,\n };\n\n // x, y are relative to the parent\n const x = rect.left - parentRect.left;\n const y = rect.top - parentRect.top;\n\n // pageX, pageY are absolute screen coordinates\n const pageX = rect.left + window.scrollX;\n const pageY = rect.top + window.scrollY;\n\n callback(x, y, rect.width, rect.height, pageX, pageY);\n }\n },\n []\n );\n\n const measureInWindow = useCallback(\n (\n callback: (x: number, y: number, width: number, height: number) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n\n // x, y are the absolute coordinates in the window\n const x = rect.left;\n const y = rect.top;\n\n callback(x, y, rect.width, rect.height);\n }\n },\n []\n );\n\n const tick = useCallback(() => {\n if (redrawRequestsRef.current > 0) {\n redrawRequestsRef.current = 0;\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n requestIdRef.current = requestAnimationFrame(tick);\n }, []);\n\n const onLayoutEvent = useCallback(\n (evt: LayoutChangeEvent) => {\n const canvas = canvasRef.current;\n if (canvas) {\n renderer.current =\n props.__destroyWebGLContextAfterRender === true\n ? new StaticWebGLRenderer(canvas, pd)\n : new WebGLRenderer(canvas, pd);\n if (pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n if (onLayout) {\n onLayout(evt);\n }\n },\n [onLayout, props.__destroyWebGLContextAfterRender]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n get canvasRef() {\n return () => canvasRef.current;\n },\n }),\n [setPicture, getSize, redraw, makeImageSnapshot, measure, measureInWindow]\n );\n\n useEffect(() => {\n const nativeID = props.nativeID ?? `${SkiaViewNativeId.current++}`;\n (global.SkiaViewApi as ISkiaViewApiWeb).registerView(nativeID, {\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n } as SkiaPictureViewHandle);\n }, [\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n props.nativeID,\n ]);\n\n useEffect(() => {\n if (props.picture) {\n setPicture(props.picture);\n }\n }, [setPicture, props.picture]);\n\n useEffect(() => {\n tick();\n return () => {\n cancelAnimationFrame(requestIdRef.current);\n if (renderer.current) {\n renderer.current.dispose();\n renderer.current = null;\n }\n };\n }, [tick]);\n\n useEffect(() => {\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }, [picture, redraw]);\n\n const { debug = false, ...viewProps } = props;\n return (\n <Platform.View {...viewProps} onLayout={onLayoutEvent}>\n <canvas ref={canvasRef} style={{ display: \"flex\", flex: 1 }} />\n </Platform.View>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useRef","useEffect","useCallback","useImperativeHandle","JsiSkSurface","Platform","SkiaViewNativeId","dp2Pixel","pd","rect","undefined","x","y","width","height","WebGLRenderer","constructor","canvas","_defineProperty","onResize","makeImageSnapshot","picture","surface","getCanvas","clear","CanvasKit","TRANSPARENT","draw","ref","flush","clientWidth","clientHeight","MakeWebGLCanvasSurface","ctx","getContext","drawingBufferColorSpace","Error","Float32Array","of","save","scale","drawPicture","restore","dispose","_this$canvas","getExtension","loseContext","delete","StaticWebGLRenderer","cachedImage","renderPictureToSurface","tempCanvas","OffscreenCanvas","webglSurface","skiaCanvas","error","cleanupWebGLContext","renderResult","ctx2d","drawImage","console","_this$cachedImage","PixelRatio","SkiaPictureView","props","canvasRef","renderer","redrawRequestsRef","requestIdRef","pictureRef","onLayout","redraw","current","getSize","_canvasRef$current","_canvasRef$current2","setPicture","newPicture","measure","callback","getBoundingClientRect","parentElement","offsetParent","parentRect","left","top","pageX","window","scrollX","pageY","scrollY","measureInWindow","tick","requestAnimationFrame","onLayoutEvent","evt","__destroyWebGLContextAfterRender","_props$nativeID","nativeID","global","SkiaViewApi","registerView","cancelAnimationFrame","debug","_ref","viewProps","createElement","View","_extends","style","display","flex"],"sources":["SkiaPictureView.web.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n} from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkPicture, SkImage } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\nimport type { ISkiaViewApiWeb } from \"../specs/NativeSkiaModule.web\";\n\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst dp2Pixel = (pd: number, rect?: SkRect) => {\n if (!rect) {\n return undefined;\n }\n return {\n x: rect.x * pd,\n y: rect.y * pd,\n width: rect.width * pd,\n height: rect.height * pd,\n };\n};\n\ninterface Renderer {\n onResize(): void;\n draw(picture: SkPicture): void;\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null;\n dispose(): void;\n}\n\nclass WebGLRenderer implements Renderer {\n private surface: JsiSkSurface | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {\n this.onResize();\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.surface) {\n return null;\n }\n const canvas = this.surface.getCanvas();\n canvas!.clear(CanvasKit.TRANSPARENT);\n this.draw(picture);\n this.surface.ref.flush();\n return this.surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n }\n\n onResize() {\n const { canvas, pd } = this;\n canvas.width = canvas.clientWidth * pd;\n canvas.height = canvas.clientHeight * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n const ctx = canvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this.surface = new JsiSkSurface(CanvasKit, surface);\n }\n\n draw(picture: SkPicture) {\n if (this.surface) {\n const canvas = this.surface.getCanvas();\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n canvas.drawPicture(picture);\n canvas.restore();\n this.surface.ref.flush();\n }\n }\n\n dispose(): void {\n if (this.surface) {\n this.canvas\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\n this.surface.ref.delete();\n this.surface = null;\n }\n }\n}\n\nclass StaticWebGLRenderer implements Renderer {\n private cachedImage: SkImage | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {}\n\n onResize(): void {\n this.cachedImage = null;\n }\n\n private renderPictureToSurface(\n picture: SkPicture\n ): { surface: JsiSkSurface; tempCanvas: OffscreenCanvas } | null {\n const tempCanvas = new OffscreenCanvas(\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n let surface: JsiSkSurface | null = null;\n\n try {\n const webglSurface = CanvasKit.MakeWebGLCanvasSurface(tempCanvas);\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n\n if (!webglSurface) {\n throw new Error(\"Could not create WebGL surface\");\n }\n\n surface = new JsiSkSurface(CanvasKit, webglSurface);\n\n const skiaCanvas = surface.getCanvas();\n skiaCanvas.clear(Float32Array.of(0, 0, 0, 0));\n skiaCanvas.save();\n skiaCanvas.scale(this.pd, this.pd);\n skiaCanvas.drawPicture(picture);\n skiaCanvas.restore();\n surface.ref.flush();\n\n return { surface, tempCanvas };\n } catch (error) {\n if (surface) {\n surface.ref.delete();\n }\n this.cleanupWebGLContext(tempCanvas);\n return null;\n }\n }\n\n private cleanupWebGLContext(tempCanvas: OffscreenCanvas): void {\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n const loseContext = ctx.getExtension(\"WEBGL_lose_context\");\n if (loseContext) {\n loseContext.loseContext();\n }\n }\n }\n\n draw(picture: SkPicture): void {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return;\n }\n const { tempCanvas } = renderResult;\n const ctx2d = this.canvas.getContext(\"2d\");\n if (!ctx2d) {\n throw new Error(\"Could not get 2D context\");\n }\n\n // Set canvas dimensions to match pixel density\n this.canvas.width = this.canvas.clientWidth * this.pd;\n this.canvas.height = this.canvas.clientHeight * this.pd;\n\n // Draw the tempCanvas scaled down to the display size\n ctx2d.drawImage(\n tempCanvas,\n 0,\n 0,\n tempCanvas.width,\n tempCanvas.height,\n 0,\n 0,\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n this.cleanupWebGLContext(tempCanvas);\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.cachedImage) {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return null;\n }\n\n const { surface, tempCanvas } = renderResult;\n\n try {\n this.cachedImage = surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n } catch (error) {\n console.error(\"Error creating image snapshot:\", error);\n } finally {\n surface.ref.delete();\n this.cleanupWebGLContext(tempCanvas);\n }\n }\n\n return this.cachedImage;\n }\n\n dispose(): void {\n this.cachedImage?.dispose();\n this.cachedImage = null;\n }\n}\n\nconst pd = Platform.PixelRatio;\n\nexport interface SkiaPictureViewHandle {\n setPicture(picture: SkPicture): void;\n getSize(): { width: number; height: number };\n redraw(): void;\n makeImageSnapshot(rect?: SkRect): SkImage | null;\n measure(\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ): void;\n measureInWindow(\n callback: (x: number, y: number, width: number, height: number) => void\n ): void;\n}\n\nexport interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {\n ref?: React.Ref<SkiaPictureViewHandle>;\n}\n\nexport const SkiaPictureView = (props: SkiaPictureViewProps) => {\n const { ref } = props;\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const renderer = useRef<Renderer | null>(null);\n const redrawRequestsRef = useRef(0);\n const requestIdRef = useRef(0);\n const pictureRef = useRef<SkPicture | null>(null);\n\n const { picture, onLayout } = props;\n\n const redraw = useCallback(() => {\n redrawRequestsRef.current++;\n }, []);\n\n const getSize = useCallback(() => {\n return {\n width: canvasRef.current?.clientWidth || 0,\n height: canvasRef.current?.clientHeight || 0,\n };\n }, []);\n\n const setPicture = useCallback(\n (newPicture: SkPicture) => {\n pictureRef.current = newPicture;\n redraw();\n },\n [redraw]\n );\n\n const makeImageSnapshot = useCallback((rect?: SkRect) => {\n if (renderer.current && pictureRef.current) {\n return renderer.current.makeImageSnapshot(pictureRef.current, rect);\n }\n return null;\n }, []);\n\n const measure = useCallback(\n (\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n const parentElement = canvasRef.current.offsetParent as HTMLElement;\n const parentRect = parentElement?.getBoundingClientRect() || {\n left: 0,\n top: 0,\n };\n\n // x, y are relative to the parent\n const x = rect.left - parentRect.left;\n const y = rect.top - parentRect.top;\n\n // pageX, pageY are absolute screen coordinates\n const pageX = rect.left + window.scrollX;\n const pageY = rect.top + window.scrollY;\n\n callback(x, y, rect.width, rect.height, pageX, pageY);\n }\n },\n []\n );\n\n const measureInWindow = useCallback(\n (\n callback: (x: number, y: number, width: number, height: number) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n\n // x, y are the absolute coordinates in the window\n const x = rect.left;\n const y = rect.top;\n\n callback(x, y, rect.width, rect.height);\n }\n },\n []\n );\n\n const tick = useCallback(() => {\n if (redrawRequestsRef.current > 0) {\n redrawRequestsRef.current = 0;\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n requestIdRef.current = requestAnimationFrame(tick);\n }, []);\n\n const onLayoutEvent = useCallback(\n (evt: LayoutChangeEvent) => {\n const canvas = canvasRef.current;\n if (canvas) {\n renderer.current =\n props.__destroyWebGLContextAfterRender === true\n ? new StaticWebGLRenderer(canvas, pd)\n : new WebGLRenderer(canvas, pd);\n if (pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n if (onLayout) {\n onLayout(evt);\n }\n },\n [onLayout, props.__destroyWebGLContextAfterRender]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n get canvasRef() {\n return () => canvasRef.current;\n },\n }),\n [setPicture, getSize, redraw, makeImageSnapshot, measure, measureInWindow]\n );\n\n useEffect(() => {\n const nativeID = props.nativeID ?? `${SkiaViewNativeId.current++}`;\n (global.SkiaViewApi as ISkiaViewApiWeb).registerView(nativeID, {\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n } as SkiaPictureViewHandle);\n }, [\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n props.nativeID,\n ]);\n\n useEffect(() => {\n if (props.picture) {\n setPicture(props.picture);\n }\n }, [setPicture, props.picture]);\n\n useEffect(() => {\n tick();\n return () => {\n cancelAnimationFrame(requestIdRef.current);\n if (renderer.current) {\n renderer.current.dispose();\n renderer.current = null;\n }\n };\n }, [tick]);\n\n useEffect(() => {\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }, [picture, redraw]);\n\n const { debug = false, ref: _ref, ...viewProps } = props;\n return (\n <Platform.View {...viewProps} onLayout={onLayoutEvent}>\n <canvas ref={canvasRef} style={{ display: \"flex\", flex: 1 }} />\n </Platform.View>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,7 +25,7 @@ export class JsiSkCanvas extends _Host.HostObject {
|
|
|
25
25
|
drawText(str: any, x: any, y: any, paint: any, font: any): void;
|
|
26
26
|
drawTextBlob(blob: any, x: any, y: any, paint: any): void;
|
|
27
27
|
drawGlyphs(glyphs: any, positions: any, x: any, y: any, font: any, paint: any): void;
|
|
28
|
-
drawSvg(svg: any,
|
|
28
|
+
drawSvg(svg: any, _width: any, _height: any): void;
|
|
29
29
|
save(): any;
|
|
30
30
|
saveLayer(paint: any, bounds: any, backdrop: any, flags: any): any;
|
|
31
31
|
restore(): void;
|
|
@@ -6,15 +6,5 @@ declare function SkiaPictureViewNativeComponent({ nativeID, debug, opaque, onLay
|
|
|
6
6
|
debug: any;
|
|
7
7
|
opaque: any;
|
|
8
8
|
onLayout: any;
|
|
9
|
-
}): _react.
|
|
10
|
-
nativeID: any;
|
|
11
|
-
debug: any;
|
|
12
|
-
opaque: any;
|
|
13
|
-
onLayout: any;
|
|
14
|
-
}, _react.Component<{
|
|
15
|
-
nativeID: any;
|
|
16
|
-
debug: any;
|
|
17
|
-
opaque: any;
|
|
18
|
-
onLayout: any;
|
|
19
|
-
}, any, any>>;
|
|
9
|
+
}): _react.FunctionComponentElement<any>;
|
|
20
10
|
import _react = require("react");
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const __esModule: boolean;
|
|
2
|
-
export
|
|
2
|
+
export function SkiaPictureView(props: any): any;
|
|
@@ -24,7 +24,7 @@ export class JsiSkCanvas extends HostObject {
|
|
|
24
24
|
drawText(str: any, x: any, y: any, paint: any, font: any): void;
|
|
25
25
|
drawTextBlob(blob: any, x: any, y: any, paint: any): void;
|
|
26
26
|
drawGlyphs(glyphs: any, positions: any, x: any, y: any, font: any, paint: any): void;
|
|
27
|
-
drawSvg(svg: any,
|
|
27
|
+
drawSvg(svg: any, _width: any, _height: any): void;
|
|
28
28
|
save(): any;
|
|
29
29
|
saveLayer(paint: any, bounds: any, backdrop: any, flags: any): any;
|
|
30
30
|
restore(): void;
|
|
@@ -5,4 +5,4 @@ declare function SkiaPictureViewNativeComponent({ nativeID, debug, opaque, onLay
|
|
|
5
5
|
debug: any;
|
|
6
6
|
opaque: any;
|
|
7
7
|
onLayout: any;
|
|
8
|
-
}): import("react").
|
|
8
|
+
}): import("react").FunctionComponentElement<any>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export function SkiaPictureView(props: any): React.CElement<import("react-native").ViewProps, import("react-native").View>;
|
|
2
2
|
import React from "react";
|
|
@@ -27,7 +27,7 @@ export declare class JsiSkCanvas extends HostObject<Canvas, "Canvas"> implements
|
|
|
27
27
|
drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont): void;
|
|
28
28
|
drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint): void;
|
|
29
29
|
drawGlyphs(glyphs: number[], positions: SkPoint[], x: number, y: number, font: SkFont, paint: SkPaint): void;
|
|
30
|
-
drawSvg(svg: SkSVG,
|
|
30
|
+
drawSvg(svg: SkSVG, _width?: number, _height?: number): void;
|
|
31
31
|
save(): number;
|
|
32
32
|
saveLayer(paint?: SkPaint, bounds?: SkRect | null, backdrop?: SkImageFilter | null, flags?: SaveLayerFlag): number;
|
|
33
33
|
restore(): void;
|
|
@@ -4,5 +4,5 @@ export interface NativeProps extends ViewProps {
|
|
|
4
4
|
opaque?: boolean;
|
|
5
5
|
nativeID: string;
|
|
6
6
|
}
|
|
7
|
-
declare const SkiaPictureViewNativeComponent: ({ nativeID, debug, opaque, onLayout, ...viewProps }: NativeProps) => import("react").FunctionComponentElement<import("
|
|
7
|
+
declare const SkiaPictureViewNativeComponent: ({ nativeID, debug, opaque, onLayout, ...viewProps }: NativeProps) => import("react").FunctionComponentElement<import("../views/SkiaPictureView.web").SkiaPictureViewProps>;
|
|
8
8
|
export default SkiaPictureViewNativeComponent;
|
|
@@ -12,4 +12,7 @@ export interface SkiaPictureViewHandle {
|
|
|
12
12
|
measure(callback: (x: number, y: number, width: number, height: number, pageX: number, pageY: number) => void): void;
|
|
13
13
|
measureInWindow(callback: (x: number, y: number, width: number, height: number) => void): void;
|
|
14
14
|
}
|
|
15
|
-
export
|
|
15
|
+
export interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {
|
|
16
|
+
ref?: React.Ref<SkiaPictureViewHandle>;
|
|
17
|
+
}
|
|
18
|
+
export declare const SkiaPictureView: (props: SkiaPictureViewProps) => React.JSX.Element;
|
package/package.json
CHANGED
|
@@ -312,9 +312,7 @@ export class JsiSkCanvas
|
|
|
312
312
|
);
|
|
313
313
|
}
|
|
314
314
|
|
|
315
|
-
drawSvg(svg: SkSVG,
|
|
316
|
-
const ctm = this.ref.getLocalToDevice();
|
|
317
|
-
console.log({ ctm, width, height });
|
|
315
|
+
drawSvg(svg: SkSVG, _width?: number, _height?: number) {
|
|
318
316
|
const image = this.CanvasKit.MakeImageFromCanvasImageSource(
|
|
319
317
|
(svg as JsiSkSVG).ref
|
|
320
318
|
);
|
|
@@ -4,7 +4,6 @@ import React, {
|
|
|
4
4
|
useEffect,
|
|
5
5
|
useCallback,
|
|
6
6
|
useImperativeHandle,
|
|
7
|
-
forwardRef,
|
|
8
7
|
} from "react";
|
|
9
8
|
import type { LayoutChangeEvent } from "react-native";
|
|
10
9
|
|
|
@@ -239,10 +238,12 @@ export interface SkiaPictureViewHandle {
|
|
|
239
238
|
): void;
|
|
240
239
|
}
|
|
241
240
|
|
|
242
|
-
export
|
|
243
|
-
SkiaPictureViewHandle
|
|
244
|
-
|
|
245
|
-
|
|
241
|
+
export interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {
|
|
242
|
+
ref?: React.Ref<SkiaPictureViewHandle>;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
export const SkiaPictureView = (props: SkiaPictureViewProps) => {
|
|
246
|
+
const { ref } = props;
|
|
246
247
|
const canvasRef = useRef<HTMLCanvasElement | null>(null);
|
|
247
248
|
const renderer = useRef<Renderer | null>(null);
|
|
248
249
|
const redrawRequestsRef = useRef(0);
|
|
@@ -415,10 +416,10 @@ export const SkiaPictureView = forwardRef<
|
|
|
415
416
|
}
|
|
416
417
|
}, [picture, redraw]);
|
|
417
418
|
|
|
418
|
-
const { debug = false, ...viewProps } = props;
|
|
419
|
+
const { debug = false, ref: _ref, ...viewProps } = props;
|
|
419
420
|
return (
|
|
420
421
|
<Platform.View {...viewProps} onLayout={onLayoutEvent}>
|
|
421
422
|
<canvas ref={canvasRef} style={{ display: "flex", flex: 1 }} />
|
|
422
423
|
</Platform.View>
|
|
423
424
|
);
|
|
424
|
-
}
|
|
425
|
+
};
|