@luma.gl/engine
Version:
3D Engine Components for luma.gl
61 lines • 2.33 kB
TypeScript
import { Device, RenderPass, Texture } from '@luma.gl/core';
import type { ShaderPass } from '@luma.gl/shadertools';
import { ShaderInputs } from "../shader-inputs.js";
import { DynamicTexture } from "../dynamic-texture/dynamic-texture.js";
import { ClipSpace } from "../models/clip-space.js";
import { SwapFramebuffers } from "../compute/swap.js";
import { BackgroundTextureModel } from "../models/billboard-texture-model.js";
type ShaderSubPass = NonNullable<ShaderPass['passes']>[0];
/** Props for ShaderPassRenderer */
export type ShaderPassRendererProps = {
/** List of ShaderPasses to apply to the sourceTexture */
shaderPasses: ShaderPass[];
/** Optional typed ShaderInputs object for setting uniforms */
shaderInputs?: ShaderInputs;
};
/** A pass that renders a given texture into screen space */
export declare class ShaderPassRenderer {
device: Device;
shaderInputs: ShaderInputs;
passRenderers: PassRenderer[];
swapFramebuffers: SwapFramebuffers;
textureModel: BackgroundTextureModel;
constructor(device: Device, props: ShaderPassRendererProps);
/** Destroys resources created by this ShaderPassRenderer */
destroy(): void;
resize(size?: [width: number, height: number]): void;
renderToScreen(options: {
sourceTexture: DynamicTexture;
uniforms?: any;
bindings?: any;
}): boolean;
/** Runs the shaderPasses in sequence on the sourceTexture and returns a texture with the results.
* @returns null if the the sourceTexture has not yet been loaded
*/
renderToTexture(options: {
sourceTexture: DynamicTexture;
uniforms?: any;
bindings?: any;
}): Texture | null;
}
/** renders one ShaderPass */
declare class PassRenderer {
shaderPass: ShaderPass;
subPassRenderers: SubPassRenderer[];
constructor(device: Device, shaderPass: ShaderPass, props?: {});
destroy(): void;
}
/** Renders one subpass of a ShaderPass */
declare class SubPassRenderer {
model: ClipSpace;
shaderPass: ShaderPass;
subPass: ShaderSubPass;
constructor(device: Device, shaderPass: ShaderPass, subPass: ShaderSubPass);
destroy(): void;
render(options: {
renderPass: RenderPass;
bindings: any;
}): void;
}
export {};
//# sourceMappingURL=shader-pass-renderer.d.ts.map