[Public WebGL] Specifying the behavior of bindXXX when passed a deleted resource
Fri Jun 14 15:33:25 PDT 2013
AFAICT the WebGL spec is currently silent on what happens when you bind a
In other words
var tex = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tex); // What does this do?
The conformance tests expect that to bind 0 [glBindTexture(gl.TEXTURE_2D,
0)] but the WebGL spec doesn't say that's what's supposed to happen.
We need to update the spec but I'm also curious if we should change the
behavior. Should that bind above generate INVALID_VALUE or should it stay
as is and bind 0?
The same is true of gl.useProgram. Calling useProgram on a deleted program
ends up calling glUseProgram(0) but that's not in the spec. In fact it's
specifically against the spec as the ES 2.0.25 spec, 2.10.1 says
Commands that accept shader or program object names will generate the error
INVALID_VALUE if the provided name is not the name of either a shader or
program object and INVALID_OPERATION if the provided name identiﬁes an
object that is not the expected type.
We either need to fix implementations and tests to match the ES spec or
update the WebGL spec to document the different behavior.
Should binding a deleted resource generate an error? My vote = yes.
Should useProgram follow the ES spec and generate an error? My vote = yes
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the public_webgl