@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
54 lines • 2.27 kB
TypeScript
import { TgdMat2, TgdMat3, TgdMat4, TgdVec2, TgdVec3, TgdVec4 } from "../math";
import { TgdProgramOptions } from "../types";
/**
* This class helps to manage a WebGLProgram.
* It will report meaninfull errors and help you with
* the uniforms.
*/
export declare class TgdProgram {
readonly gl: WebGL2RenderingContext;
private readonly options;
private static id;
/** Access to the real WebGLProgram object. */
readonly program: WebGLProgram;
readonly name: string;
readonly vert: string;
readonly frag: string;
private readonly shaders;
private readonly uniformsLocations;
constructor(gl: WebGL2RenderingContext, options: TgdProgramOptions);
toCode({ indent }?: Partial<{
indent: string;
}>): string;
hasAttribute(name: string): boolean;
getAttribLocation(name: string): number;
getUniformLocation(name: string): WebGLUniformLocation;
uniform1f(name: string, value: number): void;
uniform2f(name: string, x: number, y: number): void;
uniform2fv(name: string, vec2: TgdVec2): void;
uniform3f(name: string, x: number, y: number, z: number): void;
uniform3fv(name: string, vec3: TgdVec3): void;
uniform4f(name: string, x: number, y: number, z: number, w: number): void;
uniform4fv(name: string, vec4: TgdVec4): void;
uniform1i(name: string, value: number): void;
uniform2i(name: string, x: number, y: number): void;
uniform3i(name: string, x: number, y: number, z: number): void;
uniform4i(name: string, x: number, y: number, z: number, w: number): void;
uniform1ui(name: string, value: number): void;
uniform2ui(name: string, x: number, y: number): void;
uniform3ui(name: string, x: number, y: number, z: number): void;
uniform4ui(name: string, x: number, y: number, z: number, w: number): void;
uniformMatrix2fv(name: string, mat2: TgdMat2): void;
uniformMatrix3fv(name: string, mat3: TgdMat3): void;
uniformMatrix4fv(name: string, mat4: TgdMat4): void;
/**
* Use the current program.
* This is equivalent to `gl.useProgram(program)`.
*/
use(): void;
delete(): void;
debug(caption?: string): void;
private createShader;
private getUniformsLocations;
}
//# sourceMappingURL=program.d.ts.map