All
Я пытаюсь загрузить bmp-файл в массив GLubyte (без использования aux).
Невероятно, как то, что я думал, было бы тривиальной задачей, отнимать часы моего времени.
Не могу найти что-нибудь в Google!
Это то, что я взломал вместе, но это не совсем работает:
// load texture
GLubyte *customTexture;
string fileName("C:\\Development\\Visual Studio 2008\\Projects\\OpenGL_Test\\Crate.bmp");
// Use LoadImage() to get the image loaded into a DIBSection
HBITMAP hBitmap = (HBITMAP)LoadImage( NULL, (LPCTSTR)const_cast<char*>(fileName.c_str()), IMAGE_BITMAP, 0, 0,
LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE );
customTexture = new GLubyte[3*256*256]; // size should be the size of the .bmp file
GetBitmapBits(hBitmap, 3*256*256, (LPVOID) customTexture);
GetBitmapDimensionEx(hBitmap,&szBitmap);
Что происходит, если вызов LoadImage, похоже, возвращает неопределенное значение (NULL? Я не могу понять, действительно ли он загружает BMP или нет - немного запутался).
В настоящее время я конвертирую bmp в raw, тогда все просто.
У кого-нибудь есть лучше и чище фрагмент?