title: Why do different variations of glVertexAttribPointer exist?
body: <p>There are</p>
  
  <pre><code>glVertexAttribPointer()
  glVertexAttribIPointer()
  glVertexAttribLPointer()
  </code></pre>
  
  <p>As far as I know, <code>glVertexAttribPointer</code> can be used instead of the other two.</p>
  
  <p>If so, why do the <code>I</code> and <code>L</code> variations exist?</p>