- Fixed: The colormap changes by column, so the assembly rt_* routines need

to be setup for every column group, not once per image.


SVN r775 (trunk)
This commit is contained in:
Randy Heit 2008-02-28 22:15:24 +00:00
commit dc82a26c8a
4 changed files with 48 additions and 29 deletions

View file

@ -59,6 +59,12 @@ unsigned int dc_tspans[4][MAXHEIGHT];
unsigned int *dc_ctspan[4];
unsigned int *horizspan[4];
#ifdef USEASM
extern "C" void R_SetupShadedCol();
extern "C" void R_SetupAddCol();
extern "C" void R_SetupAddClampCol();
#endif
#ifndef USEASM
// Copies one span at hx to the screen at sx.
void rt_copy1col_c (int hx, int sx, int yl, int yh)
@ -844,6 +850,22 @@ void rt_draw4cols (int sx)
dc_ctspan[x][1] = screen->GetHeight();
}
#ifdef USEASM
// Setup assembly routines for changed colormaps or other parameters.
if (hcolfunc_post4 == rt_shaded4cols)
{
R_SetupShadedCol();
}
else if (hcolfunc_post4 == rt_addclamp4cols || hcolfunc_post4 == rt_tlateaddclamp4cols)
{
R_SetupAddClampCol();
}
else if (hcolfunc_post4 == rt_add4cols || hcolfunc_post4 == rt_tlateadd4cols)
{
R_SetupAddCol();
}
#endif
for (;;)
{
// If a column is out of spans, mark it as such