Current_layer_count_used_colors() for use with Save_xxx functions
This commit is contained in:
parent
9ed89cc860
commit
28a20734d9
@ -373,7 +373,7 @@ void Save_SGX(T_IO_Context * context)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
File_error = 1;
|
File_error = 1;
|
||||||
n_colors = Count_used_colors(color_usage);
|
n_colors = Current_layer_count_used_colors(context, color_usage);
|
||||||
for (i = 16; i < 256; i++)
|
for (i = 16; i < 256; i++)
|
||||||
{
|
{
|
||||||
if (color_usage[i] != 0)
|
if (color_usage[i] != 0)
|
||||||
|
|||||||
@ -324,3 +324,27 @@ void Palette_64_to_256(T_Palette palette)
|
|||||||
palette[i].B = (palette[i].B << 2)|(palette[i].B >> 4);
|
palette[i].B = (palette[i].B << 2)|(palette[i].B >> 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
word Current_layer_count_used_colors(T_IO_Context *context, dword *usage)
|
||||||
|
{
|
||||||
|
dword nb_colors = 0;
|
||||||
|
int i;
|
||||||
|
word x, y;
|
||||||
|
|
||||||
|
for (i = 0; i < 256; i++) usage[i] = 0;
|
||||||
|
|
||||||
|
for (y = 0; y < context->Height; y++)
|
||||||
|
{
|
||||||
|
for (x = 0; x < context->Width; x++)
|
||||||
|
usage[Get_pixel(context, x, y)]++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// count the total number of unique used colors
|
||||||
|
for (i = 0; i < 256; i++)
|
||||||
|
{
|
||||||
|
if (usage[i] != 0)
|
||||||
|
nb_colors++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return nb_colors;
|
||||||
|
}
|
||||||
|
|||||||
@ -45,4 +45,6 @@ FILE * Open_file_write_with_alternate_ext(T_IO_Context *context, const char * ex
|
|||||||
void Palette_256_to_64(T_Palette palette);
|
void Palette_256_to_64(T_Palette palette);
|
||||||
void Palette_64_to_256(T_Palette palette);
|
void Palette_64_to_256(T_Palette palette);
|
||||||
|
|
||||||
|
word Current_layer_count_used_colors(T_IO_Context *context, dword *usage);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user