Using a FrameBuffer object

I am trying to speed up rendering time by taking all text rendered, storing them in frame buffer objects, and then rendering those.

Problems:

  • I don’t 100% know if that is even a possible solution
  • I have never used framebuffers before
  • I end up generally rendering everything with immediate mode, so I don’t have any experience with modern OpenGL rendering

Here is the “FrameBuffer” class I have so far. It’s very small and all it does (in theory) is bind something to the frame buffer object.

public class FrameBuffer {

	private int framebuffer = -1;
	
	public FrameBuffer() {
		boolean FBOEnabled = GLContext.getCapabilities().GL_EXT_framebuffer_object;
		if (!FBOEnabled) {
			throw new RuntimeException("FrameBuffer objects must be enabled!");
		}
		framebuffer = GL30.glGenFramebuffers();
	}
	
	public void drawBuffer(Renderable renderable) {
		if (framebuffer == -1) {
			throw new RuntimeException("Invalid FrameBuffer object");
		}
               // Is this correct?
		GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, framebuffer);
		renderable.render();
		GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0);
	}
	
	public void renderBuffer() {
		if (framebuffer == -1) {
			throw new RuntimeException("Invalid FrameBuffer object");
		}
	        // I don't even know how to approach rendering the frame buffer
	}
	
}

Renderable is just an interface with a method render().

Any help would be appreciated :slight_smile:

CopyableCougar4