
显示列表程序
#include <GL/glut.h>
#include <GL/glaux.h>
GLuint listName;
void myinit(void);
void CALLBACK display(void);
void CALLBACK reshape(GLsizei w, GLsizei h);
void myinit(void)
{
GLfloat color_vector[]={1,0,0};
listName=glGenLists(1);
// 生成 1 个未被占用的可用列表空间,返回其索引
glNewList(listName, GL_COMPILE);
// 说明列表的开始,其后的函数存入列表直至结束标志
{
glPushAttrib(GL_CURRENT_BIT);
// 将当前状态变量存储在属性堆栈中,
//包括当前颜色、当前法向量、当前纹理坐标、当前光栅位置等等
glColor3fv(color_vector); // 显示列表中使用红色
glBegin(GL_TRIANGLES); // 定义三角形带
{
glVertex2f(0,0);
glVertex2f(1,0);
glVertex2f(0,1);
}
glEnd(); // 多边形定义结束
glTranslatef(1.5,0,0); // 平移矩阵乘以当前矩阵
glPopAttrib(); // 恢复先前 PushAttrib 函数中保存的状态变量
}
glEndList(); // 说明显示列表定义结束
glShadeModel(GL_SMOOTH); // 启用光滑明暗处理
}//
void drawLine(void){ // 绘制一条线段
glBegin(GL_LINES);
{
glVertex2f(0,0.5);
glVertex2f(15,0.5);
}
glEnd();
}
//
void CALLBACK reshape(GLsizei w, GLsizei h){