/** * attribute information to store * data for webgl attribute */ export declare class AttributeInfo { name: string; size: number; offset: number; stride: number; /** * create an attribute information * @param name * @param size * @param offset * @param stride */ constructor(name: string, size: number, offset?: number, stride?: number); } /** * the shader class - for managing shader */ export declare class Shader { private gl; /** * the program to user */ program: WebGLProgram; fragmentShader: WebGLShader; vertexShader: WebGLShader; /** * current texture unit * @type {number} */ textureUnit: number; readonly mvpMatrixUniform: WebGLUniformLocation; readonly timeUniform: WebGLUniformLocation; readonly enableWaterUniform: WebGLUniformLocation; readonly textureUniform: WebGLUniformLocation; readonly waterDisplacementUniform: WebGLUniformLocation; readonly waterColorUniform: WebGLUniformLocation; readonly opacityUniform: WebGLUniformLocation; readonly lightColorUniform: WebGLUniformLocation; readonly lightPositionUniform: WebGLUniformLocation; readonly fogStartUniform: WebGLUniformLocation; readonly fogRangeUniform: WebGLUniformLocation; readonly fogColorUniform: WebGLUniformLocation; readonly shadowMvpMatrixUniform: WebGLUniformLocation; readonly shadowMapUniform: WebGLUniformLocation; readonly lineWidthUniform: WebGLUniformLocation; readonly colorUniform: WebGLUniformLocation; readonly textureScaleUniform: WebGLUniformLocation; readonly useStrokePatternUniform: WebGLUniformLocation; readonly useIconUniform: WebGLUniformLocation; readonly radiusUniform: WebGLUniformLocation; readonly strokeColorUniform: WebGLUniformLocation; readonly outerRadiusUniform: WebGLUniformLocation; readonly innerRadiusUniform: WebGLUniformLocation; readonly modelMatrixUniform: WebGLUniformLocation; readonly cameraDirectionUniform: WebGLUniformLocation; readonly lowerLimitUniform: WebGLUniformLocation; readonly upperLimitUniform: WebGLUniformLocation; readonly skyColorUniform: WebGLUniformLocation; readonly texsizeUniform: WebGLUniformLocation; readonly pixelScaleUniform: WebGLUniformLocation; readonly gammaScaleUniform: WebGLUniformLocation; readonly isHaloUniform: WebGLUniformLocation; readonly textSizeUniform: WebGLUniformLocation; readonly useMaskTextureUniform: WebGLUniformLocation; readonly spriteInfoUniform: WebGLUniformLocation; readonly paddingUniform: WebGLUniformLocation; /** * dictionary that stores all attributes * @type {{}} */ attributes: { [key: string]: number; }; /** * create a shader with sources * @param gl * @param vertexSource * @param fragmentSource */ constructor(gl: WebGLRenderingContext, vertexSource: string, fragmentSource: string); /** * load all attributes of this shader */ loadAttributes(): void; /** * load a shader with source * @param type type of the shader | either VERTEX_SHADER or FRAGMENT_SHADER * @param source * @returns {WebGLShader} */ loadShader(type: number, source: string): WebGLShader; /** * Bind the shader to use */ bind(): void; /** * Reset texture unit */ resetTextureUnit(): void; /** * Set attributes * @param attributeInfos */ setAttributes(attributeInfos: AttributeInfo[]): void; setTexture(location: WebGLUniformLocation, textureId: WebGLTexture): void; /** * disable all attributes */ disableAttributes(): void; /** * destroy this shader to release memory */ destroy(): void; }