Все,Как загрузить bmp в массив GLubyte?
Я пытаюсь загрузить файл 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 или нет - немного запутано).
На данный момент я конвертирую bmps в raw, тогда все легко.
У кого-нибудь есть лучший и более чистый фрагмент?
Спасибо за ваши замечания по LoadImage - я знаю, как открыть файл с помощью ifstream - я как бы надеялся, что найду фрагмент вместо того, чтобы идти туда и выяснить с нуля, как читать байты по-байтам (я даже думаю Я уже делал это smt как N лет назад), поскольку это звучит как общая задача. – JohnIdol 2008-11-29 21:44:39