/** * PostProcessPipeline.ts * * Manages a chain of post-processing effects, handling render targets * and ping-pong buffering for efficient GPU processing. * * @module render/postprocess */ import { PostProcessEffectType, IEffectConfig, IPostProcessPipelineConfig, IFrameData, EffectParams } from './PostProcessTypes'; import { PostProcessEffect } from './PostProcessEffect'; /** * Default pipeline configuration */ export declare const DEFAULT_PIPELINE_CONFIG: IPostProcessPipelineConfig; /** * Post-processing pipeline manager */ export declare class PostProcessPipeline { private device; private config; private effects; private renderTargets; private pingPongTargets; private currentWidth; private currentHeight; private _initialized; private frameCount; constructor(config?: Partial); /** * Check if pipeline is initialized */ get initialized(): boolean; /** * Get current configuration */ getConfig(): IPostProcessPipelineConfig; /** * Get list of active effects */ getEffects(): PostProcessEffect[]; /** * Get effect by name */ getEffect(name: string): PostProcessEffect | undefined; /** * Get effect by type */ getEffectByType(type: PostProcessEffectType): PostProcessEffect | undefined; /** * Initialize the pipeline with GPU device */ initialize(device: GPUDevice, width: number, height: number): Promise; /** * Create or recreate render targets */ private createRenderTargets; /** * Dispose render targets */ private disposeRenderTargets; /** * Resize render targets */ resize(width: number, height: number): Promise; /** * Add an effect to the pipeline */ addEffect(config: IEffectConfig): Promise; /** * Remove an effect from the pipeline */ removeEffect(nameOrType: string | PostProcessEffectType): boolean; /** * Reorder effects */ reorderEffects(order: string[]): void; /** * Update effect parameters */ updateEffectParams(nameOrType: string | PostProcessEffectType, params: Partial): boolean; /** * Enable/disable an effect */ setEffectEnabled(nameOrType: string | PostProcessEffectType, enabled: boolean): boolean; /** * Execute the post-processing pipeline * * @param commandEncoder GPU command encoder * @param inputView Input texture view (scene render) * @param outputView Output texture view (swap chain) * @param frameData Frame timing and camera data */ render(commandEncoder: GPUCommandEncoder, inputView: GPUTextureView, outputView: GPUTextureView, frameData?: Partial): void; /** * Create temporary render target wrapper for output view */ private createTempTarget; /** * Copy texture using a blit pass */ private copyTexture; /** * Copy input view to a render target */ private copyToTarget; /** * Create a preset pipeline configuration */ static createPreset(preset: 'minimal' | 'standard' | 'cinematic' | 'performance'): Partial; /** * Dispose all resources */ dispose(): void; /** * Get performance statistics */ getStats(): { effectCount: number; enabledEffects: number; renderTargetCount: number; estimatedMemoryMB: number; }; } /** * Create a post-processing pipeline with common presets */ export declare function createPostProcessPipeline(preset?: 'minimal' | 'standard' | 'cinematic' | 'performance', customConfig?: Partial): PostProcessPipeline; /** * Quick helper to create a standard HDR pipeline */ export declare function createHDRPipeline(): PostProcessPipeline; /** * Quick helper to create a minimal LDR pipeline */ export declare function createLDRPipeline(): PostProcessPipeline; //# sourceMappingURL=PostProcessPipeline.d.ts.map