title: Difference between format and internalformat
body: <p>I did search and read stuff about this but couldn't understand it.</p>
  
  <p><strong>What's the difference between a texture internal format and format in a call like</strong></p>
  
  <pre><code>glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 32, 32, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
  </code></pre>
  
  <p><strong>?</strong></p>
  
  <p>Let's assume that <code>data</code> is an array of 32 x 32 pixel values where there are four bytes per each pixel (unsigned char data 0-255) for red, green, blue and alpha.</p>
  
  <p>What's the difference between the first <code>GL_RGBA</code> and the second one? Why is <code>GL_RGBA_INTEGER</code> invalid in this context?</p>