diff options
Diffstat (limited to 'src')
-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]); }, |