import { Device } from './Device'; import { ShaderProgram, ShaderProgramOptions, ShaderUniformValue } from './resources'; import { BlendStateParams, CullStateParams, DepthStateParams, OffsetStateParams, StencilStateParams } from './states'; /** * Constructor options for {@link ShaderPass} * * @public */ export interface ShaderPassOptions { /** * The name of the shader pass */ name?: string; /** * Arbitrary meta data or info about the shader pass */ meta?: { [key: string]: any; }; /** * The shader program or constructor options */ program: ShaderProgram | ShaderProgramOptions; /** * The cull state to be used for this shader pass */ cullState?: string | CullStateParams; /** * The blend state to be used for this shader pass */ blendState?: string | BlendStateParams; /** * The depth state to be used for this shader pass */ depthState?: string | DepthStateParams; /** * The offset state to be used for this shader pass */ offsetState?: string | OffsetStateParams; /** * The stencil state to be used for this shader pass */ stencilState?: string | StencilStateParams; } /** * Defines {@link Device} states which should be used with a specific {@link ShaderProgram} * * @public * */ export declare class ShaderPass { /** * A symbol identifying the `ShaderPassOptions` type. */ static OptionsSymbol: symbol; /** * The graphics device */ readonly device: Device; /** * The name of the shader pass */ readonly name: string; /** * Arbitrary meta data or info about the shader pass */ readonly meta: { [key: string]: any; }; /** * The shader program to be activated on `commit` */ readonly program: ShaderProgram; /** * The cull state to be enabled on `commit` */ readonly cullState: CullStateParams; /** * The blend state to be enabled on `commit` */ readonly blendState: BlendStateParams; /** * The depth state to be enabled on `commit` */ readonly depthState: DepthStateParams; /** * The offset state to be enabled on `commit` */ readonly offsetState: OffsetStateParams; /** * The stencil state to be enabled on `commit` */ readonly stencilState: StencilStateParams; constructor(device: Device, options: ShaderPassOptions); /** * Prepares the graphics device state for this shader pass and sets the given uniform parameters */ commit(parameters?: { [key: string]: ShaderUniformValue; }): this; /** * Creates a clone of this shader pass * * @remarks * This will also clone the underlying program */ clone(): ShaderPass; } //# sourceMappingURL=ShaderPass.d.ts.map