单缓冲:实际上就是将所有的绘图指令在窗口上执行,就是直接在窗口上绘图,这样的绘图效率是比较慢的,如果使用单缓冲,而电脑比较慢,屏幕会闪烁。
双缓冲:实际上的绘图指令是在一个缓冲区完成,这里的绘图非常的快,在绘图指令完成之后,再通过交换指令把完成的图形立即显示在屏幕上,这样所有的画在同一个瞬间改变,就不会造成闪烁的现象了。一般用OpenGL绘图都是用双缓冲,单缓冲一般只用于显示单独的一副非动态的图像
双缓冲的设置:
在OpenGL里双缓冲的实现很方便。
1、首先,在设置显示方式的时候要选择双缓冲器模式:
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);//GLUT_DOUBLE为双缓冲2、然后在需要进行显示更换的时候调换一下缓冲:
//glutSwapBuffers();//我在使用这句话的时候出现了错误,下面这句可以成功,目前没找到原因。
SwapBuffers( wglGetCurrentDC()); //双缓冲