超过两个缓冲区的优势?
问题描述:
当我绘制Canvas
时,我使用createBufferStrategy(2)
方法创建两个缓冲区。然而,我多次看到其他人创建三个缓冲区,并了解可以使用更多的缓冲区。超过两个缓冲区的优势?
我可以理解需要两个缓冲区,但我无法理解使用更多的逻辑。
我的问题是 - 使用多个缓冲区有什么好处,以及与两个缓冲区相比,这会如何影响性能?
在此先感谢。
答
使用双缓冲,前缓冲区正在显示,后缓冲区正在绘制。一旦绘图完成,但在缓冲区翻转之前,两个缓冲区都不能被触摸。这可能导致等待期间不能进行绘图。
三重缓冲是一种旁路等待的方式。有两个后台缓冲区:一旦后台缓冲区中的绘图完成,它可以立即在另一个后台缓冲区中启动。
维基百科has more details。
对于我如何影响性能有点不清楚。你能详细说明这个问题吗? – Acidic
@酸性:如果程序想要花费所有的绘制周期,有一个不能停下来的时间段(因为它不允许触摸两个缓冲区中的任何一个)会降低帧速率。 – NPE
所以有三个缓冲区将有可能降低帧率,如果是有限的 - 这是正确的?如果帧率不受限制,效果如何? – Acidic