diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2012-03-28 02:05:23 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2012-03-28 02:05:23 -0400 |
commit | d0b7241d7fcf45f20e725500a37173a89041097b (patch) | |
tree | 82a538ad86d81e7daaa88a644debe5a184bde9aa /src/library_gl.js | |
parent | 29398e67039acc75f40c1797e1909b943b9a5852 (diff) |
Fix glGetIntegerv
For a couple values only.
Diffstat (limited to 'src/library_gl.js')
-rw-r--r-- | src/library_gl.js | 23 |
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'], |