import type { Pass } from "three/examples/jsm/postprocessing/EffectComposer"; import { Component } from "../../hierarchy_object/Component"; import type { IReadonlyGameScreen } from "../../render/IReadonlyGameScreen"; export declare class WebGLGlobalPostProcessVolume extends Component { private _renderPass; private _effectComposer; private _willAddRenderPass; private _reInitializeWhenCameraChanged; private _reinitializeWhenScreenSizeChanged; private _passes; private _initializer; private _disposer; private readonly onCameraChanged; private readonly onScreenResize; onEnable(): void; onDisable(): void; private removeAndDisposePasses; private initializeEffectComposer; /** * set initializer for effect composer. this callback will be called multiple times when switching camera. or when screen size is changed. * * i recommend you make this callback as pure function. * @param initializer its return value is tuple of passes and disposer. you must dispose passes in disposer. */ initializer(initializer: (scene: THREE.Scene, camera: THREE.Camera, screen: IReadonlyGameScreen) => readonly [readonly Pass[], (() => void)?]): void; /** * if true, render pass will be added to effect composer. * this value is only available before onEnable method is called. */ get willAddRenderPass(): boolean; /** * if true, render pass will be added to effect composer. * this value is only available before onEnable method is called. */ set willAddRenderPass(value: boolean); /** * if true, effect composer will be reinitialized when current camera is changed. */ get reInitializeWhenCameraChanged(): boolean; /** * if true, effect composer will be reinitialized when current camera is changed. */ set reInitializeWhenCameraChanged(value: boolean); /** * if true, effect composer will be reinitialized when screen size is changed. */ get reinitializeWhenScreenSizeChanged(): boolean; /** * if true, effect composer will be reinitialized when screen size is changed. */ set reinitializeWhenScreenSizeChanged(value: boolean); }