Fixed bug 1943 - Wrong handling of legacy 32bpp BMP files
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).
This commit is contained in:
parent
30553ceb5b
commit
274d4eeec2
1 changed files with 1 additions and 1 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue