forked from Lephenixnoir/Azur
added a working line shader
This commit is contained in:
parent
8b5ff08fb0
commit
0d014a542a
|
@ -44,7 +44,7 @@ int ABS( int x1 )
|
|||
int SGN( int x1 )
|
||||
{
|
||||
if (x1 > 0) return 1;
|
||||
else if (x1 = 0) return 0;
|
||||
else if (x1 == 0) return 0;
|
||||
else return -1;
|
||||
}
|
||||
|
||||
|
@ -90,7 +90,7 @@ void azrp_line(int xA, int yA, int xB, int yB, int color)
|
|||
cmd.dy = ABS(y2-y1);
|
||||
cmd.sy = SGN(y2-y1);
|
||||
|
||||
cmd.i = 1;
|
||||
cmd.i = 0;
|
||||
cmd.cumul = (cmd.dx >= cmd.dy) ? cmd.dx >> 1 : cmd.dy >> 1;
|
||||
|
||||
azrp_queue_command(&cmd, sizeof cmd, frag_first, frag_count);
|
||||
|
@ -108,15 +108,27 @@ void azrp_shader_line( void *uniforms, void *comnd, void *fragment )
|
|||
|
||||
if (cmd->dy == 0)
|
||||
{
|
||||
for( i = cmd->i; i < cmd->dx-1 ; i++ )
|
||||
for( i = cmd->i; i < cmd->dx ; i++ )
|
||||
{
|
||||
cmd->curr_x += cmd->sx;
|
||||
frag[ azrp_width * cmd->curr_y + cmd->curr_x ] = cmd->color;
|
||||
}
|
||||
}
|
||||
else if (cmd->dx == 0)
|
||||
{
|
||||
for( i = cmd->i; i < cmd->dy ; i++ )
|
||||
{
|
||||
cmd->curr_y += cmd->sy;
|
||||
|
||||
// if curr_y=16, this means we are changing to next fragment
|
||||
if (cmd->curr_y == azrp_frag_height) break;
|
||||
|
||||
frag[ azrp_width * cmd->curr_y + cmd->curr_x ] = cmd->color;
|
||||
}
|
||||
}
|
||||
else if (cmd->dx >= cmd->dy)
|
||||
{
|
||||
for( i = cmd->i; i < cmd->dx-1; i++ )
|
||||
for( i = cmd->i; i < cmd->dx; i++ )
|
||||
{
|
||||
cmd->curr_x += cmd->sx;
|
||||
cmd->cumul += cmd->dy;
|
||||
|
@ -133,7 +145,7 @@ void azrp_shader_line( void *uniforms, void *comnd, void *fragment )
|
|||
}
|
||||
else
|
||||
{
|
||||
for( i = cmd->i; i < cmd->dy-1; i++ )
|
||||
for( i = cmd->i; i < cmd->dy; i++ )
|
||||
{
|
||||
cmd->curr_y += cmd->sy;
|
||||
cmd->cumul += cmd->dx;
|
||||
|
@ -150,7 +162,7 @@ void azrp_shader_line( void *uniforms, void *comnd, void *fragment )
|
|||
}
|
||||
}
|
||||
|
||||
cmd->curr_y &= 15;
|
||||
cmd->curr_y = cmd->curr_y & 15;
|
||||
|
||||
cmd->i = i;
|
||||
cmd->i = i+1;
|
||||
}
|
Loading…
Reference in New Issue