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;
}