@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
48 lines • 2.04 kB
TypeScript
import { TgdMat3, TgdMat4, 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 code;
/** Access to the real WebGLProgram object. */
readonly program: WebGLProgram;
private readonly shaders;
private readonly uniformsLocations;
constructor(gl: WebGL2RenderingContext, code: 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;
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;
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