• Advertisement
Sign in to follow this  

linux 64 loadBMP in tutorials

This topic is 2367 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
Advertisement
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.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement