UNPKG

threepipe

Version:

A modern 3D viewer framework built on top of three.js, written in TypeScript, designed to make creating high-quality, modular, and extensible 3D experiences on the web simple and enjoyable.

43 lines 2.44 kB
import { Class } from 'ts-browser-helpers'; import { CreateRenderTargetOptions, IRenderTarget } from './RenderTarget'; import { EventDispatcher, Vector2, WebGLRenderTarget, WebGLRenderTargetOptions } from 'three'; export declare abstract class RenderTargetManager<TE extends object = object> extends EventDispatcher<TE> { abstract isWebGL2: boolean; abstract readonly renderSize: Vector2; abstract renderScale: number; private _trackedTargets; private _trackedTempTargets; private _releasedTempTargets; readonly maxTempPerKey = 5; protected constructor(); trackTarget(target: IRenderTarget): void; removeTrackedTarget(target: IRenderTarget): void; createTarget<T extends IRenderTarget = IRenderTarget>({ sizeMultiplier, samples, colorSpace, type, format, stencilBuffer, depthBuffer, depthTexture, depthTextureType, depthTextureFormat, size, textureCount, ...op }?: CreateRenderTargetOptions, trackTarget?: boolean): T; /** * Dispose and remove tracked target. Release target in-case of temporary target. * To just dispose from the GPU memory and keep reference, call `target.dispose()` or `target.dispose(false)` * @param target * @param remove */ disposeTarget(target: IRenderTarget, remove?: boolean): void; getTempTarget<T extends IRenderTarget = IRenderTarget>(op?: CreateRenderTargetOptions): T; releaseTempTarget(target: IRenderTarget): void; createTargetCustom<T extends IRenderTarget>({ width, height, count, }: { width: number; height: number; count?: number; }, options?: WebGLRenderTargetOptions, clazz?: Class<T>): T; protected abstract _createTargetClass(clazz: Class<WebGLRenderTarget>, size: number[], options: WebGLRenderTargetOptions): IRenderTarget; dispose(clear?: boolean): void; /** * Resizes all tracked targets with a sizeMultiplier based on the current renderSize and renderScale. * This must be automatically called by the renderer on resize, and manually when sizeMultiplier of a target changes. */ resizeTrackedTargets(): void; resizeTrackedTarget(target: IRenderTarget): void; private _processNewTempTarget; private _setTargetOptions; private _setTargetTextureOptions; protected _processNewTarget(target: IRenderTarget, sizeMultiplier: number | undefined, trackTarget: boolean): IRenderTarget; } //# sourceMappingURL=RenderTargetManager.d.ts.map