超过两个缓冲区的优势?

问题描述:

当我绘制Canvas时,我使用createBufferStrategy(2)方法创建两个缓冲区。然而,我多次看到其他人创建三个缓冲区,并了解可以使用更多的缓冲区。超过两个缓冲区的优势?

我可以理解需要两个缓冲区,但我无法理解使用更多的逻辑。

我的问题是 - 使用多个缓冲区有什么好处,以及与两个缓冲区相比,这会如何影响性能?

在此先感谢。

使用双缓冲,前缓冲区正在显示,后缓冲区正在绘制。一旦绘图完成,但在缓冲区翻转之前,两个缓冲区都不能被触摸。这可能导致等待期间不能进行绘图。

三重缓冲是一种旁路等待的方式。有两个后台缓冲区:一旦后台缓冲区中的绘图完成,它可以立即在另一个后台缓冲区中启动。

维基百科has more details

+0

对于我如何影响性能有点不清楚。你能详细说明这个问题吗? – Acidic

+0

@酸性:如果程序想要花费所有的绘制周期,有一个不能停下来的时间段(因为它不允许触摸两个缓冲区中的任何一个)会降低帧速率。 – NPE

+0

所以有三个缓冲区将有可能降低帧率,如果是有限的 - 这是正确的?如果帧率不受限制,效果如何? – Acidic