diff options
author | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-01-22 16:29:17 -0500 |
---|---|---|
committer | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-01-22 16:33:38 -0500 |
commit | 6db298e3ddebf0e0aad05fd70e9e56baf8c0bfac (patch) | |
tree | 16289375855907c05013e098e96157d49ddc62c8 /src/library_gl.js | |
parent | 72c65ebbe62f1b84e0f3a6c0605d19e4b97139f4 (diff) |
Implement the GL uniform APIs
Diffstat (limited to 'src/library_gl.js')
-rw-r--r-- | src/library_gl.js | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index 3b948bf1..055f5782 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -94,6 +94,98 @@ var LibraryGL = { Module.ctx.bufferData(target, buf, usage); }, + glGetUniformLocation: function(program, name) { + name = Pointer_stringify(name); + return Module.ctx.getUnifromLocation(program, name); + }, + + glUniform1f: function(Location, v0) { + Module.ctx.uniform1f(Location, v0); + }, + + glUniform2f: function(Location, v0, v1) { + Module.ctx.uniform2f(Location, v0, v1); + }, + + glUniform3f: function(Location, v0, v1, v2) { + Module.ctx.uniform3f(Location, v0, v1, v2); + }, + + glUniform4f: function(Location, v0, v1, v2, v3) { + Module.ctx.uniform4f(Location, v0, v1, v2, v3); + }, + + glUniform1i: function(Location, v0) { + Module.ctx.uniform1i(Location, v0); + }, + + glUniform2i: function(Location, v0, v1) { + Module.ctx.uniform2i(Location, v0, v1); + }, + + glUniform3i: function(Location, v0, v1, v2) { + Module.ctx.uniform3i(Location, v0, v1, v2); + }, + + glUniform4i: function(Location, v0, v1, v2, v3) { + Module.ctx.uniform4i(Location, v0, v1, v2, v3); + }, + + glUniform1fv: function(Location, count, value) { + value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize + Module.ctx.uniform1fv(Location, value); + }, + + glUniform2fv: function(Location, count, value) { + value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize + Module.ctx.uniform2fv(Location, value); + }, + + glUniform3fv: function(Location, count, value) { + value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize + Module.ctx.uniform3fv(Location, value); + }, + + glUniform4fv: function(Location, count, value) { + value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize + Module.ctx.uniform4fv(Location, value); + }, + + glUniform1fi: function(Location, count, value) { + value = new Uint32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize + Module.ctx.uniform1fi(Location, value); + }, + + glUniform2fi: function(Location, count, value) { + value = new Uint32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize + Module.ctx.uniform2fi(Location, value); + }, + + glUniform3fi: function(Location, count, value) { + value = new Uint32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize + Module.ctx.uniform3fi(Location, value); + }, + + glUniform4fi: function(Location, count, value) { + value = new Uint32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize + Module.ctx.uniform4fi(Location, value); + }, + + glUniformMatrix2fv: function(Location, count, transpose, value) { + value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize + Module.ctx.uniformMatrix2fv(Location, transpose, value); + }, + + glUniformMatrix3fv: function(Location, count, transpose, value) { + value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize + Module.ctx.uniformMatrix3fv(Location, transpose, value); + }, + + glUniformMatrix4fv: function(Location, count, transpose, value) { + value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize + Module.ctx.uniformMatrix4fv(Location, transpose, value); + }, + glBindBuffer: function(target, buffer) { Module.ctx.bindBuffer(target, GL.buffers[buffer]); }, |