diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-04-03 21:01:28 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-04-03 21:01:28 -0700 |
commit | d8d7cc8e8a1f9571ad19a131c7dafbc499065cb4 (patch) | |
tree | 8b26e675420b4be8e13004c57e659ef858265c51 /src | |
parent | 775e50619c4a5ca1ac97d1861fa24014fbbe72b2 (diff) |
fix glGet stuff
Diffstat (limited to 'src')
-rw-r--r-- | src/library_gl.js | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index 8a24a345..414520e0 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -15,7 +15,15 @@ var LibraryGL = { uniforms: {}, uniformCounter: 1, shaders: {}, - shaderCounter: 1 + shaderCounter: 1, + + // Linear lookup in one of the tables (buffers, programs, etc.). TODO: consider using a weakmap to make this faster, if it matters + scan: function(table, object) { + for (var item in table) { + if (table[item] == object) return item; + } + return 0; + }, }, glGetString: function(name_) { @@ -53,15 +61,15 @@ var LibraryGL = { {{{ makeSetValue('p', 'i*4', 'result[i]', 'i32') }}}; } } else if (result instanceof WebGLBuffer) { - {{{ makeSetValue('p', '0', 'GL.buffers[result]', 'i32') }}}; + {{{ makeSetValue('p', '0', 'GL.scan(GL.buffers, result)', 'i32') }}}; } else if (result instanceof WebGLProgram) { - {{{ makeSetValue('p', '0', 'GL.programs[result]', 'i32') }}}; + {{{ makeSetValue('p', '0', 'GL.scan(GL.programs, result)', 'i32') }}}; } else if (result instanceof WebGLFramebuffer) { - {{{ makeSetValue('p', '0', 'GL.framebuffers[result]', 'i32') }}}; + {{{ makeSetValue('p', '0', 'GL.scan(GL.framebuffers, result)', 'i32') }}}; } else if (result instanceof WebGLRenderbuffer) { - {{{ makeSetValue('p', '0', 'GL.renderbuffers[result]', 'i32') }}}; + {{{ makeSetValue('p', '0', 'GL.scan(GL.renderbuffers, result)', 'i32') }}}; } else if (result instanceof WebGLTexture) { - {{{ makeSetValue('p', '0', 'GL.textures[result]', 'i32') }}}; + {{{ makeSetValue('p', '0', 'GL.scan(GL.textures, result)', 'i32') }}}; } else { throw 'Unknown object returned from WebGL getParameter'; } @@ -95,15 +103,15 @@ var LibraryGL = { {{{ makeSetValue('p', 'i*4', 'result[i]', 'float') }}}; } } else if (result instanceof WebGLBuffer) { - {{{ makeSetValue('p', '0', 'GL.buffers[result]', 'float') }}}; + {{{ makeSetValue('p', '0', 'GL.scan(GL.buffers, result)', 'float') }}}; } else if (result instanceof WebGLProgram) { - {{{ makeSetValue('p', '0', 'GL.programs[result]', 'float') }}}; + {{{ makeSetValue('p', '0', 'GL.scan(GL.programs, result)', 'float') }}}; } else if (result instanceof WebGLFramebuffer) { - {{{ makeSetValue('p', '0', 'GL.framebuffers[result]', 'float') }}}; + {{{ makeSetValue('p', '0', 'GL.scan(GL.framebuffers, result)', 'float') }}}; } else if (result instanceof WebGLRenderbuffer) { - {{{ makeSetValue('p', '0', 'gl.renderbuffers[result]', 'float') }}}; + {{{ makeSetValue('p', '0', 'GL.scan(GL.renderbuffers, result)', 'float') }}}; } else if (result instanceof WebGLTexture) { - {{{ makeSetValue('p', '0', 'gl.textures[result]', 'float') }}}; + {{{ makeSetValue('p', '0', 'GL.scan(GL.textures, result)', 'float') }}}; } else { throw 'Unknown object returned from WebGL getParameter'; } |