import type { ILayer } from '../../layer/ILayerService'; import type { IMultiPassRenderer, IPass, IPostProcessor } from '../IMultiPassRenderer'; /** * ported from Three.js EffectComposer * @example * const renderer = new MultiPassRenderer([ * new ClearPass(), * new RenderPass({ * models: [ * new Model(), * new Model(), * ], * }), * new CopyPass({ * renderToScreen: true, * }), * new TAAPass(), * ]); * renderer.render(); * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/apuvbf#dRM8W */ export default class MultiPassRenderer implements IMultiPassRenderer { private postProcessor; private passes; private layer; private renderFlag; private width; private height; constructor(postProcessor: IPostProcessor); setLayer(layer: ILayer): void; setRenderFlag(renderFlag: boolean): void; getRenderFlag(): boolean; getPostProcessor(): IPostProcessor; render(): Promise; resize(width: number, height: number): void; add(pass: IPass, config?: Partial): void; insert(pass: IPass, config: Partial, index: number): void; destroy(): void; }