HBITMAP hbmp = (HBITMAP)LoadImage(GetModuleHandle(NULL), Filename, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE);
if (!hbmp)
return 0;
GLunit texture;
GetObject(hbmp, sizeof(bm), &bm);
Status=TRUE; // Set The Status To TRUE
glGenTextures(1, &texture); // Create The Texture
// Typical Texture Generation Using Data From The Bitmap
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, 0, 3, bm.bmWidth, bm.bmHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, bm.bmBits);
//GL_BGR_EXT很重要,因为位图数据从低位到高位依次为RED, GREEN, BLUE, 若使用GL_RGB就会出现颜色不对的现象。
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
DeleteObject(hbmp);