import { Device } from './Device'; import { ShaderPass, ShaderPassOptions } from './ShaderPass'; /** * Constructor options for {@link ShaderTechnique} * * @public */ export interface ShaderTechniqueOptions { /** * The identifying name of this technique */ name?: string; /** * Arbitrary meta data or info about the shader technique */ meta?: { [key: string]: any; }; /** * Collection of passes of this technique */ passes: Array; } /** * Defines a sequence of {@link ShaderPass}es * * @public */ export declare class ShaderTechnique { /** * A symbol identifying the `ShaderTechniqueOptions` type. */ static OptionsSymbol: symbol; /** * The graphics device */ readonly device: Device; /** * The user defined name of this technique */ name: string; /** * Collection of passes of this technique */ readonly passes: ReadonlyArray; /** * Arbitrary meta data or info about the shader technique */ readonly meta: { [key: string]: any; }; private passesByName; constructor(device: Device, options: ShaderTechniqueOptions); /** * Gets a {@link ShaderPass} by name or index */ pass(passIdentifier: string | number): ShaderPass; /** * Creates a clone of this technique * * @remarks * Clones each underlying shader pass and creates a new shader technique */ clone(): ShaderTechnique; } //# sourceMappingURL=ShaderTechnique.d.ts.map