Can you make one of the unit tests in the tests/ folder expose the problem? Then the problem and fix will become explicit, and we will know not to regress later.
2014-11-20 0:06 GMT+02:00 William Furr <[email protected]>: > I believe I have found a bug in the GLES 2 emulation code. > > When calling glGetVertexAttribiv (and friends) with GLES2 emulation > enabled, the client buffer for the given index is checked, and if enabled, > an error message is printed that the operation is not supported. > > I get this message even for VBO attribute arrays, because > in glEnableVertexAttribArray, the client buffer is always set to enabled > without checking if it's actually a client-side array or not. > > I think the fix is for glGetVertexAttribiv to check for the clientside > field instead of the enabled field, which is conditionally set in > glVertexAttribPointer. > > e.g. > > https://github.com/kripken/emscripten/blob/master/src/library_gl.js#L1505 > glGetVertexAttribiv: function(index, pname, params) { > #if FULL_ES2 > if (GL.currentContext.clientBuffers[index].enabled) { > Module.printErr("glGetVertexAttribiv on client-side array: not > supported, bad data returned"); > } > #endif > > and > > https://github.com/kripken/emscripten/blob/master/src/library_gl.js#L5632 > glEnableVertexAttribArray: function(index) { > #if FULL_ES2 > var cb = GL.currentContext.clientBuffers[index]; > #if ASSERTIONS > assert(cb, index); > #endif > cb.enabled = true; > #endif > > I'm happy to send in a pull request for this, but wanted to check with you > first to see if I am on the right track. I am new to Open GL programming. > > Thank you! > > -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
