title: What is the difference between glBufferStorage and glBufferData?
body: <blockquote>
    <p>glBufferStorage creates a new immutable data store for the buffer
    object currently bound to target​. The size of the data store is
    specified by size​. If an initial data is available, its address may
    be supplied in data​. Otherwise, to create an uninitialized data
    store, data​ should be NULL​.</p>
  </blockquote>
  
  <p>Immutable means that I can't mutate it right? But then "uninitialized data" would be pointless.</p>
  
  <p>But it is not really immutable because we can specify <code>GL_DYNAMIC_STORAGE_BIT​</code></p>
  
  <p>So what is the difference between glBufferStorage and glBufferData? </p>