[OpenGL] glFlush 和 glFinish 的区别

都是清空并执行缓冲区中的指令,那么他们有什么区别呢?

以下摘自 百度百科:

glFinish和glFlush的区别
我们提交给OpenGL的绘图指令并不是马上送给图形硬件执行,而是放到一个缓冲区里面,等待缓冲区满了再将这些指令送给图形硬件执行,所以指令较少或者简单时是无法填满缓冲区的,自然这些指令不能马上执行以达到所需要的效果。
因此每次在写完绘图代码需要让其完成效果时我们需要在代码后面添加glFlush()或gLFinish()函数:
(1)gLFlush()作用是将缓冲区中的指令(无论是否为满)立刻送给图形硬件执行,发送完立即返回;
(2)glFinish()作用也是将缓冲区中的指令(无论是否为满)立刻送给图形硬件执行,但是要等待图形硬件执行完这些指令才返回。

总结一下:
1)缓冲区中存放的是绘图指令
2)缓冲区满才会执行其中的指令
3)指令太少或太简单将无法执行
4)so,需要用到glFinish 或 glFlush
5) 它们都会清空缓冲区,并执行其中的所有指令
6)区别是,glFinish会在执行完再返回,glFlush则会立刻返回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值