This is beautifully documented, but I would prefer to remove this and just use `WebGLRenderingContext` directly since this is so low-level.  No one outside of the renderer is going to use this.