双缓冲和libgdx

时间:2013-04-13 12:39:11

标签: java buffer libgdx

我在libgdx中有一个非常简单的应用程序。它目前应该用粉红色纹理覆盖屏幕的一半。而且它确实如此,纹理却闪烁着。基于我自己对主题的理解,以及这个主题: LibGDX blinking 我需要启用双缓冲。或者,写入我的缓冲区。问题是,要么我对谷歌无能为力,要么很难找到如何在libgdx中操纵缓冲区的任何信息。如果有人可以为我提供资源,解释如何操作缓冲区,以及如何创建缓冲区,如何将它们与当前显示等交换。我将非常感激。

编辑: 在搜索了一些网页后,我在badlogic论坛上发帖,声称libgdx默认设置了双缓冲。问题是,它是如何工作的?交换缓冲区的时间是什么时候?

1 个答案:

答案 0 :(得分:2)

Libgdx默认启用双缓冲(它实际上是底层OpenGL基础架构的一部分,而不是Libgdx)。我不认为Libgdx暴露任何双缓冲控制。有一些控件可以禁用vsync,这可能会造成一些撕裂,但不太可能相关。

获得此行为的可能性更大的方法是,不管怎样,只调用一次render方法。这将绘制到一个缓冲区中。然后,假设render变为无操作,没有任何东西被吸引到另一个缓冲区,它们被切换,没有任何东西被吸入原始缓冲区,它们被切换等等。这可能导致闪烁的行为你看到了。

如果猜测没有涵盖,你必须提供更多细节。你在哪个平台上运行?你在运行稳定版的Libgdx或其中一个夜间版本吗?你是如何设置libgdx应用程序配置的?您的render方法实际上是什么样的?