@shopify/react-native-skia
Version:
High-performance React Native Graphics using Skia
49 lines (38 loc) • 953 B
text/typescript
import type { CanvasKit, Rect } from "canvaskit-wasm";
import type { SkHostRect, SkRect } from "../types";
import { BaseHostObject } from "./Host";
export class JsiSkRect
extends BaseHostObject<Rect, "Rect">
implements SkHostRect
{
static fromValue(CanvasKit: CanvasKit, rect: SkRect) {
if (rect instanceof JsiSkRect) {
return rect.ref;
}
return CanvasKit.XYWHRect(rect.x, rect.y, rect.width, rect.height);
}
dispose = () => {
// Float32Array
};
constructor(CanvasKit: CanvasKit, ref: Rect) {
super(CanvasKit, ref, "Rect");
}
setXYWH(x: number, y: number, width: number, height: number): void {
this.ref[0] = x;
this.ref[1] = y;
this.ref[2] = x + width;
this.ref[3] = y + height;
}
get x() {
return this.ref[0];
}
get y() {
return this.ref[1];
}
get width() {
return this.ref[2] - this.ref[0];
}
get height() {
return this.ref[3] - this.ref[1];
}
}