Turns out the "problem" here is just an incorrect log error in emulation 
mode.  The behavior of the functions is still correct.

On Wednesday, November 19, 2014 at 5:35:32 PM UTC-5, jj wrote:
>
> 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] <javascript:>>:
>
>> 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.

Reply via email to