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 1024×1024, while iPhone 3GS can handle larger textures.
So, on iPhone 3GS I want to load a texture atlas that’s 2048×2048, while iPhone 2G will get the downscaled 1024×1024 texture atlas.
Is there a simple and safe way to detect the maximum texture resolution available to openGL on any said device?
Yes, use glGetIntegerv like:
Then you can use at most a maxTextureSize x maxTextureSize texture.