diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-04-24 13:17:40 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-04-24 13:17:40 -0700 |
commit | f29bbc87283dab6d46bae79152836bc31118af11 (patch) | |
tree | 8da5c9348330629cd43e91cab576d56ddbe6d912 | |
parent | 25893baacf19a15a944ad57721a07b04380d733b (diff) |
save bound buffers when doing gl emulation
-rw-r--r-- | src/library_gl.js | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index 29e9687c..fa9c0f7f 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -1034,6 +1034,16 @@ var LibraryGL = { glUseProgram(program); } + var glBindBuffer = _glBindBuffer; + _glBindBuffer = function(target, buffer) { + glBindBuffer(target, buffer); + if (target == Module.ctx.ARRAY_BUFFER) { + GL.currArrayBuffer = buffer; + } else if (target == Module.ctx.ELEMENT_ARRAY_BUFFER) { + GL.currElementArrayBuffer = buffer; + } + }; + var glGetFloatv = _glGetFloatv; _glGetFloatv = function(pname, params) { if (pname == 0x0BA6) { // GL_MODELVIEW_MATRIX @@ -1518,13 +1528,13 @@ var LibraryGL = { _glEnableClientState(cap, 1); }, - glTexCoordPointer: function(size, type, stride, pointer) { - GL.immediate.setClientAttribute('T' + GL.immediate.clientActiveTexture, size, type, stride, pointer); - }, glVertexPointer__deps: ['$GLEmulation'], // if any pointers are used, glVertexPointer must be, and if it is, then we need emulation glVertexPointer: function(size, type, stride, pointer) { GL.immediate.setClientAttribute('V', size, type, stride, pointer); }, + glTexCoordPointer: function(size, type, stride, pointer) { + GL.immediate.setClientAttribute('T' + GL.immediate.clientActiveTexture, size, type, stride, pointer); + }, glNormalPointer: function(size, type, stride, pointer) { GL.immediate.setClientAttribute('N', size, type, stride, pointer); }, |