aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2014-12-04 17:01:27 +0000
committerBen Murdoch <benm@google.com>2014-12-04 17:01:27 +0000
commit8383c494222860427b065344d9140170e13cd261 (patch)
tree8d94cddf9541f4c0dd05d9fb7a9e5a9d161e6499
parent074b357d75d77e9de5d9d99efef007c8e9b11252 (diff)
parent019fa9340e580e5836a9b9dc7cede4766cd090df (diff)
downloadangle-8383c494222860427b065344d9140170e13cd261.tar.gz
Merge third_party/angle from https://chromium.googlesource.com/angle/angle.git at 019fa9340e580e5836a9b9dc7cede4766cd090df
This commit was generated by merge_from_chromium.py. Change-Id: Ifbca8a77aaac809cb2a44502a6e78dcdc092a04c
-rw-r--r--src/libGLESv2/Framebuffer.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/libGLESv2/Framebuffer.cpp b/src/libGLESv2/Framebuffer.cpp
index 9cd9e25c..74fdd68a 100644
--- a/src/libGLESv2/Framebuffer.cpp
+++ b/src/libGLESv2/Framebuffer.cpp
@@ -644,12 +644,23 @@ DefaultFramebuffer::DefaultFramebuffer(rx::Renderer *renderer, Colorbuffer *colo
Renderbuffer *colorRenderbuffer = new Renderbuffer(0, colorbuffer);
mColorbuffers[0] = new RenderbufferAttachment(GL_BACK, colorRenderbuffer);
- Renderbuffer *depthStencilBuffer = new Renderbuffer(0, depthStencil);
+ GLenum depthStencilActualFormat = depthStencil->getActualFormat();
+ const gl::InternalFormat &depthStencilFormatInfo = GetInternalFormatInfo(depthStencilActualFormat);
- // Make a new attachment objects to ensure we do not double-delete
- // See angle issue 686
- mDepthbuffer = (depthStencilBuffer->getDepthSize() != 0 ? new RenderbufferAttachment(GL_DEPTH_ATTACHMENT, depthStencilBuffer) : NULL);
- mStencilbuffer = (depthStencilBuffer->getStencilSize() != 0 ? new RenderbufferAttachment(GL_STENCIL_ATTACHMENT, depthStencilBuffer) : NULL);
+ if (depthStencilFormatInfo.depthBits != 0 || depthStencilFormatInfo.stencilBits != 0)
+ {
+ Renderbuffer *depthStencilBuffer = new Renderbuffer(0, depthStencil);
+
+ // Make a new attachment objects to ensure we do not double-delete
+ // See angle issue 686
+ mDepthbuffer = (depthStencilFormatInfo.depthBits != 0 ? new RenderbufferAttachment(GL_DEPTH_ATTACHMENT, depthStencilBuffer) : NULL);
+ mStencilbuffer = (depthStencilFormatInfo.stencilBits != 0 ? new RenderbufferAttachment(GL_STENCIL_ATTACHMENT, depthStencilBuffer) : NULL);
+ }
+ else
+ {
+ // This method transfers ownership, so delete the unused storage if we don't keep it.
+ SafeDelete(depthStencil);
+ }
mDrawBufferStates[0] = GL_BACK;
mReadBufferState = GL_BACK;