众所周知,android每个应用程序的内存限制为16mb(或在其他设备上更高).
我开始开发一个rpg,并且您也应该知道,由于图形原因,这类游戏需要16 MB以上的内存.
当您使用NDK用C编写部分代码时,没有内存限制(使游戏成为地牢防御者成为可能). libGDX部分用C编码,以获得更好的性能.
所以,这是我的问题:
它是否将纹理存储在Java部分或本机C部分中?
解决方法:
纹理存储在设备GPU的VRAM中.当您的图形引擎加载纹理时,它们可能是从本机方法加载的,但是您的纹理仍在VRAM中.
重要的是,它不会在“ Java”或“ C”部分中显式存储纹理,并且也没有存储这些部分的纹理.当您从loadTexture()函数取回int时,它只是访问VRAM上纹理的“关键”.
纹理的最大数量(和VBO:s)取决于设备GPU上的最大VRAM级别.