modern-canvas
Version:
A JavaScript WebGL rendering engine. only the ESM.
44 lines (43 loc) • 2.18 kB
TypeScript
import type { GlRenderer, RectangleLike, Vector2, Vector2Like } from '../../core';
import type { Texture2D } from '../resources';
import type { Rectangulable, RectangulableEvents } from './interfaces';
import type { NodeEvents } from './Node';
import { Aabb2D, Transform2D } from '../../core';
import { RenderTarget } from '../resources';
import { Node } from './Node';
export interface ViewportEvents extends NodeEvents, RectangulableEvents {
}
export interface Viewport {
on: <K extends keyof ViewportEvents & string>(event: K, listener: (...args: ViewportEvents[K]) => void) => this;
once: <K extends keyof ViewportEvents & string>(event: K, listener: (...args: ViewportEvents[K]) => void) => this;
off: <K extends keyof ViewportEvents & string>(event: K, listener: (...args: ViewportEvents[K]) => void) => this;
emit: <K extends keyof ViewportEvents & string>(event: K, ...args: ViewportEvents[K]) => this;
}
export declare class Viewport extends Node implements Rectangulable {
readonly canvasTransform: Transform2D;
renderTargetIndex: number;
readonly renderTargets: RenderTarget[];
x: number;
y: number;
width: number;
height: number;
mipLevel: number;
msaa: boolean;
get valid(): boolean;
get renderTarget(): RenderTarget;
get previousRenderTarget(): RenderTarget;
get texture(): Texture2D<null>;
getViewport(): Viewport;
protected _updateProperty(key: string, value: any, oldValue: any): void;
flush(renderer: GlRenderer): void;
resize(width: number, height: number): void;
activate(renderer: GlRenderer, frame?: RectangleLike): boolean;
redraw(renderer: GlRenderer, cb: () => void): boolean;
activateWithCopy(renderer: GlRenderer, target: Viewport): void;
renderStart(renderer: GlRenderer, frame?: RectangleLike): void;
renderEnd(renderer: GlRenderer, oldViewport: Viewport | undefined): void;
render(renderer: GlRenderer, next?: () => void): void;
getRect(): Aabb2D;
toCanvasGlobal<P extends Vector2Like = Vector2>(screenPos: Vector2Like, newPos?: P): P;
toCanvasScreen<P extends Vector2Like = Vector2>(globalPos: Vector2Like, newPos?: P): P;
}