Palette sorting now automatically remaps the image, so its final appearance doesn't change.(issue 87)
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@722 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
756712b759
commit
cf16b72ae0
25
palette.c
25
palette.c
@ -1842,7 +1842,18 @@ void Button_Palette(void)
|
||||
byte h = 0, l = 0, s=0;
|
||||
byte oh=0,ol=0,os=0; // Valeur pour la couleur précédente
|
||||
int swap=1;
|
||||
|
||||
byte remap_table[256];
|
||||
byte inverted_table[256];
|
||||
|
||||
// Init remap table
|
||||
for (i=0;i<256;i++)
|
||||
remap_table[i]=i;
|
||||
// Make a backup because remapping is an undoable modification
|
||||
if (!image_is_backed_up)
|
||||
{
|
||||
Backup();
|
||||
image_is_backed_up=1;
|
||||
}
|
||||
while(swap==1)
|
||||
{
|
||||
swap=0;
|
||||
@ -1861,16 +1872,24 @@ void Button_Palette(void)
|
||||
&& (h<oh || (h==oh && l<ol)))) // Dans ce cas on décide avec chroma puis lumi
|
||||
{
|
||||
// On échange la couleur avec la précédente
|
||||
byte swap_color;
|
||||
Swap(0,temp_color,temp_color-1,1,working_palette,color_usage);
|
||||
|
||||
swap_color=remap_table[temp_color];
|
||||
remap_table[temp_color]=remap_table[temp_color-1];
|
||||
remap_table[temp_color-1]=swap_color;
|
||||
|
||||
swap=1;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i=0;i<256;i++)
|
||||
inverted_table[remap_table[i]]=i;
|
||||
Remap_image_highlevel(inverted_table);
|
||||
// Maintenant, tous ces calculs doivent êtres pris en compte dans la
|
||||
// palette, l'image et à l'écran.
|
||||
Set_palette(working_palette);
|
||||
|
||||
need_to_remp=1;
|
||||
}
|
||||
break;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user