Как определить максимальное разрешение текстур на iPhone?

Я делаю универсальное приложение на основе openGL, которое должно работать на ipod/iphone 2G/3G/3GS/4 и iPad.

Для получения наилучшей графики мне нужно переключаться между различными разрешениями текстур в зависимости от того, на каком устройстве оно работает.

Например, iPhone 2G нужны текстуры размером не более 1024x1024, в то время как iPhone 3GS может обрабатывать большие текстуры.

Итак, на iPhone 3GS я хочу загрузить текстурный атлас 2048x2048, в то время как iPhone 2G получит уменьшенный текстурный атлас 1024x1024.

Существует ли простой и безопасный способ определения максимального разрешения текстуры, доступного для openGL на любом из указанных устройств?

1 ответ

Решение

Да, используйте glGetIntegerv, как:

int maxTextureSize;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTextureSize);

Тогда вы можете использовать не более maxTextureSize x maxTextureSize текстуру.

Другие вопросы по тегам