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