我正在制作一个基于OpenGL的通用应用程序,可以在ipod / iphone 2G / 3G / 3GS / 4和iPad上运行。
为了提供最好的图形,我需要根据运行它的设备在不同的纹理分辨率之间切换。
例如,iPhone 2G需要的纹理不大于1024x1024,而iPhone 3GS可以处理更大的纹理。
所以,在iPhone 3GS上我想要加载2048x2048的纹理图集,而iPhone 2G将获得缩小的1024x1024纹理图集。
有没有一种简单而安全的方法来检测任何所述设备上openGL可用的最大纹理分辨率?
答案 0 :(得分:9)
是的,请使用glGetIntegerv,如:
int maxTextureSize;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTextureSize);
然后你最多可以使用maxTextureSize x maxTextureSize纹理。