UNPKG

gl-chromakey

Version:

Chroma key a video/image/canvas element in real time using the GPU

28 lines (27 loc) 1.18 kB
type ShaderSetterFunction = ((value: number) => void) | ((x: number, y: number) => void) | ((x: number, y: number, z: number) => void) | ((x: number, y: number, z: number, w: number) => void) | ((mat: Float32Array) => void) | (() => void); interface ExtendedWebGLActiveInfo extends WebGLActiveInfo { set?: ShaderSetterFunction; get?: () => unknown; loc?: WebGLUniformLocation | null; glTexture?: number; } export default class ShaderProgram { private gl; private vertexShader; private fragmentShader; private program; uniforms: ExtendedWebGLActiveInfo[]; attributes: string[]; [key: string]: unknown; location_position: number; location_texCoord: number; set_source: (value: number) => void; set_alpha?: (value: number) => void; constructor(gl: WebGLRenderingContext, vertexShaderSource: string, fragmentShaderSource: string); compileShader(source: string, fragment: boolean): WebGLShader; makeShaderSetter(info: ExtendedWebGLActiveInfo, loc: WebGLUniformLocation): ShaderSetterFunction; makeShaderGetter(loc: WebGLUniformLocation): () => unknown; useProgram(): void; unload(): void; } export {};