@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
74 lines • 2.38 kB
TypeScript
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