You can read the limitations on wiki:
http://www.opengl.org/wiki/NPOT_Texture
Bottom line: "All newer hardware can handle NPOTs of any kind perfectly."
While i still had that white/black texture bug myself because of 3, 4 thing, i implemented the TQuadTexture class. It divides the texture into power of 2 texture parts. There's also 2 different loading options for textures:
toScale: Loads image into power of 2 texture, and scales to nearest match. For example 400x900 would round to 512x1024.
toFitScale: Loads image into power of 2 texture, and makes the size to current or higher match. This actually doesn't scale, but leaves black gaps on the outside area. Each texture has separately SizeX, SizeY, Width, Height, where Width/Height is the actual image size, and SizeX, SizeY is texture size. So nx drawing functions still know how to deal with them.
QuadTexture - Reserves near exactly the needed area from memory, pixel perfect.
toScale - May cause slight blurring, pixel perfect data is propably lost, memory efficient.
toFitScale - Keeps pixel perfection but reserves more memory than QuadTexture, propably not very usable on 3D-models.
(no option at all) - Pixel perfect, memory efficient non power of 2, if card supports it.
Bookmarks