About getting black textures when trying to deal with non-POT stuff, I had the same problem until I began to include this in my texture loading code:
Code:
glPixelStorei(GL_UNPACK_ALIGNMENT,1);