Ответ 1
Кажется, что вы пытаетесь узнать доступ к видеомагнитофону VRAM (видеопамять). Вопрос уже частично ответил.
Однако количество VRAM не определяет, сколько текстур будет в нем вписываться: эти могут быть сжаты, количество VRAM может измениться из-за другого приложения, и мы не знаем, сколько памяти использует видеодрайвер.
Метод 1
Из этого раздела вы можете получить максимальное количество текстурных единиц; это означает максимальное число, которое может быть связано одновременно:
int[] maxSize = new int[1];
gl.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxSize, 0);
И из этого другого вы можете получить максимальный размер текстуры:
int[] maxNum = new int[1];
glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, maxNum, 0);
Итак, логично, вы можете по крайней мере соответствовать maxSize[0]
² × maxNum[0]
пикселям в VRAM без проблем. Даже если VRAM не хватает места, графический драйвер будет управлять им для нас (что может включать сбой приложения в случае голодания).
Во всяком случае, вы, вероятно, не собираетесь настраивать размер ваших текстур в зависимости от количества VRAM или доступных пикселей; это возможно, но не выгодно, переносимо и сложно реализовать должным образом. Там лучший способ сделать это:
Метод 2
В 99% случаев, количество VRAM на графическом чипе пропорционально размеру экрана. Таким образом, использовать экран DPI (ldpi, mdpi, hdpi, xhdpi), чтобы определить, какую версию (размер) текстуры загрузить (эксперимент с разные (реальные) устройства), поэтому вы можете быть уверены в том, что "будет ли он соответствовать этому устройству?".