Before making game apps, I want to have any certain smartphone device brands that runs on OpenGL. I have to make a code for images that doesn't need to required power of 2 images so that I can resize the images independently from the start. However, some images appeared in white instead of the appearance that I expected like the old model phone T-Mobile on Android 1.6 for example after I disabled the power of 2 code. The only device I've known that worked and displayed image sprites properly is the Google Nexus 7. Can you tell me either other phone models that can display images without the need of power of 2 and will not display white images instead? Please give me an example at least. Thank you.

  • \$\begingroup\$ You are asking about hardware, but the answer is in software. In general, you can program your device in any way you want. If you are asking about OpenGL, see the specification. People (manufactures) are developing and improving software, so if you get an answer, it may be irrelevant in several months. \$\endgroup\$ – Ivan Kuckir Feb 18 '13 at 15:53
  • \$\begingroup\$ I think David deserves another chance and maybe he's right. Device issues on the app might be a good opportunity to understand before making graphics that suits with that device in general. \$\endgroup\$ – Tredecies Nocturne Feb 19 '13 at 2:44

Well, AFAIK, OpenGL ES 2.0 supports non-power-of-2 (NPOT) textures, but only for certain configurations. Check this answer here for details on this:


For OpenGL ES 1.x, NPOT textures are not supported by default. There are various (mostly non-standard) extentions that allow you do to this but they are manufacturer/video-card/driver specific (i.e. for some Apple IOS 2 devices there's a GL_APPLE_texture_2D_limited_npot that allows you to do that).

My advice is :

  • if you don't really need to, don't use NPOT textures. Even if they do work, you can have big performance penalties because of this.

  • if you absolutely have to use NPOT textures, code using the OpenGL ES 2.0 API only (no OpenGL ES 1.x). Most Android devices already support OpenGL ES 2.0 so you should be fine

  • if you find yourself targeting a device that only supports OpenGL ES 1.x, check its video card specs to see if it has any extension allowing for NPOT textures (and if it does, check to see under which conditions that extension works, for example it can be that it will allow you to have NPOT textures, but not support mip-mapping on them, etc).

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.