都是清空并执行缓冲区中的指令,那么他们有什么区别呢?函数
如下摘自 百度百科:百度
glFinish和glFlush的区别
咱们提交给OpenGL的绘图指令并非立刻送给图形硬件执行,而是放到一个缓冲区里面,等待缓冲区满了再将这些指令送给图形硬件执行,因此指令较少或者简单时是没法填满缓冲区的,天然这些指令不能立刻执行以达到所须要的效果。
所以每次在写完绘图代码须要让其完成效果时咱们须要在代码后面添加glFlush()或gLFinish()函数:
(1)gLFlush()做用是将缓冲区中的指令(不管是否为满)马上送给图形硬件执行,发送完当即返回;
(2)glFinish()做用也是将缓冲区中的指令(不管是否为满)马上送给图形硬件执行,可是要等待图形硬件执行完这些指令才返回。硬件
总结一下:
1)缓冲区中存放的是绘图指令
2)缓冲区满才会执行其中的指令
3)指令太少或太简单将没法执行
4)so,须要用到glFinish 或 glFlush
5) 它们都会清空缓冲区,并执行其中的全部指令
6)区别是,glFinish会在执行完再返回,glFlush则会马上返回。总结