aboutsummaryrefslogtreecommitdiff
path: root/src/library_gl.js
diff options
context:
space:
mode:
authorEhsan Akhgari <ehsan.akhgari@gmail.com>2012-01-22 16:29:17 -0500
committerEhsan Akhgari <ehsan.akhgari@gmail.com>2012-01-22 16:33:38 -0500
commit6db298e3ddebf0e0aad05fd70e9e56baf8c0bfac (patch)
tree16289375855907c05013e098e96157d49ddc62c8 /src/library_gl.js
parent72c65ebbe62f1b84e0f3a6c0605d19e4b97139f4 (diff)
Implement the GL uniform APIs
Diffstat (limited to 'src/library_gl.js')
-rw-r--r--src/library_gl.js92
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]);
},