title: OpenGL floating point precision
body: <p>I am working on a project to migrate from legacy/immediate OpenGL to modern OpenGL (core profile). In the legacy OpenGL implementation, we used double precision, i.e. we made use of <code>GL_DOUBLE</code> in <code>glVertexPointer</code> and we used <code>glLoadMatrixd</code>, etc. However, in modern OpenGL, only OpenGL/GLSL 4.0+ supports double precision. </p>
  
  <p>How does old OpenGL support double precision while newer OpenGL doesn't?
  How does legacy OpenGL handle double precision while most graphics cards don't even support double precision?</p>
  
  <p>I couldn't find any information on the internet or some answers were too old. </p>
  
  <p>Do current graphics cards support double precision? Should I use OpenGL 4.0?</p>