游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6799|回复: 7

glFlush/glFinish/SwapBuffers的区别,望高手指点

[复制链接]

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
发表于 2004-12-12 11:51:00 | 显示全部楼层 |阅读模式
经常在程序中把glFlush/glFinish/SwapBuffers互换使用,效果一模一样,没任何区别,这三个函数到底有什么区别?
望高手指点

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2004-12-12 12:41:00 | 显示全部楼层

Re:glFlush/glFinish/SwapBuffers的区别,望高手指点

glFlush/finish对应GL_SINGLE单缓存模式,一般用于渲染单个画面,用它来做实时动画会看到明显的闪烁
你可以在GL_SINGLE模式用glutIdleFunc或者其他什么不断地叫display/renderscene,就会看见闪烁
glFinish类似于glFlush,不过它会阻塞(block)直到绘图完成,glFlush只是发出绘图命令,然后就撒手不管了
glSwapBuffer对应GL_DOUBLE双缓存,所有的命令被写到后缓存,然后交换前后缓存,所以用来做动画

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2004-12-12 12:48:00 | 显示全部楼层

Re:glFlush/glFinish/SwapBuffers的区别,望高手指点

你在glflush和glfinish前后加timer,把屏幕打到最大,这两个命令就会出现毫秒级的差别,glfinish一般用于同步

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
 楼主| 发表于 2004-12-12 17:42:00 | 显示全部楼层

Re:glFlush/glFinish/SwapBuffers的区别,望高手指点

多次得到你的指点,实在感谢。

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2004-12-12 18:55:00 | 显示全部楼层

Re:glFlush/glFinish/SwapBuffers的区别,望高手指点

没有啦
我也是温故而知新^_^!

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2006-6-29 00:04:00 | 显示全部楼层

Re:glFlush/glFinish/SwapBuffers的区别,望高手指点

不一定,好的显卡和显示器不会,但比swap慢,但眼睛看不出来,这什么时候的贴子啊

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2009-12-3 16:26:00 | 显示全部楼层

Re:glFlush/glFinish/SwapBuffers的区别,望高手指点

glFlush和glFinish,这两个没有什么区别。

只要缓冲是DOUBLE BUFFER,glFlush和glFinish都不会出现闪烁。
可能是我的主板集成显卡太垃圾了吧?

13

主题

312

帖子

312

积分

中级会员

Rank: 3Rank: 3

积分
312
发表于 2009-12-5 18:43:00 | 显示全部楼层

Re:glFlush/glFinish/SwapBuffers的区别,望高手指点

支持一下 :〉


-------------------------------------------------------------------------------------------


欢迎访问开源图形处理器体系结构论坛(OpenGPU论坛) http://www.opengpu.org/bbs/

OpenGPU Graphics Open Source community(图形开源社区),聚焦领域(focus domain)包括:
  * GPU Architecture(图形处理器体系结构)
  * Graphics Algorithm(图形算法)
  * Open Source Rendering Engine(开源渲染器)
  * Open Source GPU Simulator/RTL Implement(开源GPU模拟器)
  * Mobile GPU Developing (移动图形设备的开发)
  * GPGPU Programming (面向通用的图形处理器编程)
                      (包括CUDA/OpenCL/DirectCompute)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-17 17:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表