1.初始化GLUT
glutInit(&argc, argv);
2.创建显示窗口
glutCreateWindow("OpenGL Test1");
3.指定显示内容
创建一个图并将图的定义传递给GLUT函数glutDisplayFunc,即将图赋给显示窗口
如:lineSegment
glutDisplayFunc(lineSegment);
此时,显示窗口还为出现在屏幕上
4.窗口处理
glutMainLoop();
显示初始图像并使程序进入检查鼠标或键盘等设备输入的无穷循环之中。
5.尽管创建的显示窗口有默认的位置和大小。但还可以设定。
glutInitWindowPosition(50, 100);
glutInitWimdowSize(400, 300);
显示在屏幕左边界向右50像素、屏幕上边界之下100像素的位置上。窗口宽度400像素,高度300像素。
6.设置窗口的缓存和颜色模型等选项
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
指定显示窗口使用单缓存且使用RGB颜色模型来设定颜色值
完整代码:
#include
#include
void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROGRAM);
gluOrtho2D(0.0, 200.0, 0.0, 150.0);
}
void lineSegment(void)
{
glClear(GL_COLOR_BUFFER_BIT);//GL_COLOR_BUFFER_BIT是一个OpenGL符号常量,用来指定它的颜色缓存(刷新缓存)中的位值,该缓存将使用 glClearColor函数中指定的值来设定。
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_LINES);
glVertex2i(180, 15);
glVertex2i(10, 145);
glEnd();
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);//初始化GULT
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);//设置显示模式
glutInitWindowPosition(50, 100);//设置左上角窗口显示位置
glutInitWindowSize(400, 300);//设置窗口显示的宽与高
glutCreateWindow("An Example OpenGL Program!");//创建一个窗口
init();//执行初始化程序
glutDisplayFunc(lineSegment);//把图形显示在窗口
glutMainLoop();//显示所有并进入等待状态
}