6
votes

I'm making an universal openGL based app that should work on ipod/iphone 2G/3G/3GS/4 and iPad.

To deliver the best possible graphics I need to switch between different texture resolutions based on what device is running it.

For example, iPhone 2G needs textures that is no larger than 1024x1024, while iPhone 3GS can handle larger textures.

So, on iPhone 3GS I want to load a texture atlas that's 2048x2048, while iPhone 2G will get the downscaled 1024x1024 texture atlas.

Is there a simple and safe way to detect the maximum texture resolution available to openGL on any said device?

1

1 Answers

10
votes

Yes, use glGetIntegerv like:

int maxTextureSize;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTextureSize);

Then you can use at most a maxTextureSize x maxTextureSize texture.