I hate to double post but I think editing again would be worse at this point.

I got it to draw to the windowbuffer using:
glBindFramebufferEXT(EXTFramebufferObject.GL_FRAMEBUFFER_EXT, 0);
glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
and in LWJGL2.9 I got it to draw a line properly. In 3.x I got it to color the background properly but so far no line. I seem to be down to projection issues but I'm not sure why it works in 2.9 and not in 3. My projection looks exactly like this:
////////////////////////////////////////
// -- bind the framebuffer --
// configure perspective settings for flat 2d drawing to the given canvas.
glMatrixMode(GL_PROJECTION); // set projection first
glLoadIdentity(); // and reset it
// then set viewport second
if (window != null) {
glViewport(0, 0, window.getWidth(), window.getHeight());
}else{
glViewport(0, 0, image.width, image.height);
}
// then set ortho third
if (window != null) {
glOrtho(0, window.getWidth(), 0, window.getHeight(), -1.0, 1.0);
}else{
glOrtho(0, image.width, 0, image.height, -1.0, 1.0);
}
// finally switch to modelview
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
///////////////////////////////////////////
window.getWidth/Height returns the results of glfwGetFramebufferSize in 3.x and of Display.getWidth/Height in 2.9. I did a test to ensure that the values it was returning were the same, and they were (640x480 in my test). The 2.9 version uses a borderless window although that shouldn't make any difference given the fact that the framebuffers had identical size. I had issues where the graphics object would pick up an erroneous size (such as zero) for the window which stopped it from drawing properly, but even after fixing that I still got no line in 3.x. Is this possibly a bug?
Test source with 2.9 libs, showing line:
https://www.dropbox.com/s/wjrnykoqapzlg2d/ShineTest-LWJGL2.9.7z?dl=1Test source with 3.x libs, showing green background but no line:
https://www.dropbox.com/s/0e72n4tb8m9olzb/ShineTest-LWJGL3.7z?dl=1The only difference in the library used was the window class which had to wrap the different APIs. Everything else is identical.
Also, should I feel stupid that it took me nearly two weeks to get this far?
