title: Read SSBO content returned by glMapBufferRange
body: <p>I want to retrieve the data from a storage buffer object. At first, I want to take advantage of <code>glGetBufferSubData</code>. But it seems that this function does not exist in opengl es, though it does exist in opengl. Then I fall back on <code>glMapBufferRange</code>.<br>
  It is perfect if I can interpret the information after retrieving the data from the buffer. But I think to do this I have to provide the exact layout, or even more information. For now, I do not need to do that much. What I want to do is that, under two different situations, I want to retrieve the buffer contents, and compare whether the contents are the same under the two situations.<br>
  The problem is, <code>glMapBufferRange</code> returns a <code>void *</code> type. I convert it to <code>char *</code> and compare each char in hex value:  </p>
  
  <pre><code>char *buffercontent = (char *)(glMapBufferRange(GL_SHADER_STORAGE_BUFFER, 0, 80, GL_MAP_READ_BIT));  //just read the first 80 characters. I'm sure the buffer data length is at least 80.
  for(int i=0;i&lt;20;i++)
  {
      printf("%X", *(buffercontent+i));
  }
  glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
  </code></pre>
  
  <p>I feel confused because I can only see less that 20 characters printed out. Why? What is the problem? I'm sure the buffersize is large from other infomation.</p>