UNPKG

modern-canvas

Version:

A JavaScript WebGL rendering engine. only the ESM.

43 lines (42 loc) 2.47 kB
import type { RectangleLike } from '../../../math'; import type { RenderTargetLike, TextureLike } from '../../shared'; import type { GlRenderer } from '../GlRenderer'; import type { GlSystemEvents } from '../system'; import type { GlRenderingContext } from '../types'; import { Projection2D } from '../../../math'; import { GlSystem } from '../system'; import { GlRenderTarget } from './GlRenderTarget'; export interface GlRenderTargetSystemEvents extends GlSystemEvents { updateRenderTarget: [renderTarget: RenderTargetLike | null]; } export interface GlRenderTargetSystem { on: <K extends keyof GlRenderTargetSystemEvents & string>(event: K, listener: (...args: GlRenderTargetSystemEvents[K]) => void) => this; once: <K extends keyof GlRenderTargetSystemEvents & string>(event: K, listener: (...args: GlRenderTargetSystemEvents[K]) => void) => this; off: <K extends keyof GlRenderTargetSystemEvents & string>(event: K, listener: (...args: GlRenderTargetSystemEvents[K]) => void) => this; emit: <K extends keyof GlRenderTargetSystemEvents & string>(event: K, ...args: GlRenderTargetSystemEvents[K]) => this; } export declare class GlRenderTargetSystem extends GlSystem { install(renderer: GlRenderer): void; readonly renderTargets: Map<number, RenderTargetLike>; readonly glRenderTargets: Map<number, GlRenderTarget>; current: RenderTargetLike | null; protected _msaaSamples: number[]; protected _hasMRT: boolean; protected _writeDepthTexture: boolean; projectionMatrix: Projection2D; protected _updateContext(gl: GlRenderingContext): void; bind(renderTarget: RenderTargetLike | null, frame?: RectangleLike): void; unbind(): void; getGlRenderTarget(renderTarget: RenderTargetLike): GlRenderTarget; protected _createGlRenderTarget(renderTarget: RenderTargetLike): GlRenderTarget; protected _init(renderTarget: RenderTargetLike): void; ensureDepthStencil(): void; destroyGpuRenderTarget(gpuRenderTarget: GlRenderTarget): void; resizeGpuRenderTarget(renderTarget: RenderTargetLike): void; protected _initStencil(glRenderTarget: GlRenderTarget): void; protected _resizeStencil(glRenderTarget: GlRenderTarget): void; protected _resizeColorTextures(renderTarget: RenderTargetLike, glRenderTarget: GlRenderTarget): void; finishRenderPass(viewport: RenderTargetLike): void; copyToTexture(framebuffer: RenderTargetLike, texture: TextureLike): void; reset(): void; }