Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Fixed bug 1943 - Wrong handling of legacy 32bpp BMP files
Browse files Browse the repository at this point in the history
Kang Seonghoon

While BMP format supports alpha channel, it is enabled only when the header is at least 56 bytes long (BITMAPV3INFOHEADER and later). For very common 40-byte-long header (BITMAPINFOHEADER) 32bpp format should be interpreted as BGRX format, but currently SDL interprets them as BGRA format and causes a significant compatibility problem as many 32bpp files use a padding byte of 0 ("transparent" in BGRA interpretation).
  • Loading branch information
slouken committed Jul 7, 2013
1 parent d595661 commit de38df7
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/video/SDL_bmp.c
Expand Up @@ -182,7 +182,7 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc)
#endif
break;
case 32:
Amask = 0xFF000000;
Amask = (biSize < 56 ? 0 : 0xFF000000); /* no alpha before BITMAPV3INFOHEADER */
Rmask = 0x00FF0000;
Gmask = 0x0000FF00;
Bmask = 0x000000FF;
Expand Down

0 comments on commit de38df7

Please sign in to comment.