libGDX - Где хранятся текстуры?

Как вы все знаете, в Android установлен лимит памяти 16 Мб на одно приложение (или больше на других устройствах). Я начал разрабатывать ролевую игру, и, как вы также должны знать, для таких игр требуется более 16 МБ из-за графики.

Когда вы пишете части кода на C с помощью NDK, ограничений по памяти нет (что делает возможными игры в качестве защитников подземелий). libGDX частично написан на C для лучшей производительности.

Итак, вот мой вопрос:

Сохраняет ли он текстуры в части Java или в собственной части C?


person Marco    schedule 01.04.2011    source источник


Ответы (1)


Текстуры хранятся в VRAM на графическом процессоре вашего устройства. Когда ваш графический движок загружает текстуры, они, вероятно, загружаются из собственного метода, но ваши текстуры все еще находятся в VRAM.

Важно, он не хранит текстуры явно в части "Java" или "C", и нет таких частей, где они хранятся. Когда вы возвращаете int из функции loadTexture(), это всего лишь «ключ» для доступа к текстуре в VRAM.

Максимальное количество текстур (и VBO:s) зависит от максимального уровня VRAM на графическом процессоре вашего устройства.

person Wroclai    schedule 01.04.2011
comment
Мой вопрос мог ввести в заблуждение, но, поскольку в java vm ram есть ограничение, я думал об этом как о java и c без ограничения оперативной памяти. Но вы очень хорошо ответили на мой вопрос, спасибо ;) - person Marco; 01.04.2011
comment
Что делать, если на вашем устройстве/телефоне нет графического процессора? - person Felix; 12.05.2011
comment
Если он не поддерживает VBO:s, он будет загружен на ЦП. - person Wroclai; 12.05.2011