Skip to content

UFX.gl: convenience functions for WebGL contexts

Christopher Night edited this page Jun 5, 2016 · 1 revision
// gl is a regular WebGLRenderingContext object with some additional methods
var gl = UFX.gl(canvas)

// prog is a regular WebGLProgram object with some additional methods and members
var prog = gl.buildProgram("vshadersource", "fshadersource")

// Same as buildProgram, but adds the prog object as gl.progs.progname
gl.addProgram("progname", "vshadersource", "fshadersource")


prog.use(): invokes gl.useProgram
prog.set(values): set uniforms and attributes

prog.set: uniform or attribute name -> setter

prog.uniforms: uniform name -> WebGLUniformLocation object
prog.uniforminfo: uniform name -> WebGLActiveInfo object
prog.setUniform: uniform name -> setter
prog.setUniformv: uniform name -> setter
prog.setUniformMatrix: uniform name -> setter

prog.attribs: attribute name -> attribute index
prog.attribinfo: attribute name -> WebGLActiveInfo object
prog.setAttrib: attribute name -> setter
prog.setAttribv: attribute name -> setter

If prog is an already-existing, regular WebGLProgram object, you can add the convenience methods to it by calling extendProgram:

gl.extendProgram(prog)


gl.buildTexture


gl.dumpTexture(texture, w, h)


gl.getTypeLetter(type) -> "i" or "f"
gl.getTypeSize(type) -> 1, 2, 3, or 4
gl.isMatrixType(type) -> false or true

gl.makeFloatBuffer(dataArray)