Voodoo fast fill command now affected by Y origin bit
This commit is contained in:
parent
f79d6ca3fe
commit
6d9624505d
1 changed files with 14 additions and 2 deletions
|
|
@ -3411,7 +3411,19 @@ static inline void queue_triangle(voodoo_t *voodoo, voodoo_params_t *params)
|
|||
static void voodoo_fastfill(voodoo_t *voodoo, voodoo_params_t *params)
|
||||
{
|
||||
int y;
|
||||
int low_y, high_y;
|
||||
|
||||
if (params->fbzMode & (1 << 17))
|
||||
{
|
||||
high_y = voodoo->v_disp - params->clipLowY;
|
||||
low_y = voodoo->v_disp - params->clipHighY;
|
||||
}
|
||||
else
|
||||
{
|
||||
low_y = params->clipLowY;
|
||||
high_y = params->clipHighY;
|
||||
}
|
||||
|
||||
if (params->fbzMode & FBZ_RGB_WMASK)
|
||||
{
|
||||
int r, g, b;
|
||||
|
|
@ -3422,7 +3434,7 @@ static void voodoo_fastfill(voodoo_t *voodoo, voodoo_params_t *params)
|
|||
b = (params->color1 >> 3) & 0x1f;
|
||||
col = b | (g << 5) | (r << 11);
|
||||
|
||||
for (y = params->clipLowY; y < params->clipHighY; y++)
|
||||
for (y = low_y; y < high_y; y++)
|
||||
{
|
||||
uint16_t *cbuf = (uint16_t *)&voodoo->fb_mem[(params->draw_offset + y*voodoo->row_width) & voodoo->fb_mask];
|
||||
int x;
|
||||
|
|
@ -3433,7 +3445,7 @@ static void voodoo_fastfill(voodoo_t *voodoo, voodoo_params_t *params)
|
|||
}
|
||||
if (params->fbzMode & FBZ_DEPTH_WMASK)
|
||||
{
|
||||
for (y = params->clipLowY; y < params->clipHighY; y++)
|
||||
for (y = low_y; y < high_y; y++)
|
||||
{
|
||||
uint16_t *abuf = (uint16_t *)&voodoo->fb_mem[(params->aux_offset + y*voodoo->row_width) & voodoo->fb_mask];
|
||||
int x;
|
||||
|
|
|
|||
Loading…
Reference in a new issue