aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-04-24 13:17:40 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-04-24 13:17:40 -0700
commitf29bbc87283dab6d46bae79152836bc31118af11 (patch)
tree8da5c9348330629cd43e91cab576d56ddbe6d912
parent25893baacf19a15a944ad57721a07b04380d733b (diff)
save bound buffers when doing gl emulation
-rw-r--r--src/library_gl.js16
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);
},