UNPKG

@shopify/react-native-skia

Version:

High-performance React Native Graphics using Skia

169 lines 8.16 kB
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); } 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); } import { getEnum, HostObject } from "./Host"; import { JsiSkPaint } from "./JsiSkPaint"; import { JsiSkRect } from "./JsiSkRect"; import { JsiSkRRect } from "./JsiSkRRect"; import { JsiSkImage } from "./JsiSkImage"; import { JsiSkVertices } from "./JsiSkVertices"; import { JsiSkPath } from "./JsiSkPath"; import { JsiSkFont } from "./JsiSkFont"; import { JsiSkTextBlob } from "./JsiSkTextBlob"; import { JsiSkPicture } from "./JsiSkPicture"; import { JsiSkMatrix } from "./JsiSkMatrix"; import { JsiSkImageFilter } from "./JsiSkImageFilter"; import { JsiSkPoint } from "./JsiSkPoint"; import { JsiSkRSXform } from "./JsiSkRSXform"; export class JsiSkCanvas extends HostObject { constructor(CanvasKit, ref) { super(CanvasKit, ref, "Canvas"); _defineProperty(this, "dispose", () => { this.ref.delete(); }); } drawRect(rect, paint) { this.ref.drawRect(JsiSkRect.fromValue(this.CanvasKit, rect), JsiSkPaint.fromValue(paint)); } drawImage(image, x, y, paint) { this.ref.drawImage(JsiSkImage.fromValue(image), x, y, paint ? JsiSkPaint.fromValue(paint) : paint); } drawImageRect(img, src, dest, paint, fastSample) { this.ref.drawImageRect(JsiSkImage.fromValue(img), JsiSkRect.fromValue(this.CanvasKit, src), JsiSkRect.fromValue(this.CanvasKit, dest), JsiSkPaint.fromValue(paint), fastSample); } drawImageCubic(img, left, top, B, C, paint) { this.ref.drawImageCubic(JsiSkImage.fromValue(img), left, top, B, C, paint ? JsiSkPaint.fromValue(paint) : paint); } drawImageOptions(img, left, top, fm, mm, paint) { this.ref.drawImageOptions(JsiSkImage.fromValue(img), left, top, getEnum(this.CanvasKit.FilterMode, fm), getEnum(this.CanvasKit.MipmapMode, mm), paint ? JsiSkPaint.fromValue(paint) : paint); } drawImageNine(img, center, dest, filter, paint) { this.ref.drawImageNine(JsiSkImage.fromValue(img), Array.from(JsiSkRect.fromValue(this.CanvasKit, center)), JsiSkRect.fromValue(this.CanvasKit, dest), getEnum(this.CanvasKit.FilterMode, filter), paint ? JsiSkPaint.fromValue(paint) : paint); } drawImageRectCubic(img, src, dest, B, C, paint) { this.ref.drawImageRectCubic(JsiSkImage.fromValue(img), JsiSkRect.fromValue(this.CanvasKit, src), JsiSkRect.fromValue(this.CanvasKit, dest), B, C, paint ? JsiSkPaint.fromValue(paint) : paint); } drawImageRectOptions(img, src, dest, fm, mm, paint) { this.ref.drawImageRectOptions(JsiSkImage.fromValue(img), JsiSkRect.fromValue(this.CanvasKit, src), JsiSkRect.fromValue(this.CanvasKit, dest), getEnum(this.CanvasKit.FilterMode, fm), getEnum(this.CanvasKit.MipmapMode, mm), paint ? JsiSkPaint.fromValue(paint) : paint); } drawPaint(paint) { this.ref.drawPaint(JsiSkPaint.fromValue(paint)); } drawLine(x0, y0, x1, y1, paint) { this.ref.drawLine(x0, y0, x1, y1, JsiSkPaint.fromValue(paint)); } drawCircle(cx, cy, radius, paint) { this.ref.drawCircle(cx, cy, radius, JsiSkPaint.fromValue(paint)); } drawVertices(verts, mode, paint) { this.ref.drawVertices(JsiSkVertices.fromValue(verts), getEnum(this.CanvasKit.BlendMode, mode), JsiSkPaint.fromValue(paint)); } drawPatch(cubics, colors, texs, mode, paint) { this.ref.drawPatch(cubics.map(({ x, y }) => [x, y]).flat(), colors, texs ? texs.flatMap(p => Array.from(JsiSkPoint.fromValue(p))) : texs, mode ? getEnum(this.CanvasKit.BlendMode, mode) : null, paint ? JsiSkPaint.fromValue(paint) : undefined); } restoreToCount(saveCount) { this.ref.restoreToCount(saveCount); } drawPoints(mode, points, paint) { this.ref.drawPoints(getEnum(this.CanvasKit.PointMode, mode), points.map(({ x, y }) => [x, y]).flat(), JsiSkPaint.fromValue(paint)); } drawArc(oval, startAngle, sweepAngle, useCenter, paint) { this.ref.drawArc(JsiSkRect.fromValue(this.CanvasKit, oval), startAngle, sweepAngle, useCenter, JsiSkPaint.fromValue(paint)); } drawRRect(rrect, paint) { this.ref.drawRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), JsiSkPaint.fromValue(paint)); } drawDRRect(outer, inner, paint) { this.ref.drawDRRect(JsiSkRRect.fromValue(this.CanvasKit, outer), JsiSkRRect.fromValue(this.CanvasKit, inner), JsiSkPaint.fromValue(paint)); } drawOval(oval, paint) { this.ref.drawOval(JsiSkRect.fromValue(this.CanvasKit, oval), JsiSkPaint.fromValue(paint)); } drawPath(path, paint) { this.ref.drawPath(JsiSkPath.fromValue(path), JsiSkPaint.fromValue(paint)); } drawText(str, x, y, paint, font) { this.ref.drawText(str, x, y, JsiSkPaint.fromValue(paint), JsiSkFont.fromValue(font)); } drawTextBlob(blob, x, y, paint) { this.ref.drawTextBlob(JsiSkTextBlob.fromValue(blob), x, y, JsiSkPaint.fromValue(paint)); } drawGlyphs(glyphs, positions, x, y, font, paint) { this.ref.drawGlyphs(glyphs, positions.map(p => [p.x, p.y]).flat(), x, y, JsiSkFont.fromValue(font), JsiSkPaint.fromValue(paint)); } drawSvg(_svgDom, _width, _height) { throw new Error("drawSvg is not implemented on React Native Web"); } save() { return this.ref.save(); } saveLayer(paint, bounds, backdrop, flags) { return this.ref.saveLayer(paint ? JsiSkPaint.fromValue(paint) : undefined, bounds ? JsiSkRect.fromValue(this.CanvasKit, bounds) : bounds, backdrop ? JsiSkImageFilter.fromValue(backdrop) : backdrop, flags); } restore() { this.ref.restore(); } rotate(rotationInDegrees, rx, ry) { this.ref.rotate(rotationInDegrees, rx, ry); } scale(sx, sy) { this.ref.scale(sx, sy); } skew(sx, sy) { this.ref.skew(sx, sy); } translate(dx, dy) { this.ref.translate(dx, dy); } drawColor(color, blendMode) { this.ref.drawColor(color, blendMode ? getEnum(this.CanvasKit.BlendMode, blendMode) : undefined); } clear(color) { this.ref.clear(color); } clipPath(path, op, doAntiAlias) { this.ref.clipPath(JsiSkPath.fromValue(path), getEnum(this.CanvasKit.PathOp, op), doAntiAlias); } clipRect(rect, op, doAntiAlias) { this.ref.clipRect(JsiSkRect.fromValue(this.CanvasKit, rect), getEnum(this.CanvasKit.PathOp, op), doAntiAlias); } clipRRect(rrect, op, doAntiAlias) { this.ref.clipRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), getEnum(this.CanvasKit.PathOp, op), doAntiAlias); } concat(m) { this.ref.concat(Array.isArray(m) ? m : JsiSkMatrix.fromValue(m)); } drawPicture(skp) { this.ref.drawPicture(JsiSkPicture.fromValue(skp)); } drawAtlas(atlas, srcs, dsts, paint, blendMode, colors, _sampling) { const src = srcs.flatMap(s => Array.from(JsiSkRect.fromValue(this.CanvasKit, s))); const dst = dsts.flatMap(s => Array.from(JsiSkRSXform.fromValue(s))); let cls; if (colors) { cls = new Uint32Array(colors.length); for (let i = 0; i < colors.length; i++) { const [r, g, b, a] = colors[i]; cls[i] = this.CanvasKit.ColorAsInt(r * 255, g * 255, b * 255, a * 255); } } this.ref.drawAtlas(JsiSkImage.fromValue(atlas), src, dst, JsiSkPaint.fromValue(paint), blendMode ? getEnum(this.CanvasKit.BlendMode, blendMode) : this.CanvasKit.BlendMode.DstOver, cls); } readPixels(srcX, srcY, imageInfo) { const pxInfo = { width: imageInfo.width, height: imageInfo.height, colorSpace: this.CanvasKit.ColorSpace.SRGB, alphaType: getEnum(this.CanvasKit.AlphaType, imageInfo.alphaType), colorType: getEnum(this.CanvasKit.ColorType, imageInfo.colorType) }; return this.ref.readPixels(srcX, srcY, pxInfo); } } //# sourceMappingURL=JsiSkCanvas.js.map