Original Post
I have been having some difficulty with a bmp loading fucntion i am trying to write using only c++. Here is the code for my function. The call is made like this bitmapData=LoadBitmapFile("pic.bmp",&bitmapInfoHeader); I know the problem is not with displaying te texture as I have got the texture to display properly using someone elses function. DS [Edited by - darksteel on November 5, 2004 8:10:05 AM]
unsigned char *LoadBitmapFile(char *filename, BITMAPINFOHEADER *bitmapInfoHeader)
{
fstream File;
BITMAPFILEHEADER bitmapFileHeader;
int imageIdx = 0;
unsigned char tempRGB;
File.open(filename, ios::in|ios::binary);
if(File.is_open())
{
File.read((char*)&bitmapFileHeader, sizeof(BITMAPFILEHEADER));
if (bitmapFileHeader.bfType != BITMAP_ID)
{
File.close();
return 0;
}
File.seekg(bitmapFileHeader.bfOffBits, ios::beg);
bitmapImage = new paul [bitmapInfoHeader->biSizeImage];
if (!bitmapImage)
{
delete[] bitmapImage;
File.close();
return 0;
}
File.read((char*)bitmapImage,bitmapInfoHeader->biSizeImage);
if(bitmapImage==NULL)
{
File.close();
return 0;
}
for (imageIdx = 0; imageIdx < bitmapInfoHeader->biSizeImage; imageIdx+=3)
{
tempRGB = bitmapImage[imageIdx];
bitmapImage[imageIdx] = bitmapImage[imageIdx + 2];
bitmapImage[imageIdx + 2] = tempRGB;
}
File.close();
}
else
{
return 0;
}
return bitmapImage;
}