webgl: Don't forget to update the WebGL context's RB binding.

We need to track the RB in the DOM context for
getParameter(gl.RENDERBUFFER_BINDING), among others.
This commit is contained in:
Eric Anholt 2016-09-17 15:57:13 +01:00 committed by Glenn Watson
parent cc294fffcc
commit 2d66840145
2 changed files with 3 additions and 10 deletions

View file

@ -749,9 +749,11 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// case: Chromium currently unbinds, and Gecko silently // case: Chromium currently unbinds, and Gecko silently
// returns. The conformance tests don't cover this case. // returns. The conformance tests don't cover this case.
Some(renderbuffer) if !renderbuffer.is_deleted() => { Some(renderbuffer) if !renderbuffer.is_deleted() => {
renderbuffer.bind(target) self.bound_renderbuffer.set(Some(renderbuffer));
renderbuffer.bind(target);
} }
_ => { _ => {
self.bound_renderbuffer.set(None);
// Unbind the currently bound renderbuffer // Unbind the currently bound renderbuffer
self.ipc_renderer self.ipc_renderer
.send(CanvasMsg::WebGL(WebGLCommand::BindRenderbuffer(target, None))) .send(CanvasMsg::WebGL(WebGLCommand::BindRenderbuffer(target, None)))

View file

@ -48,9 +48,6 @@
[WebGL test #45: getError expected: NO_ERROR. Was INVALID_OPERATION : after evaluating: gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap)] [WebGL test #45: getError expected: NO_ERROR. Was INVALID_OPERATION : after evaluating: gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap)]
expected: FAIL expected: FAIL
[WebGL test #68: gl.getParameter(gl.RENDERBUFFER_BINDING) should be [object WebGLRenderbuffer\]. Was null.]
expected: FAIL
[WebGL test #69: gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo) threw exception TypeError: gl.framebufferRenderbuffer is not a function] [WebGL test #69: gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo) threw exception TypeError: gl.framebufferRenderbuffer is not a function]
expected: FAIL expected: FAIL
@ -66,12 +63,6 @@
[WebGL test #74: gl.isRenderbuffer(rbo) should be false. Threw exception TypeError: gl.isRenderbuffer is not a function] [WebGL test #74: gl.isRenderbuffer(rbo) should be false. Threw exception TypeError: gl.isRenderbuffer is not a function]
expected: FAIL expected: FAIL
[WebGL test #79: gl.getParameter(gl.RENDERBUFFER_BINDING) should be [object WebGLRenderbuffer\]. Was null.]
expected: FAIL
[WebGL test #81: gl.getParameter(gl.RENDERBUFFER_BINDING) should be [object WebGLRenderbuffer\]. Was null.]
expected: FAIL
[WebGL test #83: gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16) threw exception TypeError: gl.renderbufferStorage is not a function] [WebGL test #83: gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16) threw exception TypeError: gl.renderbufferStorage is not a function]
expected: FAIL expected: FAIL