Reverted the icon-loading code to SDL_image, using more solid code to handle both 8bit and hi-color icons

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1248 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2010-01-15 02:40:32 +00:00
parent 84ac0df49c
commit e351605a24

20
main.c
View File

@ -509,22 +509,32 @@ int Init_program(int argc,char * argv[])
char icon_path[MAX_PATH_CHARACTERS];
SDL_Surface * icon;
sprintf(icon_path, "%s%s", Data_directory, "gfx2.gif");
icon = Load_surface(icon_path);
if (icon)
icon = IMG_Load(icon_path);
if (icon && icon->w == 32 && icon->h == 32)
{
Uint32 pink;
pink = SDL_MapRGB(icon->format, 255, 0, 255);
if (icon->format->BitsPerPixel == 8)
{
SDL_SetColorKey(icon, SDL_SRCCOLORKEY, pink);
SDL_WM_SetIcon(icon,NULL);
}
else
{
byte *icon_mask;
int x,y;
Uint32 pink;
pink = SDL_MapRGB(icon->format, 255, 0, 255);
icon_mask=malloc(128);
memset(icon_mask,0,128);
for (y=0;y<32;y++)
for (x=0;x<32;x++)
if (((byte *)(icon->pixels))[(y*32+x)] != pink)
if (Get_SDL_pixel_hicolor(icon, x, y) != pink)
icon_mask[(y*32+x)/8] |=0x80>>(x&7);
SDL_WM_SetIcon(icon,icon_mask);
free(icon_mask);
}
SDL_FreeSurface(icon);
}
}