全部,
我正在尝试将 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 那么这一切都很容易。
有人有更好更干净的片段吗?