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
CopyableCougar4