I’m in process of creating a program which is heavy on graphics. I decided to support OpenGL, and since it’s spec if going through changes and enhancements, with many deprecated fixed/software functionality, I would like to know if it’s possible to write GL 2.1 rendering path that fully complies with GL 3.1 spec, for example, using VBO and shaders???
Yes, compliance is not the problem.
nVidias early 3.1 drivers are “good” with a few bugs, but that should be resolved soon.
In general 3.1 is just 2.1 with the old stuff removed, there’s not much more to it.
The 3.1 spec simply shows which of the 666 API and million paths to use. And adds some great features, that are in the same brief and strict spirit.
The “new” path only splits at one’s decision how to send constants and data for the shaders: UBOs, all types of textures, TBOs, feedback, R2VB with PBOs, instanced arrays, etc etc.
One compelling reason is that I want to use geometry shaders and other advanced stuff, at the same time want to support Windows XP mainly. DX10 requires Vista. DX9 does not support advanced features, so I resorted to GL, even with current driver stability, which so far I consider a hype about GL just to ruin its reputation.
Anyway good to know that using common functions between GL 2.1 and GL 3.1 solve the forward compatibility problem. So my app will be GL 3.1 ready.