RESOLVED FIXED 31946
useProgram does not accept null
https://bugs.webkit.org/show_bug.cgi?id=31946
Summary useProgram does not accept null
Ben Vanik
Reported 2009-11-27 18:38:49 PST
Per the GL spec, glUseProgram can take 0 as an argument just like glBindTexture to indicate that the current program should be unbound. If you try this today in WebKit (or Chromium), however, you'll get an exception. The issue is that the check on useProgram and the code inside the Mac implementation of useProgram do not check for this case like bindTexture does. Spec: http://www.khronos.org/opengles/sdk/docs/man/glUseProgram.xml bindTexture is handled right in the two places that matter (the WebGLRenderingContext and the GraphicsContext3D implementation): WebGLRenderingContext::bindTexture: if (texture && texture->context() != this) GraphicsContext3D::bindTexture: ::glBindTexture(target, texture ? (GLuint) texture->object() : 0); useProgram is not handled right - the check at the top of it is copy pasted from other program-related calls, which don't allow null. WebGLRenderingContext::useProgram: if (!program || program->context() != this) GraphicsContext3D::useProgram: ::glUseProgram((GLuint) program->object()); So, trivial fix: WebGLRenderingContext::useProgram: if (program && program->context() != this) GraphicsContext3D::useProgram: ::glUseProgram(program ? (GLuint) program->object() : 0); Still figuring out how to attach patches and stuff, but it should be easy enough without the 2 line diff :)
Attachments
Zhenyao Mo
Comment 1 2010-06-28 10:47:19 PDT
The issue was fixed in https://bugs.webkit.org/show_bug.cgi?id=34508. Closing the bug.
Note You need to log in before you can comment on or make changes to this bug.