private static void render_line(int x0, int x1,int y0,int y1,float[] d)
{
int dy=y1-y0;
int adx=x1-x0;
int ady=Math.Abs(dy);
int bbase=dy/adx;
int sy=( (dy < 0) ? bbase-1 : bbase+1);
int x=x0;
int y=y0;
int err=0;
ady-=Math.Abs(bbase*adx);
d[x]*=FLOOR_fromdB_LOOKUP[y];
while(++x<x1)
{
err=err+ady;
if(err>=adx)
{
err-=adx;
y+=sy;
}
else
{
y+=bbase;
}
d[x]*=FLOOR_fromdB_LOOKUP[y];
}
}