如何在iPhone上检测最大纹理分辨率?

时间:2010-07-13 19:20:18

标签: iphone opengl-es

我正在制作一个基于OpenGL的通用应用程序,可以在ipod / iphone 2G / 3G / 3GS / 4和iPad上运行。

为了提供最好的图形,我需要根据运行它的设备在不同的纹理分辨率之间切换。

例如,iPhone 2G需要的纹理不大于1024x1024,而iPhone 3GS可以处理更大的纹理。

所以,在iPhone 3GS上我想要加载2048x2048的纹理图集,而iPhone 2G将获得缩小的1024x1024纹理图集。

有没有一种简单而安全的方法来检测任何所述设备上openGL可用的最大纹理分辨率?

1 个答案:

答案 0 :(得分:9)

是的,请使用glGetIntegerv,如:

int maxTextureSize;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTextureSize);

然后你最多可以使用maxTextureSize x maxTextureSize纹理。