If FrameBufferObject is going to be exposed by the CanvasRenderer it needs to be implementation agnostic. Extract an interface and rename this to LwjglFrameBufferObject?