【问题标题】:libGDX - Where are the textures stored?libGDX - 纹理存储在哪里?
【发布时间】:2011-04-01 12:39:33
【问题描述】:

众所周知,android 每个应用程序的内存限制为 16mb(或在其他设备上更高)。 我开始开发一个 rpg 并且你也应该知道,由于图形的原因,这类游戏需要超过 16 MB。

当您使用 NDK 用 C 语言编写部分代码时,没有内存限制(使游戏成为地牢守卫者成为可能)。 libGDX 部分用 C 编码以获得更好的性能。

所以,这是我的问题:

它是将纹理存储在 Java 部分还是原生 C 部分?

【问题讨论】:

    标签: java android memory libgdx


    【解决方案1】:

    纹理存储在您设备 GPU 上的 VRAM 中。当您的图形引擎加载纹理时,它们可能是从本机方法加载的,但您的纹理仍在 VRAM 中。

    重要,它没有明确将纹理存储在“Java”或“C”部分中,并且没有存储它们的这些部分。当您从 loadTexture() 函数中取回 int 时,这只是访问 VRAM 上纹理的“键”。

    最大纹理数量(和 VBO:s)取决于设备 GPU 上的最大 VRAM 级别。

    【讨论】:

    • 我的问题可能具有误导性,但由于 java vm ram 存在限制,我认为它是 java 和 c,没有 ram 限制。但是你很好地回答了我的问题,谢谢;)
    • 如果您的设备/手机没有 GPU 怎么办?
    • 如果它不支持 VBO:s 它将被加载到 CPU 上。
    猜你喜欢
    • 2019-09-07
    • 1970-01-01
    • 2019-09-21
    • 2017-05-11
    • 2023-03-30
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 2011-08-14
    相关资源
    最近更新 更多