OpenGL(二)之使用GLUT进行显示窗口管理

1.在VS2013中建立一个OpenGL工程

选择File->New->Project,然后选择VC下的Win32 Console Application,选择一个名字,然后按OK。

在谈出的对话框左边点Application Settings,找到Empty project并勾上,选择Finish。

然后向该工程添加一个代码文件,取名为“OpenGL.cpp”。

搞定了,就跟平时的工程没什么两样的。

 

2.第一个OpenGL程序

  

 1 //GLUT的头文件
 2 //本来OpenGL程序一般还要包含<GL/gl.h>和<GL/glu.h>,但GLUT的头文件中已经自动将这两个文件包含了,不必再次包含
 3 #include <GL/glut.h>
 4 
 5 void myDisplay(void)
 6 
 7 {
 8     //表示清除颜色
 9     glClear(GL_COLOR_BUFFER_BIT);
10 
11     //画一个矩形。四个参数分别表示了位于对角线上的两个点的横、纵坐标
12     glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
13 
14     //保证前面的OpenGL命令立即执行(而不是让它们在缓冲区中等待)
15     glFlush();
16 
17 }
18 
19 //带命令行参数的main函数
20 int main(int argc, char *argv[])
21 
22 {
23     //以glut开头的函数都是GLUT工具包所提供的函数
24 
25     //对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次。其格式比较死板,一般照抄这句glutInit(&argc, argv)就可以了
26     glutInit(&argc, argv);
27 
28     //设置显示方式,其中GLUT_RGB表示使用RGB颜色,与之对应的还有GLUT_INDEX(表示使用索引颜 色)。
29     //GLUT_SINGLE表示使用单缓冲,与之对应的还有GLUT_DOUBLE(使用双缓冲)
30     glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
31 
32     //设置窗口在屏幕中的位置
33     glutInitWindowPosition(100, 100);
34 
35     //设置窗口的大小
36     glutInitWindowSize(400, 400);
37 
38     //根据前面设置的信息创建窗口。参数将被作为窗口的标题
39     //注意:窗口被创建后,并不立即显示到屏幕上。需要调用glutMainLoop才能看到窗口
40     glutCreateWindow("第一个OpenGL程序");
41 
42     //每当GLUT确定一个窗口的内容需要重新显示时,通过glutDisplayFunc() 所注册的那个回调函数就会被执行
43     //应该把重绘场景所需要的所有代码都放在这个显示回调函数里。
44     glutDisplayFunc(&myDisplay);
45 
46     //所有已经创建的窗口将会在这时显示,对这些窗口的渲染也开始生效
47     //事件处理循环开始启动,已注册的显示回调函数被触发。一旦进入循环,它就永远不会退出。
48     glutMainLoop();
49 
50     return 0;
51 
52 }

该程序的作用是在一个黑色的窗口中央画一个白色的矩形。具体情况请看注释~~

这就是简单的第一个OpenGL程序~~

原文地址:https://www.cnblogs.com/tjulym/p/5004744.html