import { Buffer, ShaderProgram, ShaderProgramOptions, ShaderUniform } from '../../resources'; import { ShaderObjectInfo } from '../../ShaderInspector'; import { DeviceGL } from '../DeviceGL'; import { ShaderGL } from './ShaderGL'; /** * A wrapper class around {@link https://developer.mozilla.org/en-US/docs/Web/API/WebGLProgram | WebGLProgram} * * @public * @remarks * Combines a vertex shader and a fragment shader into a shader program. * * On creation the shader source code is inspected for */ export declare class ShaderProgramGL extends ShaderProgram { /** * The graphics device */ readonly device: DeviceGL; /** * The vertex shader */ readonly vertexShader: ShaderGL; /** * The fragment shader */ readonly fragmentShader: ShaderGL; /** * The web gl program handle */ readonly handle: WebGLProgram; /** * A map of shader attributes */ readonly inputs: Map; /** * Collection of all detected attribute locations */ readonly inputLocations: number[]; /** * A map of all shader uniforms */ readonly uniforms: ReadonlyMap; /** * Whether the program is successfully linked */ linked: boolean; /** * The info log that is generated after linking the program */ info: string; /** * Collection of all attached shaders. Usually contains a single vertex and a single fragment shader */ protected readonly attached: ReadonlyArray; constructor(device: DeviceGL, options?: ShaderProgramOptions); create(): this; /** * Releases the program handle */ destroy(): this; /** * Sets this program as the current program on the graphics device */ bind(): this; /** * Attaches all shaders */ private attach; /** * Detaches all shaders */ private detach; /** * */ private assignInputs; /** * */ private assignUniforms; /** * */ link(): this; bindAttribPointerAndLocation(vBuffer: Buffer | Buffer[]): void; } //# sourceMappingURL=ShaderProgramGL.d.ts.map