2013-04-13 94 views
1

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

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

回答

2

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

得到这种行为的可能性更大的方法是,如果不知何故,您的render方法只被调用一次。这将绘制成一个缓冲区。然后,假设render已经变成了no-op,没有任何东西被绘制到另一个缓冲区中,它们被切换,没有任何东西被绘制到原始缓冲区中,它们被切换等等。这可能导致您看到的闪烁行为。

如果这个猜测没有涵盖它,你将不得不提供更多的细节。你在哪个平台上运行?你正在运行一个稳定版本的Libgdx还是每晚构建一个?你如何设置libgdx应用程序配置?你的render方法实际上是什么样的?