# data[].attributes.body
glGenBuffers(1, &vbo_cube_texture);
glBindBuffer(GL_ARRAY_BUFFER, vbo_cube_texture);
glBufferData(GL_ARRAY_BUFFER, 36 * 2 * sizeof(float), tex, GL_STATIC_DRAW);
glVertexAttribPointer(
2, // attribute
2,                 // number of elements per vertex, here (R,G,B)
GL_FLOAT,          // the type of each element
GL_FALSE,          // take our values as-is
0,                 // no extra data between each position
0                  // offset of first element
);
glEnableVertexAttribArray(2);

# data[].attributes.body
float tex[36 * 2] = {
// Front
0.0f, 0.0f,
2.0f, 0.0f,
2.0f, 2.0f,
0.0f, 0.0f,
2.0f, 2.0f,
0.0f, 2.0f,
// Right
0.0f, 0.0f,
2.0f, 0.0f,
2.0f, 2.0f,
0.0f, 0.0f,
2.0f, 2.0f,
0.0f, 2.0f,
// Back
0.0f, 0.0f,
2.0f, 0.0f,
2.0f, 2.0f,
0.0f, 0.0f,
2.0f, 2.0f,
0.0f, 2.0f,
// Left
0.0f, 0.0f,
2.0f, 0.0f,
2.0f, 2.0f,
0.0f, 0.0f,
2.0f, 2.0f,
0.0f, 2.0f,
// Bottom
0.0f, 0.0f,
2.0f, 0.0f,
2.0f, 2.0f,
0.0f, 0.0f,
2.0f, 2.0f,
0.0f, 2.0f,
// Top
0.0f, 0.0f,
2.0f, 0.0f,
2.0f, 2.0f,
0.0f, 0.0f,
2.0f, 2.0f,
0.0f, 2.0f
};