posts - 38, comments - 13, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

OpenGL基本程序结构入门级分析

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;
}


Feedback

# re: OpenGL基本程序结构入门级分析  回复  更多评论   

2012-10-21 19:13 by friend039
谢谢!受益了
只有注册用户登录后才能发表评论。