您的位置:首页 > 运维架构

window下使用位图作为opengl纹理

2011-06-12 15:03 477 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: