GLfloat* dummy = new GLfloat[x.size()*3];
for (int i=0; i < x.size(); i++)
{
dummy[3*i ] = x[i] - camera->xOffset();
dummy[3*i + 1] = y[i] - camera->yOffset();
dummy[3*i + 2] = z[i];
}
// Bind it
glBindBuffer(GL_ARRAY_BUFFER, vboData);
// Allocate storage for it
glBufferData(GL_ARRAY_BUFFER, x.size()*3*sizeof(float),
0, GL_DYNAMIC_DRAW);
// Get a pointer to that storage....
GLfloat* positionBuffer = (GLfloat*) glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY);
// if valid, fill it with the data
if (positionBuffer)
{
memcpy((void*)positionBuffer, (void*)dummy, x.size()*3*sizeof(float));
glUnmapBuffer(GL_ARRAY_BUFFER);
positionBuffer = NULL;
}
// Unbind the buffer....
glBindBuffer(GL_ARRAY_BUFFER, 0);