modern-canvas
Version:
A JavaScript WebGL rendering engine. only the ESM.
62 lines (61 loc) • 2.37 kB
TypeScript
import type { Node, SceneTreeEvents, SceneTreeProperties } from './scene';
import { GlRenderer } from './core';
import { SceneTree } from './scene';
export type EngineData = Record<string, any> | Node | (Node | Record<string, any>)[];
export interface EngineProperties extends WebGLContextAttributes, SceneTreeProperties {
view?: HTMLCanvasElement | WebGLRenderingContext | WebGL2RenderingContext;
width?: number;
height?: number;
pixelRatio?: number;
autoResize: boolean;
autoStart: boolean;
data?: EngineData;
}
interface EngineEvents extends SceneTreeEvents {
}
export interface Engine {
on: <K extends keyof EngineEvents>(event: K, listener: (...args: EngineEvents[K]) => void) => this;
once: <K extends keyof EngineEvents>(event: K, listener: (...args: EngineEvents[K]) => void) => this;
off: <K extends keyof EngineEvents>(event: K, listener: (...args: EngineEvents[K]) => void) => this;
emit: <K extends keyof EngineEvents>(event: K, ...args: EngineEvents[K]) => this;
}
export declare const defaultOptions: {
readonly alpha: true;
readonly stencil: true;
readonly antialias: false;
readonly premultipliedAlpha: true;
readonly preserveDrawingBuffer: false;
readonly powerPreference: "default";
};
export declare class Engine extends SceneTree {
autoResize: boolean;
autoStart: boolean;
readonly renderer: GlRenderer;
get view(): HTMLCanvasElement | undefined;
get gl(): WebGLRenderingContext | WebGL2RenderingContext;
get screen(): {
x: number;
y: number;
width: number;
height: number;
};
get width(): number;
get height(): number;
get pixelRatio(): number;
set pixelRatio(val: number);
protected _resizeObserver: ResizeObserver | undefined;
constructor(properties?: Partial<EngineProperties>);
protected _updateProperty(key: string, value: any, oldValue: any): void;
protected _setupInput(): this;
resize(width: number, height: number, updateCss?: boolean): this;
nextTick(): Promise<void>;
waitUntilLoad(): Promise<void>;
waitAndRender(delta?: number): Promise<void>;
render(delta?: number): void;
start(): Promise<void>;
toPixels(): Uint8ClampedArray<ArrayBuffer>;
toImageData(): ImageData;
toCanvas2D(): HTMLCanvasElement;
destroy(): void;
}
export {};