return false; RenderBuffer depthBuf = fb.getDepthBuffer(); if (depthBuf != null){ Format depthFmt = depthBuf.getFormat();
public void deleteFrameBuffer(FrameBuffer fb) { if (fb.getId() != -1) { if (context.boundFBO == fb.getId()) { glfbo.glBindFramebufferEXT(GLFbo.GL_FRAMEBUFFER_EXT, 0); context.boundFBO = 0; } if (fb.getDepthBuffer() != null) { deleteRenderBuffer(fb, fb.getDepthBuffer()); } if (fb.getColorBuffer() != null) { deleteRenderBuffer(fb, fb.getColorBuffer()); } intBuf1.put(0, fb.getId()); glfbo.glDeleteFramebuffersEXT(intBuf1); fb.resetObject(); statistics.onDeleteFrameBuffer(); } }
public void updateFrameBuffer(FrameBuffer fb) { if (fb.getNumColorBuffers() == 0 && fb.getDepthBuffer() == null) { throw new IllegalArgumentException("The framebuffer: " + fb + "\nDoesn't have any color/depth buffers"); } int id = fb.getId(); if (id == -1) { glfbo.glGenFramebuffersEXT(intBuf1); id = intBuf1.get(0); fb.setId(id); objManager.registerObject(fb); statistics.onNewFrameBuffer(); } bindFrameBuffer(fb); FrameBuffer.RenderBuffer depthBuf = fb.getDepthBuffer(); if (depthBuf != null) { updateFrameBufferAttachment(fb, depthBuf); } for (int i = 0; i < fb.getNumColorBuffers(); i++) { FrameBuffer.RenderBuffer colorBuf = fb.getColorBuffer(i); updateFrameBufferAttachment(fb, colorBuf); } setReadDrawBuffers(fb); checkFrameBufferError(); fb.clearUpdateNeeded(); }
leftEyeDepth = (Texture2D) getLeftViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture(); rightEyeDepth = (Texture2D) getRightViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture();
leftEyeDepth = (Texture2D) getLeftViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture(); rightEyeDepth = (Texture2D)getRightViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture();
leftEyeDepth = (Texture2D) getLeftViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture(); rightEyeDepth = (Texture2D)getRightViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture();
public void postFrame(FrameBuffer out) { // renderer.readDepthBuffer(out, outBuf, width, height); if(out == null) { return; } RenderBuffer rb = out.getDepthBuffer(); if (rb == null) { throw new IllegalArgumentException("Specified framebuffer" + " does not have a depthbuffer"); } renderer.setFrameBuffer(out); // context is private: no access // if (context.boundReadBuf != rb.getSlot()) { // glReadBuffer(GL_COLOR_ATTACHMENT0_EXT + rb.getSlot()); // context.boundReadBuf = rb.getSlot(); // } outBuf.clear(); GL11.glReadPixels(0, 0, width, height, GL11.GL_DEPTH_COMPONENT, GL11.GL_FLOAT, outBuf); }
public void postFrame(FrameBuffer out) { // renderer.readDepthBuffer(out, outBuf, width, height); if(out == null) { return; } RenderBuffer rb = out.getDepthBuffer(); if (rb == null) { throw new IllegalArgumentException("Specified framebuffer" + " does not have a depthbuffer"); } renderer.setFrameBuffer(out); // context is private: no access // if (context.boundReadBuf != rb.getSlot()) { // glReadBuffer(GL_COLOR_ATTACHMENT0_EXT + rb.getSlot()); // context.boundReadBuf = rb.getSlot(); // } outBuf.clear(); GL11.glReadPixels(0, 0, width, height, GL11.GL_DEPTH_COMPONENT, GL11.GL_FLOAT, outBuf); }
return false; RenderBuffer depthBuf = fb.getDepthBuffer(); if (depthBuf != null){ Format depthFmt = depthBuf.getFormat();
private void printRealFrameBufferInfo(FrameBuffer fb) { boolean doubleBuffer = glGetBoolean(GL_DOUBLEBUFFER); String drawBuf = getTargetBufferName(glGetInteger(GL_DRAW_BUFFER)); String readBuf = getTargetBufferName(glGetInteger(GL_READ_BUFFER)); int fbId = fb.getId(); int curDrawBinding = glGetInteger(GL_DRAW_FRAMEBUFFER_BINDING_EXT); int curReadBinding = glGetInteger(GL_READ_FRAMEBUFFER_BINDING_EXT); System.out.println("=== OpenGL FBO State ==="); System.out.println("Context doublebuffered? " + doubleBuffer); System.out.println("FBO ID: " + fbId); System.out.println("Is proper? " + glIsFramebufferEXT(fbId)); System.out.println("Is bound to draw? " + (fbId == curDrawBinding)); System.out.println("Is bound to read? " + (fbId == curReadBinding)); System.out.println("Draw buffer: " + drawBuf); System.out.println("Read buffer: " + readBuf); if (context.boundFBO != fbId) { glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, fbId); context.boundFBO = fbId; } if (fb.getDepthBuffer() != null) { printRealRenderBufferInfo(fb, fb.getDepthBuffer(), "Depth"); } for (int i = 0; i < fb.getNumColorBuffers(); i++) { printRealRenderBufferInfo(fb, fb.getColorBuffer(i), "Color" + i); } }
public void deleteFrameBuffer(FrameBuffer fb) { if (fb.getId() != -1) { if (context.boundFBO == fb.getId()) { glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); context.boundFBO = 0; } if (fb.getDepthBuffer() != null) { deleteRenderBuffer(fb, fb.getDepthBuffer()); } if (fb.getColorBuffer() != null) { deleteRenderBuffer(fb, fb.getColorBuffer()); } intBuf1.put(0, fb.getId()); glDeleteFramebuffersEXT(intBuf1); fb.resetObject(); statistics.onDeleteFrameBuffer(); } }
RenderBuffer depthBuf = fb.getDepthBuffer();
public void deleteFrameBuffer(FrameBuffer fb) { if (fb.getId() != -1) { if (context.boundFBO == fb.getId()) { glfbo.glBindFramebufferEXT(GLFbo.GL_FRAMEBUFFER_EXT, 0); context.boundFBO = 0; } if (fb.getDepthBuffer() != null) { deleteRenderBuffer(fb, fb.getDepthBuffer()); } if (fb.getColorBuffer() != null) { deleteRenderBuffer(fb, fb.getColorBuffer()); } intBuf1.put(0, fb.getId()); glfbo.glDeleteFramebuffersEXT(intBuf1); fb.resetObject(); statistics.onDeleteFrameBuffer(); } }
public void updateFrameBuffer(FrameBuffer fb) { if (fb.getNumColorBuffers() == 0 && fb.getDepthBuffer() == null) { throw new IllegalArgumentException("The framebuffer: " + fb + "\nDoesn't have any color/depth buffers"); } int id = fb.getId(); if (id == -1) { glfbo.glGenFramebuffersEXT(intBuf1); id = intBuf1.get(0); fb.setId(id); objManager.registerObject(fb); statistics.onNewFrameBuffer(); } bindFrameBuffer(fb); FrameBuffer.RenderBuffer depthBuf = fb.getDepthBuffer(); if (depthBuf != null) { updateFrameBufferAttachment(fb, depthBuf); } for (int i = 0; i < fb.getNumColorBuffers(); i++) { FrameBuffer.RenderBuffer colorBuf = fb.getColorBuffer(i); updateFrameBufferAttachment(fb, colorBuf); } setReadDrawBuffers(fb); checkFrameBufferError(); fb.clearUpdateNeeded(); }
public void updateFrameBuffer(FrameBuffer fb) { int id = fb.getId(); if (id == -1) { // create FBO glGenFramebuffersEXT(intBuf1); id = intBuf1.get(0); fb.setId(id); objManager.registerObject(fb); statistics.onNewFrameBuffer(); } if (context.boundFBO != id) { glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, id); // binding an FBO automatically sets draw buf to GL_COLOR_ATTACHMENT0 context.boundDrawBuf = 0; context.boundFBO = id; } FrameBuffer.RenderBuffer depthBuf = fb.getDepthBuffer(); if (depthBuf != null) { updateFrameBufferAttachment(fb, depthBuf); } for (int i = 0; i < fb.getNumColorBuffers(); i++) { FrameBuffer.RenderBuffer colorBuf = fb.getColorBuffer(i); updateFrameBufferAttachment(fb, colorBuf); } fb.clearUpdateNeeded(); }
if (fb.getNumColorBuffers() == 0 && fb.getDepthBuffer() == null) { throw new IllegalArgumentException("The framebuffer: " + fb + "\nDoesn't have any color/depth buffers");