I\'m learning OpenGL in C++ using NeHe tutorials, but I\'m trying to do them with FreeImage library, instead of Glaux or SOIL. The good point I see in using FreeImage is thar it
There are two problems with your code - one is that you are converting to image to 32 bits but you specify a 24 bit texture format to openGL (GL_RGB
). The second is that you are passing the FreeImage object itself to the texture rather than the converted bits.
You need to do something like this instead
FIBITMAP *pImage = FreeImage_ConvertTo32Bits(bitmap);
int nWidth = FreeImage_GetWidth(pImage);
int nHeight = FreeImage_GetHeight(pImage);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, nWidth, nHeight,
0, GL_BGRA, GL_UNSIGNED_BYTE, (void*)FreeImage_GetBits(pImage));
FreeImage_Unload(pImage);