UNPKG

@shopify/react-native-skia

Version:

High-performance React Native Graphics using Skia

41 lines (34 loc) 1.04 kB
import type { CanvasKit, PictureRecorder } from "canvaskit-wasm"; import type { SkRect } from "../types"; import type { SkPictureRecorder } from "../types/Picture/PictureRecorder"; import { HostObject } from "./Host"; import { JsiSkCanvas } from "./JsiSkCanvas"; import { JsiSkPicture } from "./JsiSkPicture"; import { JsiSkRect } from "./JsiSkRect"; export class JsiSkPictureRecorder extends HostObject<PictureRecorder, "PictureRecorder"> implements SkPictureRecorder { constructor(CanvasKit: CanvasKit, ref: PictureRecorder) { super(CanvasKit, ref, "PictureRecorder"); } dispose = () => { this.ref.delete(); }; beginRecording(bounds?: SkRect) { return new JsiSkCanvas( this.CanvasKit, this.ref.beginRecording( bounds ? JsiSkRect.fromValue(this.CanvasKit, bounds) : Float32Array.of(0, 0, 2_000_000, 2_000_000) ) ); } finishRecordingAsPicture() { return new JsiSkPicture( this.CanvasKit, this.ref.finishRecordingAsPicture() ); } }