Commit ed54e5db by Gregoire Payen de La Garanderie Committed by Jamie Madill

Fix framebuffer zero used after being destroyed in Context destructor.

BUG=angleproject:950 Change-Id: I06e9e6ccf92ee8ca0b1de98cc48ef68a85107214 Reviewed-on: https://chromium-review.googlesource.com/260573Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Tested-by: 's avatarGregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
parent e79904c3
......@@ -133,7 +133,8 @@ Context::~Context()
while (!mFramebufferMap.empty())
{
deleteFramebuffer(mFramebufferMap.begin()->first);
// Delete the framebuffer in reverse order to destroy the framebuffer zero last.
deleteFramebuffer(mFramebufferMap.rbegin()->first);
}
while (!mFenceNVMap.empty())
......@@ -1346,12 +1347,12 @@ void Context::detachFramebuffer(GLuint framebuffer)
// If a framebuffer that is currently bound to the target FRAMEBUFFER is deleted, it is as though
// BindFramebuffer had been executed with the target of FRAMEBUFFER and framebuffer of zero.
if (mState.removeReadFramebufferBinding(framebuffer))
if (mState.removeReadFramebufferBinding(framebuffer) && framebuffer != 0)
{
bindReadFramebuffer(0);
}
if (mState.removeDrawFramebufferBinding(framebuffer))
if (mState.removeDrawFramebufferBinding(framebuffer) && framebuffer != 0)
{
bindDrawFramebuffer(0);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment