int* Indices = Mesh->Index;
int size = Mesh->Index_count;
float* Interleaved = new float[size];
for(int i=0; i<size;)
{
Interleaved[i] = Mesh->VERTEX.mData [Indices[i]];
i++;
Interleaved[i] = Mesh->NORMAL.mData [Indices[i]];
i++;
Interleaved[i] = Mesh->TEXCOORD.mData[Indices[i]];
i++;
}
// I believe both the interleaved and index buffers to have the same element count.
GLuint Buffer_Interleaved,Buffer_Index;
glGenBuffers(1,&Buffer_Interleaved);
glGenBuffers(1,&Buffer_Index);
glBindBuffer(GL_ARRAY_BUFFER,Buffer_Interleaved);
glBufferData(GL_ARRAY_BUFFER,size*sizeof(float),Interleaved,GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,Buffer_Index);
glBufferData(GL_ELEMENT_ARRAY_BUFFER,size*sizeof(int),Indices,GL_STATIC_DRAW);
delete [] Interleaved;