added function to create blend tables

This commit is contained in:
Bradley Bell 2004-05-12 22:06:02 +00:00
parent a13e9cb4af
commit 230a4aefcc
3 changed files with 25 additions and 2 deletions

View file

@ -1,4 +1,4 @@
/* $Id: palette.c,v 1.10 2003-06-10 17:50:50 btb Exp $ */ /* $Id: palette.c,v 1.11 2004-05-12 22:06:02 btb Exp $ */
/* /*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -402,3 +402,22 @@ void gr_make_cthru_table(ubyte * table, ubyte r, ubyte g, ubyte b )
} }
} }
void gr_make_blend_table(ubyte *blend_table, ubyte r, ubyte g, ubyte b)
{
int i, j;
float alpha;
ubyte r1, g1, b1;
for (j = 0; j < GR_FADE_LEVELS; j++)
{
alpha = 1.0 - (float)j / ((float)GR_FADE_LEVELS - 1);
for (i = 0; i < 255; i++)
{
r1 = (ubyte)((1.0 - alpha) * (float)gr_palette[i * 3 + 0] + (alpha * (float)r));
g1 = (ubyte)((1.0 - alpha) * (float)gr_palette[i * 3 + 1] + (alpha * (float)g));
b1 = (ubyte)((1.0 - alpha) * (float)gr_palette[i * 3 + 2] + (alpha * (float)b));
blend_table[i + j * 256] = gr_find_closest_color(r1, g1, b1);
}
blend_table[i + j * 256] = 255; // leave white alone
}
}

View file

@ -1,5 +1,8 @@
2004-05-12 Bradley Bell <btb@icculus.org> 2004-05-12 Bradley Bell <btb@icculus.org>
* 2d/palette.c, include/palette.h: added function to create blend
tables
* maths/rand.c, maths/tables.c, maths/vecmat.c: formatting * maths/rand.c, maths/tables.c, maths/vecmat.c: formatting
2004-05-11 Bradley Bell <btb@icculus.org> 2004-05-11 Bradley Bell <btb@icculus.org>

View file

@ -1,4 +1,4 @@
/* $Id: palette.h,v 1.3 2002-10-11 03:37:58 btb Exp $ */ /* $Id: palette.h,v 1.4 2004-05-12 22:06:02 btb Exp $ */
/* /*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -67,6 +67,7 @@ extern int gr_palette_fade_out(ubyte *pal, int nsteps, int allow_keys );
extern int gr_palette_fade_in(ubyte *pal,int nsteps, int allow_keys ); extern int gr_palette_fade_in(ubyte *pal,int nsteps, int allow_keys );
extern void gr_palette_load( ubyte * pal ); extern void gr_palette_load( ubyte * pal );
extern void gr_make_cthru_table(ubyte * table, ubyte r, ubyte g, ubyte b ); extern void gr_make_cthru_table(ubyte * table, ubyte r, ubyte g, ubyte b );
extern void gr_make_blend_table(ubyte *blend_table, ubyte r, ubyte g, ubyte b);
extern int gr_find_closest_color_current( int r, int g, int b ); extern int gr_find_closest_color_current( int r, int g, int b );
extern void gr_palette_read(ubyte * palette); extern void gr_palette_read(ubyte * palette);
extern void init_computed_colors(void); extern void init_computed_colors(void);