java - 双缓冲和 libgdx

标签 java buffer libgdx

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

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

最佳答案

Libgdx 默认启用双缓冲(它实际上是底层 OpenGL 基础设施的一部分,而不是 Libgdx)。我不认为 Libgdx 公开了对双缓冲的任何控制。有一些禁用垂直同步的控件可能会产生一些撕裂,但不太可能相关。

更可能获得此行为的方法是,如果您的 render 方法仅被调用一次。这将绘制到一个缓冲区中。然后,假设渲染已成为无操作,没有任何内容被绘制到另一个缓冲区中,它们被切换,没有任何内容被绘制到原始缓冲区中,它们被切换等等。这可能会导致您所看到的眨眼行为。

如果这个猜测不能涵盖它,您将必须提供更多详细信息。您在哪个平台上运行?您运行的是 Libgdx 的稳定版本还是夜间版本之一?您如何设置 libgdx 应用程序配置?您的 render 方法实际上是什么样的?

关于java - 双缓冲和 libgdx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15987887/

相关文章:

swift - 从 NSData 中获取字节并将结果放入字符串中

java - 在屏幕上绘制自定义字体

android - LibGDX - ImageButton - 设置图像背景

java - 如何让 IntelliJ 识别 wicket html 标签?

c - 字符缓冲区中的许多缓冲区

jquery - 使用缓冲区中的 drawImage 更新 Canvas 不要使用 drawImage 应用操作

android - 基于 LibGdx 的 Android 应用程序中指定区域的 WebView

java - 将 ArrayList 刷新为 ClickListener

java - 创建名为 'org.springframework.security.filterChains' 的 bean 时出现 Spring Security 错误

java - 如何在 .jar 文件中检查 Log4j 的版本号?