aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-04-03 21:01:28 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-04-03 21:01:28 -0700
commitd8d7cc8e8a1f9571ad19a131c7dafbc499065cb4 (patch)
tree8b26e675420b4be8e13004c57e659ef858265c51
parent775e50619c4a5ca1ac97d1861fa24014fbbe72b2 (diff)
fix glGet stuff
-rw-r--r--src/library_gl.js30
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';
}