Skip to main content
GameDev.net gamedev.net
🔒 Locked

linux 64 loadBMP in tutorials

Started by index_0x0000 Aug 2, 2011 at 10:52 AM 0 replies 3.6k views
Original Post
index_0x0000
index_0x0000
First of all I want to thank about these fine openGL tutorials. Thanks! : )
I'm using 32 and 64 bit linux machines to compile ( Linux/GLX Code ). I faced with problem in loadBMP function on linux64. To be short the problem is in the following line ( starting from lesson06 ):
long int bfOffBits; and later in the function if (!fread(&bfOffBits, sizeof(long int), 1, file))

it's better to replace it with
int bfOffBits;
...
if (!fread(&bfOffBits, sizeof(bfOffBits), 1, file))

because:
linux32: sizeof( long int ) == 4
linux64: sizeof( long int ) == 8
and BMP file format assumes the field size ( File offset to Pixel Array ) to be 4 bytes.

Please correct me if I'm wrong.
Best regards.
rip-off
rip-off
From a quick Google, the type should be unsigned to start with.

It is better to replace it with a type that will always be 4 bytes, as there is no guarantee that an "unsigned int" will be this size. An example would be something like uint32_t.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.