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:
		
							parent
							
								
									84ac0df49c
								
							
						
					
					
						commit
						e351605a24
					
				
							
								
								
									
										36
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								main.c
									
									
									
									
									
								
							@ -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)
 | 
			
		||||
    {
 | 
			
		||||
      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)
 | 
			
		||||
            icon_mask[(y*32+x)/8] |=0x80>>(x&7);
 | 
			
		||||
      SDL_WM_SetIcon(icon,icon_mask);
 | 
			
		||||
      free(icon_mask);
 | 
			
		||||
      
 | 
			
		||||
      if (icon->format->BitsPerPixel == 8)
 | 
			
		||||
      {
 | 
			
		||||
        SDL_SetColorKey(icon, SDL_SRCCOLORKEY, pink);
 | 
			
		||||
        SDL_WM_SetIcon(icon,NULL);
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
        byte *icon_mask;
 | 
			
		||||
        int x,y;
 | 
			
		||||
        
 | 
			
		||||
        icon_mask=malloc(128);
 | 
			
		||||
        memset(icon_mask,0,128);
 | 
			
		||||
        for (y=0;y<32;y++)
 | 
			
		||||
          for (x=0;x<32;x++)
 | 
			
		||||
            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);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user