从 vm 清除 libgdx 中的 Android 纹理

发布于 2024-12-10 16:02:51 字数 253 浏览 1 评论 0原文

我正在 android 中使用 libgdx 开发游戏。我在游戏结束时处理了我使用的所有纹理(赢-输-重新启动),但我的虚拟机未清除。我尝试

gl.glDeleteTextures(1, textureHandle, 0);

处理所有纹理、世界、对象等。但虚拟机大小是相同的。由于这个问题,我在玩了几个关卡后得到了OutOfMemoryException

I'm developing a game using libgdx in android. I dispose all the textures I use when the game ends (win-lose-restart) but my vm is not cleared. I tried

gl.glDeleteTextures(1, textureHandle, 0);

I dispose all textures, world, objects, etc. But vm size is the same. Due to this problem I get OutOfMemoryException after playing a few levels.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

得不到的就毁灭 2024-12-17 16:02:51

您使用什么 libgdx API 来加载纹理?默认情况下,libgdx 将管理纹理内存,以便在您的应用程序挂起时将纹理重新加载到视频 RAM 中。
请参阅有关上下文丢失的 badlogic 博客文章:http://www.badlogicgames.com/wordpress/ ?p=1073

这意味着你需要告诉libgdx释放纹理,而不是直接告诉OpenGL释放纹理。请参阅 Texture.dispose()< /a>.

What libgdx APIs are you using to load textures? By default libgdx will manage texture memory so that it can, for example, reload textures into video RAM if your app gets suspended.
See the badlogic blog post about context loss here: http://www.badlogicgames.com/wordpress/?p=1073

What this means is that you need to tell libgdx to release the Texture, not just directly tell OpenGL to release the texture. See Texture.dispose().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文