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,6 +3411,18 @@ static inline void queue_triangle(voodoo_t *voodoo, voodoo_params_t *params)
|
||||||
static void voodoo_fastfill(voodoo_t *voodoo, voodoo_params_t *params)
|
static void voodoo_fastfill(voodoo_t *voodoo, voodoo_params_t *params)
|
||||||
{
|
{
|
||||||
int y;
|
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)
|
if (params->fbzMode & FBZ_RGB_WMASK)
|
||||||
{
|
{
|
||||||
|
|
@ -3422,7 +3434,7 @@ static void voodoo_fastfill(voodoo_t *voodoo, voodoo_params_t *params)
|
||||||
b = (params->color1 >> 3) & 0x1f;
|
b = (params->color1 >> 3) & 0x1f;
|
||||||
col = b | (g << 5) | (r << 11);
|
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];
|
uint16_t *cbuf = (uint16_t *)&voodoo->fb_mem[(params->draw_offset + y*voodoo->row_width) & voodoo->fb_mask];
|
||||||
int x;
|
int x;
|
||||||
|
|
@ -3433,7 +3445,7 @@ static void voodoo_fastfill(voodoo_t *voodoo, voodoo_params_t *params)
|
||||||
}
|
}
|
||||||
if (params->fbzMode & FBZ_DEPTH_WMASK)
|
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];
|
uint16_t *abuf = (uint16_t *)&voodoo->fb_mem[(params->aux_offset + y*voodoo->row_width) & voodoo->fb_mask];
|
||||||
int x;
|
int x;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue