Coming from Direct3D, I decided to make a simple 3D game a while back in OpenGL. The tutorials I used were (I believe) in OpenGL 1.0, using the immediate-mode fixed-function pipeline... glBegin(), glVertex..(), glEnd() etc. I'd like to remake the game using a more recent and applicable version of OpenGL, and I have a few questions I was hoping someone could help with.
From what I've read, it looks like OpenGL 3 'core profile' is the version I need. Is there any way for an application to request this version of the API specifically? Or will the driver provide everything it has, and the application should limit itself to only using 3.0 functions? If the latter case, how should an application check whether 3.0 is indeed supported?
On a related point, is it possible for an application to only use functions which are common to both 2.1 and 3?
I'm really looking for a way to support DX9-era hardware if possible, while using the most modern API I can.
Any advice appreciated.