这是根据第一个程序修改来的,这里贴出渲染函数。
//渲染函数,在屏幕中央绘制一个旋转的正方体
void Render()
{
//旋转的角度
static int rotation = 0;
//正方体六个面对应顶点的数组索引
static GLubyte front[] = {2,1,3,0}; //front face
static GLubyte back[] = {5,6,4,7}; //back face
static GLubyte top[] = {6,2,7,3}; //top face
static GLubyte bottom[] = {1,5,0,4}; //bottom face
static GLubyte left[] = {3,0,7,4}; //left face
static GLubyte right[] = {6,5,2,1}; //right face
//正方体顶点坐标数组
static GLshort vertices[] = {-5,-5,-5, 5,-5,-5, 5,5,-5, -5,5,-5,
-5,-5,5, 5,-5,5, 5,5,5, -5,5,5};
//清除缓冲区
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//重置当前的模型观察矩阵
glLoadIdentity();
//旋转正方体
glRotatex(FixedFromInt(45), ONE, 0, 0);
glRotatex(FixedFromInt(rotation++), 0, ONE,0);
//启用顶点数组
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_SHORT, 0, vertices);
//给六个面配置颜色并绘制
glColor4x(ONE,0,0,0);
glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_BYTE, front);
glColor4x(0,ONE,0,0);
glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_BYTE, back);
glColor4x(0,0,ONE,0);
glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_BYTE, top);
glColor4x(ONE,ONE,0,0);
glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_BYTE, bottom);
glColor4x(0,ONE,ONE,0);
glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_BYTE, left);
glColor4x(ONE,0,ONE,0);
glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_BYTE, right);
//关闭顶点数组
glDisableClientState(GL_VERTEX_ARRAY);
eglSwapBuffers(glesDisplay, glesSurface);
}