Posted on 2009-05-17 17:53
大源 阅读(886)
评论(1) 编辑 收藏 引用
#include <gl/glut.h>
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f,-0.5f,0.5f,0.5f);
glFlush();
}
int main(int argc, char *argv[])
{
/*
我们先看看main函数。函数中以glut开头的函数都包含在glut.h中。
GLUT库的函数主要执行如处理多窗口绘制、处理回调驱动事件、
生成层叠式弹出菜单、绘制位图字体和笔画字体,以及各种窗口管理等任务。
*/
/*初始化*/
/*glutInit用来是初始化GULT库并同窗口系统对话协商*/
glutInit(&argc, argv);
/*
gultInitDisplayMode用来确定所创建窗口的模式。本例中的参数GLUT_SINGLE制定
单缓存窗口,这也是缺省模式,对应的模式为GLUT_DOUBLE双缓存窗口。
参数GLUT_RGB指定颜色RGBA模式,这也是缺省模式,对应的模式为GLUT_INDEX颜色索引模式窗口。
*/
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
/*
glutWindowPosition设置窗口的位置,第一个参数为窗口左上角x的坐标,第二个参数为窗口左上角y的坐标
,以像素为单位,屏幕的左上角的坐标为(0, 0),横坐标向右逐渐增加,纵坐标向下逐渐增加。
*/
glutInitWindowPosition(100, 100);
/*
glutInitWindowSize初始化窗口的大小,第一个参数为窗口的宽度,第二个参数为窗口的高度,以像素为单位。
*/
glutInitWindowSize(400, 400);
/*
glutCreateWindow创建顶层窗口,窗口的名字为括号中的参数
*/
glutCreateWindow("第一个OpenGL程序");
/*
glutDisplayFunc注册当前窗口的显示回调函数。当一个窗口的图像曾需要重新绘制时,GLUT将调用该窗口的显示回调函数,
在此例中的mydisplay就是显示回调函数,显示回调函数不带任何参数,它负责整个图像层的绘制。我们的大部分工作将集中在这个函数中
*/
glutDisplayFunc(&myDisplay);
/*
glutMainLoop进入GLUT事件处理循环。glutMainLoop函数在GLUT程序中最多只能调用一次
,它一旦被调用就不再返回,并且调用注册过的回调函数。所以这个函数必须放在注册
回调函数的后面。
*/
glutMainLoop();
return 0;
}