Я пытаюсь показать некоторые текстуры в моей программе, и у меня есть этот код, который используется для загрузки растровых изображений в текстуры openGL:
void LoadGLTextures()
{
// Bitmap handle and structure
HBITMAP hBMP;
BITMAP BMP;
// Generate list of textures from resources
byte Texture[] = {IDB_FONT, IDB_SKIN, IDB_PIANO};
glGenTextures(sizeof(Texture), &texture[0]);
// Iterate through texture list and load bitmaps
for (int loop=0; loop<sizeof(Texture); loop++)
{
hBMP = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(Texture[loop]),
IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
if (hBMP)
{
GetObject(hBMP,sizeof(BMP), &BMP);
glPixelStorei(GL_UNPACK_ALIGNMENT,4);
glBindTexture(GL_TEXTURE_2D, texture[loop]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR);
// Generate Mipmapped Texture (3 Bytes, Width, Height And Data From The BMP)
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, BMP.bmWidth, BMP.bmHeight, GL_BGR_EXT, GL_UNSIGNED_BYTE, BMP.bmBits);
DeleteObject(hBMP);
}
}
И пока мой фоновый скин загружается и отображается правильно, другой(фортепиано) текстура не прорисовывается.Я уверен, что код рисования правильный, потому что когда я меняю, какая текстура используется (от пианино до фоновой текстуры, в данном случае), другая текстура рисуется.Поэтому я думаю, что растровое изображение загружается неправильно.Но я не уверен, почему?Есть ли что-то явно очевидное, что я упустил из виду?
Растровое изображение имеет 128 * 256 и 24-битный цвет.
Если вам нужен какой-либо другой код, пожалуйста, дайте мне знать.
edit - Если кто-нибудь знает какие-либо библиотеки, которые будут делать то, что мне нужно, пожалуйста, дайте мне знать