OpenGL中的glutInitDisplayMode()函数的理解【转】

OpenGL中的glutInitDisplayMode()函数的作用主要是在创建窗口的时候,指定其显示模式的类型。

函数原型为:void glutInitDisplayMode(unsigned int mode);

mode参数是一个GLUT库里预定义的可能的布尔组合。你使用mode去指定颜色模式,数量和缓冲区类型。

其中大部分情况下使用的参数为:GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL

颜色模式:GLUT_RGBA表示颜色模式,另外还有GLUT_RGB 和 GLUT_INDEX模式。

其中GLUT_RGBA为默认的颜色模式。

缓冲区类型:GLUT_DOUBLE表示使用双缓冲窗口,与之对应的是GLUT_SINGLE模式,二者的区别是:

单缓冲,实际上就是将所有的绘图指令在窗口上执行,就是直接在窗口上绘图,这样的绘图效率是比较慢的,如果使用单缓冲,而电脑比较慢,屏幕会发生闪烁。一般只用于显示单独的一副非动态的图像。
双缓冲,实际上的绘图指令是在一个缓冲区完成,这里的绘图非常的快,在绘图指令完成之后,再通过交换指令把完成的图形立即显示在屏幕上,这就避免了出现绘图的不完整,同时效率很高。一般用于生成动画效果。

一般用OpenGL绘图使用双缓冲模式。

其它的缓冲模式还有很多例如:

 

GLUT_ACCUM;GLUT_ALPHA;GLUT_DEPTH;GLUT_STENCIL;GLUT_MULTISAMPLE;GLUT_STEREO;GLUT_LUMINANCE。其表示对应的宏以及含义如下:

OpenGL中的glutInitDisplayMode()函数的理解【转】

关于其中的具体区别,还需要以后的深入学习和理解。