import Shader, { FragmentShader } from './Shader'; import Material from './Material'; import { fullscreenQuadPassVertex } from './shader/source/compositor/vertex.glsl'; import Notifier from './core/Notifier'; import type { Color } from './core/type'; import type Renderer from './Renderer'; import type { RenderHooks } from './Renderer'; import type FrameBuffer from './FrameBuffer'; interface FullscreenQuadPassOpts { clearColor?: Color; clearDepth?: boolean; } declare class FullscreenQuadPass extends Notifier { material: Material>; clearColor?: Color | boolean; clearDepth?: boolean; beforeRender?: (gl: WebGL2RenderingContext) => void; afterRender?: (gl: WebGL2RenderingContext) => void; constructor(frag: T, opts?: Partial); render(renderer: Renderer, frameBuffer?: FrameBuffer): void; /** * Simply do quad rendering */ renderQuad(renderer: Renderer, frameBuffer?: FrameBuffer, prepare?: RenderHooks['prepare'], cleanup?: RenderHooks['cleanup']): void; /** * @param {clay.Renderer} renderer */ dispose(renderer: Renderer): void; } export default FullscreenQuadPass;