我的应用程序可以快速渲染(通常每帧1-6毫秒),双缓冲和同步到vblank启用。在我的主循环中,我想睡10毫秒左右,然后读取一些实时输入并尽可能晚地进行渲染,同时仍然在截止日期之前更新帧(对于实时60 FPS渲染,延迟时间最短)。寻找OpenGL的垂直回扫时间
我可以交换缓冲区但不幸的是在某些系统上使用后glfinish在(Linux的非合成,至少)这似乎等不只有等到下一个缓冲交换,但直到图像已经发出了HDMI端口(总等待25毫秒的范围,应用程序以30 FPS运行)。在其他系统上(Linux复合),这种方法工作正常。没有glFinish更多的工作被缓冲,造成更长的延迟,所以这也不好。
我对更精确的帧定时有什么选择?主要平台为Windows,Linux和OS X.
对启用了垂直同步的帧进行定时是没有意义的。 – Thomas 2012-03-26 02:06:24
它可以启用同步工作,但我很乐意做没有,太 - 只要有(当然,没有撕裂,)的可靠方法。 – Tronic 2012-03-26 02:55:05
在OS X,你可以使用['CGDisplayModeGetRefreshRate'(http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/Quartz_Services_Ref/Reference/reference.html)。 – user1118321 2012-03-26 05:17:17