aboutsummaryrefslogtreecommitdiff
path: root/src/library_gl.js
diff options
context:
space:
mode:
authorEhsan Akhgari <ehsan.akhgari@gmail.com>2012-01-22 18:59:20 -0500
committerEhsan Akhgari <ehsan.akhgari@gmail.com>2012-01-22 18:59:20 -0500
commit85c1652d8d9080f1d8c21ccbb4ae0a43eff42ad6 (patch)
treeda41bd41db82f172ffe8e22778e488c69d08022f /src/library_gl.js
parent735cb177e4e60fb1e1b186d2b86a4a971eb9923d (diff)
Make the uniform APIs use the hashtable
Diffstat (limited to 'src/library_gl.js')
-rw-r--r--src/library_gl.js23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/library_gl.js b/src/library_gl.js
index 61c11ee9..9780378b 100644
--- a/src/library_gl.js
+++ b/src/library_gl.js
@@ -109,94 +109,115 @@ var LibraryGL = {
Module.ctx.bufferData(target, buf, usage);
},
+ glBindAttribLocation_deps: ['$GL'],
glGetUniformLocation: function(program, name) {
name = Pointer_stringify(name);
- return Module.ctx.getUnifromLocation(program, name);
+ return GL.hashtable("uniform").add(
+ Module.ctx.getUniformLocation(GL.hashtable("program").get(program), name));
},
glUniform1f: function(Location, v0) {
+ Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform1f(Location, v0);
},
glUniform2f: function(Location, v0, v1) {
+ Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform2f(Location, v0, v1);
},
glUniform3f: function(Location, v0, v1, v2) {
+ Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform3f(Location, v0, v1, v2);
},
glUniform4f: function(Location, v0, v1, v2, v3) {
+ Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform4f(Location, v0, v1, v2, v3);
},
glUniform1i: function(Location, v0) {
+ Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform1i(Location, v0);
},
glUniform2i: function(Location, v0, v1) {
+ Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform2i(Location, v0, v1);
},
glUniform3i: function(Location, v0, v1, v2) {
+ Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform3i(Location, v0, v1, v2);
},
glUniform4i: function(Location, v0, v1, v2, v3) {
+ Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform4i(Location, v0, v1, v2, v3);
},
glUniform1fv: function(Location, count, value) {
+ Location = GL.hashtable("uniform").get(Location);
value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize
Module.ctx.uniform1fv(Location, value);
},
glUniform2fv: function(Location, count, value) {
+ Location = GL.hashtable("uniform").get(Location);
value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize
Module.ctx.uniform2fv(Location, value);
},
glUniform3fv: function(Location, count, value) {
+ Location = GL.hashtable("uniform").get(Location);
value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize
Module.ctx.uniform3fv(Location, value);
},
glUniform4fv: function(Location, count, value) {
+ Location = GL.hashtable("uniform").get(Location);
value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize
Module.ctx.uniform4fv(Location, value);
},
glUniform1fi: function(Location, count, value) {
+ Location = GL.hashtable("uniform").get(Location);
value = new Uint32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize
Module.ctx.uniform1fi(Location, value);
},
glUniform2fi: function(Location, count, value) {
+ Location = GL.hashtable("uniform").get(Location);
value = new Uint32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize
Module.ctx.uniform2fi(Location, value);
},
glUniform3fi: function(Location, count, value) {
+ Location = GL.hashtable("uniform").get(Location);
value = new Uint32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize
Module.ctx.uniform3fi(Location, value);
},
glUniform4fi: function(Location, count, value) {
+ Location = GL.hashtable("uniform").get(Location);
value = new Uint32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize
Module.ctx.uniform4fi(Location, value);
},
glUniformMatrix2fv: function(Location, count, transpose, value) {
+ Location = GL.hashtable("uniform").get(Location);
value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize
Module.ctx.uniformMatrix2fv(Location, transpose, value);
},
glUniformMatrix3fv: function(Location, count, transpose, value) {
+ Location = GL.hashtable("uniform").get(Location);
value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize
Module.ctx.uniformMatrix3fv(Location, transpose, value);
},
glUniformMatrix4fv: function(Location, count, transpose, value) {
+ Location = GL.hashtable("uniform").get(Location);
value = new Float32Array(IHEAP.slice(value, value + count*4)); // TODO: optimize
Module.ctx.uniformMatrix4fv(Location, transpose, value);
},