aboutsummaryrefslogtreecommitdiff
path: root/src/library_gl.js
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2012-03-28 02:05:23 -0400
committerBehdad Esfahbod <behdad@behdad.org>2012-03-28 02:05:23 -0400
commitd0b7241d7fcf45f20e725500a37173a89041097b (patch)
tree82a538ad86d81e7daaa88a644debe5a184bde9aa /src/library_gl.js
parent29398e67039acc75f40c1797e1909b943b9a5852 (diff)
Fix glGetIntegerv
For a couple values only.
Diffstat (limited to 'src/library_gl.js')
-rw-r--r--src/library_gl.js23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/library_gl.js b/src/library_gl.js
index dfab1fc2..dae0e9da 100644
--- a/src/library_gl.js
+++ b/src/library_gl.js
@@ -29,8 +29,14 @@ var LibraryGL = {
#if ASSERTIONS
assert(id < this.counter, "Invalid id " + id + " for the hashtable " + name);
#endif
- delete this.table[id];
- }
+ //TODO delete this.table[id];
+ },
+ lookup: function(v) {
+ for (var i = 1; i < this.counter; i++)
+ if (this.table[i] == v)
+ return i;
+ return 0;
+ },
};
}
return this._hashtables[name];
@@ -50,8 +56,19 @@ var LibraryGL = {
}
},
+ glGenIntegerv__deps: ['$GL'],
glGetIntegerv: function(name_, p) {
- {{{ makeSetValue('p', '0', 'Module.ctx.getParameter(name_)', 'i32') }}};
+ var v = Module.ctx.getParameter(name_);
+ if (name_ == Module.ctx.CURRENT_PROGRAM)
+ v = GL.hashtable("program").lookup(v);
+ else if (name_ == Module.ctx.VIEWPORT) {
+ {{{ makeSetValue('p', '0', 'v[0]', 'i32') }}};
+ {{{ makeSetValue('p', '4', 'v[1]', 'i32') }}};
+ {{{ makeSetValue('p', '8', 'v[2]', 'i32') }}};
+ {{{ makeSetValue('p', '12', 'v[3]', 'i32') }}};
+ }
+ // TODO complete
+ {{{ makeSetValue('p', '0', 'v', 'i32') }}};
},
glGenTextures__deps: ['$GL'],