title: OpenGL 4.2 headers, Mesa 3D, extensions - how does it fit together?
body: <p>Now, I've had an extremely hard time finding information about OpenGL headers and extensions and how to access the latest features. OpenGL.org doesn't touch upon any of this, neither does Mesa (updated 2006!) or anyone - but I can't think I am the only one wanting to understand this.</p>
  
  <p>I am developing on Archlinux with Nvidia drivers - supporting 4.2 - which apparently doesn't come with the OpenGL headers (not the repository ones anyway). This is where the problems and confusion started. I read that I should use the Mesa3D headers - currently supporting OpenGL 3.0. This is what I have installed now.</p>
  
  <p>Now, I read somewhere that the core OpenGL 4.2 header - gl.h - only exposes the features from OpenGL 1.2. The rest (up to 4.2) is available through extension loading - which means that these 3.0 headers would be fine even if I develop against 4.2 - I'll just load all 4.2 core functionality as extensions.</p>
  
  <p>I read somewhere else that the gl.h header does indeed expose different functions between 4.2 and 3.0 - I just can't verify anything, since I find so many outdated articles and no solid information.</p>
  
  <p>Can someone explain how all this fits together?</p>