UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

74 lines 2.38 kB
import { TgdPainterFunction } from "../types/painter"; import { TgdContext } from "../context"; import { TgdPainterGroup } from "./group"; import { TgdPainter } from "./painter"; import { TgdTexture2D } from "../texture"; export interface TgdPainterFramebufferOptions { /** * Do we need a depth buffer? * Default to `true`. */ depthBuffer: boolean; /** * Do we need a stencil buffer? * Default to `true`. */ stencilBuffer: boolean; /** * If defined, the framebuffer will automatically match the * current viewport size multiplied by `viewportMatchingScale`. * * for instance, if `viewportMatchingScale === 0.5` and the viewport * id (640, 480), then the framebuffer will have a size of * (320, 240). * * Default to `1`. */ viewportMatchingScale?: number; textureColor0?: TgdTexture2D; textureColor1?: TgdTexture2D; textureColor2?: TgdTexture2D; textureColor3?: TgdTexture2D; textureDepth?: TgdTexture2D; /** * Function to execute before painting. */ onEnter?: TgdPainterFunction; /** * Function to execute after painting. */ onExit?: TgdPainterFunction; children?: TgdPainter[]; } export declare class TgdPainterFramebuffer extends TgdPainterGroup { private readonly context; private readonly options; readonly textureColor0: TgdTexture2D | undefined; readonly textureColor1: TgdTexture2D | undefined; readonly textureColor2: TgdTexture2D | undefined; readonly textureColor3: TgdTexture2D | undefined; readonly textureDepth: TgdTexture2D | undefined; /** * The framebuffer becomes dirty as soon as the width or height changes. */ private dirty; private _width; private _height; private _framebuffer; private _depthBuffer; private _stencilBuffer; private readonly drawBuffers; constructor(context: TgdContext, options: Partial<TgdPainterFramebufferOptions>); get width(): number; private set width(value); get height(): number; private set height(value); private updateTextureForColor; private createTextureForDepth; private createDepthBuffer; private createStencilBuffer; private createFramebufferIfNeeded; paint(time: number, delay: number): void; delete(): void; } //# sourceMappingURL=framebuffer.d.ts.map