PDA

View Full Version : textures



ticma
05-04-2003, 05:08 AM
I want to make a texture, but I want to load it from resource, using HBITMAP and BITMAP and not auxDIBImageLoad function. I did something like this, but it didn't work:
HBITMAP hBmp = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP));
BITMAP bmp;
GetObject(hBmp, sizeof(bmp), &bmp);

glTexImage2D(GL_TEXTURE_2D, 0, 3, bmp.Width, bmp.Height, 0, GL_RGB, GL_UNSIGNED_BYTE, bmp.BltBit);

shinpaughp
05-04-2003, 11:36 AM
There is a BITMAPINFO structure at the start of the data. If the bitmap has a color lookup table then it follows, and then the pixel data follows that. You pass the pixel data to the glTexImage function.

Something like this:




HRSRC Resource = (HRSRC)LoadResource(AfxGetInstanceHandle(), FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(id), MAKEINTRESOURCE(RT_BITMAP)));
unsigned char *data = (unsigned char*)LockResource(Resource);

BITMAPINFO* bmpInfo = (BITMAPINFO*)data;
colors = data + bmpInfo->bmiHeader.biSize;
pixels = colors + bmpInfo->bmiHeader.biClrUsed * sizeof(bmpInfo->bmiColors);
width = bmpInfo->bmiHeader.biWidth;
height = bmpInfo->bmiHeader.biHeight;