modern-canvas
Version:
A JavaScript WebGL rendering engine. only the ESM.
43 lines (42 loc) • 2.47 kB
TypeScript
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;
}