利用可能なVRAM(ビデオRAM)の量を知っているようです。 The question has already been partially answered.
VRAMの量は、どれくらいのテクスチャが収まるかを決めるものではありません。これらのものは圧縮することができ、VRAMの量は別のアプリケーションによって変わる可能性があります。ビデオドライバが使用します。
方法1
From this topic、あなたはテクスチャユニットの最大量を得ることができます。することができます少なくともフィットmaxSize[0]
²×、論理的に、そう
int[] maxNum = new int[1];
glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, maxNum, 0);
:
int[] maxSize = new int[1];
gl.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxSize, 0);
And from this other one、あなたは最大テクスチャサイズを取得することができます。それは同時にバインドすることができ、最大数を意味し、 VRAM内のピクセルmaxNum[0]
が問題なく表示されます。 VRAMの領域が不足しても、グラフィックスドライバはそれを管理します(かもしれません。には飢えた場合のアプリケーションクラッシュが含まれています)。
とにかく、VRAMの量や使用可能なピクセルに応じて、テクスチャのサイズを調整することはおそらくありません。それは可能ですが、有益ではなく、移植性があり、正しく実装するのは難しいです。 これを行うには方法良い方法があります:
方法2
99%の時間は、グラフィックスチップ上のVRAMのAMOUTは、画面サイズに比例しています。従って、use the screen's DPI (ldpi, mdpi, hdpi, xhdpi)は、ロードするテクスチャのバージョン(サイズ)(異なる(実際の)デバイスで実験する)を決定するので、「そのデバイスに適合しますか?