UNPKG

modern-canvas

Version:

A JavaScript WebGL rendering engine. only the ESM.

44 lines (43 loc) 2.18 kB
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; }