Voodoo fast fill command now affected by Y origin bit

This commit is contained in:
SarahW 2017-01-23 21:04:55 +00:00
commit 6d9624505d

View file

@ -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;