It looks like it was WebKit checkin #51348 that made the change – the message says:
Change get... calls to latest spec
[https://bugs.webkit.org/show_bug.cgi?id=30091](https://bugs.webkit.org/show_bug.cgi?id=30091)
Removed old versions of get calls on WebGLRenderingContext and
added new ones per spec returning "any". New code simplifies
GraphicsContext3D and fixes previously unimplemented routines.
Added custom JS and V8 bindings. Added exhaustive test case
exercising all new code paths. Updated preexisting test cases for
new APIs. Fixed preexisting bugs in WebKit's and Chrome's WebGL
implementations.
Ran WebGL layout tests in WebKit (clean) and Chrome (couple of
preexisting known failures) and manual WebGL tests in both
browsers.
It’s a huge change, but the relevant bits (I think) are the ones in WebCore/html/canvas/WebGLRenderingContext.cpp and its associated header, and as far as I can make out from the diffs, they are:
[ul]
[li]A few bits of improved error handling[/dhgt0vrt][/li][li]getBoolean, getBooleanv, getFloat, getFloatv, getInteger, getIntegerv merged to getParameter[/dhgt0vrt][/li][li]getBufferParameteri, getBufferParameteriv merged to getBufferParameter[/dhgt0vrt][/li][li]getFramebufferAttachmentParameteri, getFramebufferAttachmentParameteriv merged to getFramebufferAttachmentParameter[/dhgt0vrt][/li][li]getProgrami, getProgramiv merged to getProgramParameter[/dhgt0vrt][/li][li]getRenderbufferParameteri, getRenderbufferParameteriv merged to getRenderbufferParameter[/dhgt0vrt][/li][li]getShaderi, getShaderiv merged to getShaderParameter[/dhgt0vrt][/li][li]getTexParameterf, getTexParameterfv, getTexParameteri, getTexParameteriv merged to getTexParameter[/dhgt0vrt][/li][li]getUniformf, getUniformfv, getUniformi, getUniformiv merged to getUniform[/dhgt0vrt][/li][li]getVertexAttribf, getVertexAttribfv, getVertexAttribi, getVertexAttribiv merged to getVertexAttrib[/dhgt0vrt][/ul][/li]
I think I prefer the new names; they seem more appropriate for a dynamic language like JavaScript, while the older ones were much better designed for the statically-typed C/C++. Of course, this does mean that WebGL is becoming less and less of just a set of JavaScript bindings for OpenGL ES 2.0, but that may be a good thing.
Does anyone (Ilmari?) know where the equivalent file to WebGLRenderingContext.cpp, defining the public interface for the WebGL context, exists in the Firefox source tree? I did have a link to an IDL file that seemed to perform the same function, but I’ve lost it. It’d be great if I could put together a compatibility patch to put at the start of my lessons (and for other people to use) that would allow us to use the new API while retaining Firefox compatibility, but that’ll be tricky if the untyped get… methods don’t all exist there. (Of course, I could just try them and see if they work, but it would be nice to see the source