modern-canvas
Version:
A JavaScript WebGL rendering engine. only the ESM.
49 lines (48 loc) • 1.68 kB
TypeScript
import type { LineCap, LineJoin, LineStyle } from 'modern-path2d';
import type { Batchable2D, ColorValue } from '../../core';
import { Path2D } from 'modern-path2d';
import { Texture2D } from '../resources';
export type TransformUv = (uvs: Float32Array, index: number) => void;
export type TransformVertex = (vertices: Float32Array, index: number) => void;
export interface CanvasBatchable extends Batchable2D {
type: 'stroke' | 'fill';
texture?: Texture2D;
transformUv?: TransformUv;
transformVertex?: TransformVertex;
size?: {
width: number;
height: number;
};
}
export interface StrokeDraw extends Partial<CanvasBatchable> {
type: 'stroke';
path: Path2D;
lineStyle: LineStyle;
}
export interface FillDraw extends Partial<CanvasBatchable> {
type: 'fill';
path: Path2D;
}
export declare class CanvasContext extends Path2D {
fillStyle?: ColorValue | Texture2D;
strokeStyle?: ColorValue | Texture2D;
strokeAlignment?: number;
lineCap?: LineCap;
lineJoin?: LineJoin;
lineWidth?: number;
miterLimit?: number;
transformUv?: TransformUv;
transformVertex?: TransformVertex;
protected _draws: (StrokeDraw | FillDraw)[];
protected _parseDrawStyle(source?: ColorValue | Texture2D): {
texture?: Texture2D;
};
stroke(options?: Partial<StrokeDraw>): void;
fillRect(x: number, y: number, width: number, height: number): void;
strokeRect(x: number, y: number, width: number, height: number): void;
fill(options?: Partial<FillDraw>): void;
copy(source: CanvasContext): this;
resetStatus(): void;
reset(): this;
toBatchables(): CanvasBatchable[];
}