diff options
author | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-01-22 18:59:20 -0500 |
---|---|---|
committer | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-01-22 18:59:20 -0500 |
commit | 85c1652d8d9080f1d8c21ccbb4ae0a43eff42ad6 (patch) | |
tree | da41bd41db82f172ffe8e22778e488c69d08022f /src/library_gl.js | |
parent | 735cb177e4e60fb1e1b186d2b86a4a971eb9923d (diff) |
Make the uniform APIs use the hashtable
Diffstat (limited to 'src/library_gl.js')
-rw-r--r-- | src/library_gl.js | 23 |
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); }, |