我在 libgdx 中有一个非常简单的应用程序。目前它应该用粉红色的纹理覆盖一半的屏幕。确实如此,但纹理却在闪烁。根据我自己对主题以及该主题的理解: LibGDX blinking 我需要启用双缓冲。或者,写入我的缓冲区。问题是,要么我对 google 不熟练,要么很难找到如何操作 libgdx 中缓冲区的任何信息。如果有人可以向我提供资源,解释如何操作缓冲区,如何创建缓冲区,如何将它们与当前显示交换等。我将非常感激。
编辑: 在网上搜索了更多内容后,我在 badlogic 论坛上找到了帖子,声称 libgdx 默认设置了双缓冲。问题是,它是如何运作的?缓冲区什么时候交换?
最佳答案
Libgdx 默认启用双缓冲(它实际上是底层 OpenGL 基础设施的一部分,而不是 Libgdx)。我不认为 Libgdx 公开了对双缓冲的任何控制。有一些禁用垂直同步的控件可能会产生一些撕裂,但不太可能相关。
更可能获得此行为的方法是,如果您的 render
方法仅被调用一次。这将绘制到一个缓冲区中。然后,假设渲染已成为无操作,没有任何内容被绘制到另一个缓冲区中,它们被切换,没有任何内容被绘制到原始缓冲区中,它们被切换等等。这可能会导致您所看到的眨眼行为。
如果这个猜测不能涵盖它,您将必须提供更多详细信息。您在哪个平台上运行?您运行的是 Libgdx 的稳定版本还是夜间版本之一?您如何设置 libgdx 应用程序配置?您的 render
方法实际上是什么样的?
关于java - 双缓冲和 libgdx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15987887/