From dd34feee787f8380190a4d2a464aa78dd0761642 Mon Sep 17 00:00:00 2001 From: "p.kosyh" Date: Wed, 17 Feb 2010 17:48:38 +0000 Subject: [PATCH] bmp again --- src/sdl-instead/graphics.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/sdl-instead/graphics.c b/src/sdl-instead/graphics.c index 1d6814d..6d02dfc 100644 --- a/src/sdl-instead/graphics.c +++ b/src/sdl-instead/graphics.c @@ -555,7 +555,6 @@ img_t gfx_combine(img_t src, img_t dst) static img_t _gfx_load_image(char *filename) { SDL_Surface *img; - SDL_RWops *rwop; int nr = 0; if (strstr(filename,".gif") || strstr(filename,".GIF")) nr = AG_LoadGIF(filename, NULL, 0, NULL); @@ -572,17 +571,19 @@ static img_t _gfx_load_image(char *filename) anigif_add(agif); return agif->frames[0].surface; } - rwop = SDL_RWFromFile(filename, "rb"); - if (!rwop) + img = IMG_Load(filename); + if (!img) { return NULL; - img = IMG_Load_RW(rwop, 0); - if (!img) - goto out; - if (img->format->BitsPerPixel == 32 && - IMG_isBMP(rwop))/* hack for 32 bit BMP :( */ - SDL_SetAlpha(img, 0, SDL_ALPHA_OPAQUE); -out: - SDL_FreeRW(rwop); + } + if (img->format->BitsPerPixel == 32) { /* hack for 32 bit BMP :( */ + SDL_RWops *rwop; + rwop = SDL_RWFromFile(filename, "rb"); + if (rwop) { + if (IMG_isBMP(rwop)) + SDL_SetAlpha(img, SDL_RLEACCEL, SDL_ALPHA_OPAQUE); + SDL_FreeRW(rwop); + } + } return img; }