浏览代码

Make SDL_LoadBMP() work with 32-bit bitmaps from ImageMagick.

Ryan C. Gordon 11 年之前
父节点
当前提交
a91f1a1adc
共有 1 个文件被更改,包括 10 次插入0 次删除
  1. 10 0
      src/video/SDL_bmp.c

+ 10 - 0
src/video/SDL_bmp.c

@@ -246,6 +246,16 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc)
             Gmask = SDL_ReadLE32(src);
             Bmask = SDL_ReadLE32(src);
             Amask = SDL_ReadLE32(src);
+
+            /* ImageMagick seems to put out bogus masks here. Pick a default. */
+            if ((Rmask == 0xFFFFFF) && (Gmask == 0xFFFFFF) &&
+                (Bmask == 0xFFFFFF) && (Amask == 0xFFFFFF) ) {
+                Amask = 0xFF000000;
+                Rmask = 0x00FF0000;
+                Gmask = 0x0000FF00;
+                Bmask = 0x000000FF;
+            }
+
             break;
         default:
             break;