Issue #245 only use a depth buffer for offscreen rendering if depth testing is enabled

Change-Id: I58fefef03829acf32db8b7c91b15983ba482d1b9

Former-commit-id: b7b3a581e8291313833b20da308f5adc5a234f26
This commit is contained in:
Ben Steffensmeier 2012-02-08 16:29:02 -06:00
parent c74dae631e
commit 3f60daa9c7

View file

@ -188,10 +188,14 @@ public abstract class AbstractGLImage implements IImage {
public void usaAsFrameBuffer() throws VizException {
GL gl = theTarget.getGl();
if (fbo != -1 && rbuf != -1) {
if (fbo != -1) {
gl.glBindFramebufferEXT(GL.GL_FRAMEBUFFER_EXT, fbo);
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
if (rbuf != -1) {
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
} else {
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
}
return;
}
gl.glBindTexture(getTextureStorageType(), 0);
@ -201,6 +205,7 @@ public abstract class AbstractGLImage implements IImage {
fbo = ids[0];
gl.glBindFramebufferEXT(GL.GL_FRAMEBUFFER_EXT, fbo);
if (gl.glIsEnabled(GL.GL_DEPTH_TEST)) {
// Generate and bind a render buffer for the depth component
gl.glGenRenderbuffersEXT(1, ids, 0);
rbuf = ids[0];
@ -212,7 +217,7 @@ public abstract class AbstractGLImage implements IImage {
// Attach render buffer to depth of fbo
gl.glFramebufferRenderbufferEXT(GL.GL_FRAMEBUFFER_EXT,
GL.GL_DEPTH_ATTACHMENT_EXT, GL.GL_RENDERBUFFER_EXT, rbuf);
}
// Attach texture to color attachement on fbo
gl.glFramebufferTexture2DEXT(GL.GL_FRAMEBUFFER_EXT,
GL.GL_COLOR_ATTACHMENT0_EXT, getTextureStorageType(),