SwapBuffers glutSwapBuffer glFlush glFinish

本文详细解析了OpenGL中的缓冲机制,包括单缓冲与双缓冲的区别,以及glFlush和glFinish的作用差异。此外,还介绍了SwapBuffers和glutSwapBuffers两种交换缓冲区的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然一直用,不过发现理解不够,抽了个空,花费几个小时,整理了一下,若有错误,还望诸位多多指教奋斗

1.glFlush:从表面上看,就是刷新并清空缓存,只不过这里刷新的是opengl指令所在的缓存!也就是说opengl的指令会放在缓存中,最后一并执行(显然一条一条的执行会很慢)

,不过glFlush是异步的,并不会 等待所有指令都执行完毕才返回。


2.glFinish:作用跟glFlush一样,只不过是同步的,必须等到所有opengl指令及其指令所 影响到的地方全都执行完毕后,才会返回结果


3.双缓冲:frontBuffer(不管是不是双缓冲) 用于display,backBuffer用于draw。通过交换缓冲区,把backBuffer的内容放到front中,便显示到屏幕上了。但是换换缓冲区,有两种方向:

(1)交换两个缓冲区的指针,frontBuffer直接成为backBuffer,反之亦然

(2)内容拷贝,仅是把backBuffer的内容拷贝到frontBuffer


4.SwapBuffers:这是windows的方法,#inclucde<wingdi.h>,它采用了缓冲区交换的方法(2)内容拷贝


5.glutSwapBuffer:属于glut,它采用了缓冲区交换的方法(1)交换缓冲区指针。在该方法的最后调用glFlush来执行所有opengl指令把内容显示出来


6.如果不用双缓冲,那就是直接渲染到屏幕上,也就是直接draw到frontBuffer中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值