code: function createVertexBufferObjects(renderState) {
      if (m_geomData) {
        if (renderState) {
          m_context = renderState.m_context;
        }
        var numberOfSources = m_geomData.numberOfSources(),
            i, j, k, bufferId = null, keys, ks, numberOfPrimitives, data;
  
        for (i = 0; i < numberOfSources; i += 1) {
          bufferId = m_context.createBuffer();
          m_context.bindBuffer(vgl.GL.ARRAY_BUFFER, bufferId);
          data = m_geomData.source(i).data();
          if (!(data instanceof Float32Array)) {
            data = new Float32Array(data);
          }
          m_context.bufferData(vgl.GL.ARRAY_BUFFER, data,
                        m_dynamicDraw ? vgl.GL.DYNAMIC_DRAW :
                        vgl.GL.STATIC_DRAW);
  
          keys = m_geomData.source(i).keys();
          ks = [];
  
          for (j = 0; j < keys.length; j += 1) {
            ks.push(keys[j]);
          }
  
          m_bufferVertexAttributeMap[i] = ks;
          m_buffers[i] = bufferId;
        }
  
        numberOfPrimitives = m_geomData.numberOfPrimitives();
        for (k = 0; k < numberOfPrimitives; k += 1) {
          bufferId = m_context.createBuffer();
          m_context.bindBuffer(vgl.GL.ARRAY_BUFFER, bufferId);
          m_context.bufferData(vgl.GL.ARRAY_BUFFER,
            m_geomData.primitive(k).indices(), vgl.GL.STATIC_DRAW);
          m_buffers[i] = bufferId;
          i += 1;
        }
  
        m_glCompileTimestamp.modified();
      }
    }
docs: ////////////////////////////////////////////////////////////////////////// 
  Create new VBO for all its geometryData sources and primitives
  
  @private
   //////////////////////////////////////////////////////////////////////////