@needle-tools/engine
Version:
Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.
43 lines (42 loc) • 1.68 kB
TypeScript
import type { Effect, EffectComposer } from "postprocessing";
import { Context } from "../../engine/engine_setup.js";
import { PostProcessingEffect } from "./PostProcessingEffect.js";
/**
* PostProcessingHandler is responsible for applying post processing effects to the scene. It is internally used by the {@link Volume} component
*/
export declare class PostProcessingHandler {
private _composer;
private _lastVolumeComponents?;
private readonly _effects;
/**
* Returns true if a specific effect is currently active in the post processing stack.
*/
getEffectIsActive(effect: Effect): boolean;
get isActive(): boolean;
get composer(): EffectComposer | null;
private _isActive;
private readonly context;
constructor(context: Context);
apply(components: PostProcessingEffect[]): Promise<void>;
unapply(dispose?: boolean): void;
dispose(): void;
private onApply;
private _anyPassHasDepth;
private _anyPassHasNormal;
private _hasSmaaEffect;
get anyPassHasDepth(): boolean;
get anyPassHasNormal(): boolean;
get hasSmaaEffect(): boolean;
private _customInputBuffer;
private _customInputBufferId;
private _multisampling;
set multisampling(value: number);
get multisampling(): number;
/** Build composer passes */
private applyEffects;
/** Should be called before `composer.addPass()` to create an effect pass with all previously collected effects that can be merged up to that point */
private createPassForMergeableEffects;
private _menuEntry;
private _passIndices;
private _onCreateEffectsDebug;
}