|
|
发表于 2006-4-28 17:05:00
|
显示全部楼层
Re:如何读取资源中的bmp位图给物体贴图阿?
BYTE* gltResourceBMPBits(UINT nResource, int *nWidth, int *nHeight)
{
HINSTANCE hInstance; // Instance Handle
HANDLE hBitmap; // Handle to bitmap resource
BITMAPINFO bmInfo;
BYTE *pData;
// Find the bitmap resource
hInstance = GetModuleHandle(NULL);
hBitmap = LoadBitmap(hInstance,MAKEINTRESOURCE(nResource));
if(hBitmap == NULL)
return NULL;
GetObject(hBitmap,sizeof(BITMAPINFO),&bmInfo);
DeleteObject(hBitmap);
hBitmap = LoadResource(hInstance,
FindResource(hInstance,MAKEINTRESOURCE(nResource), RT_BITMAP));
if(hBitmap == NULL)
return NULL;
pData = (BYTE *)LockResource(hBitmap);
pData += sizeof(BITMAPINFO)-1;
*nWidth = bmInfo.bmiHeader.biWidth; //bm.bmWidth;
*nHeight = bmInfo.bmiHeader.biHeight;//bm.bmHeight;
return pData;
}
//nResource为bmp位图的ID号,nWidth, nHeight分别取得位图的长和宽
//然后调用 glTexImage2D(GL_TEXTURE_2D,0,GL_RGB8,nWidth, nHeight, 0,
GL_BGR_EXT, GL_UNSIGNED_BYTE, pBytes);
//制成纹理,其中 pBytes为上面函数返回的pData.
|
|