//in init
glGenVertexArraysOES(1, &cubeVertexArray);
glBindVertexArrayOES(cubeVertexArray);
glGenBuffers(1, &cubeIndexBuffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, cubeIndexBuffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, NUM_IMAGE_OBJECT_INDEX*sizeof(GLushort), cubeIndices, GL_STATIC_DRAW);
glGenBuffers(1, &cubeVertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, cubeVertexBuffer);
glBufferData(GL_ARRAY_BUFFER, NUM_IMAGE_OBJECT_VERTEX * 3 * 6 *sizeof(GLfloat), cubeVertices, GL_STATIC_DRAW);
glGenBuffers(1, &cubeNormalBuffer);
glBindBuffer(GL_ARRAY_BUFFER, cubeNormalBuffer);
glBufferData(GL_ARRAY_BUFFER, NUM_IMAGE_OBJECT_VERTEX * 3 * 6 *sizeof(GLfloat), cubeNormals, GL_STATIC_DRAW);
glGenBuffers(1, &cubeTextureBuffer);
glBindBuffer(GL_ARRAY_BUFFER, cubeTextureBuffer);
glBufferData(GL_ARRAY_BUFFER, NUM_IMAGE_OBJECT_VERTEX * 2 * 6 *sizeof(GLfloat), cubeTexCoords, GL_STATIC_DRAW);
glBindVertexArrayOES(0);
//in render loop
glBindBuffer(GL_ARRAY_BUFFER, cubeVertexBuffer);
glVertexAttribPointer(vertexHandle, 3, GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(vertexHandle);
glBindBuffer(GL_ARRAY_BUFFER, cubeNormalBuffer);
glVertexAttribPointer(normalHandle, 3, GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(normalHandle);
glBindBuffer(GL_ARRAY_BUFFER, cubeTextureBuffer);
glVertexAttribPointer(textureCoordHandle, 2, GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(textureCoordHandle);