Fixed Voodoo 3D rendering.
This commit is contained in:
@@ -525,7 +525,7 @@ void voodoo_callback(void *p)
|
|||||||
|
|
||||||
if (draw_voodoo->dirty_line[draw_line])
|
if (draw_voodoo->dirty_line[draw_line])
|
||||||
{
|
{
|
||||||
uint32_t *p = &((uint32_t *)buffer32->line[voodoo->line])[32];
|
uint32_t *p = &buffer32->line[voodoo->line + 8][8];
|
||||||
uint16_t *src = (uint16_t *)&draw_voodoo->fb_mem[draw_voodoo->front_offset + draw_line*draw_voodoo->row_width];
|
uint16_t *src = (uint16_t *)&draw_voodoo->fb_mem[draw_voodoo->front_offset + draw_line*draw_voodoo->row_width];
|
||||||
int x;
|
int x;
|
||||||
|
|
||||||
@@ -539,6 +539,10 @@ void voodoo_callback(void *p)
|
|||||||
if (voodoo->line > voodoo->dirty_line_high)
|
if (voodoo->line > voodoo->dirty_line_high)
|
||||||
voodoo->dirty_line_high = voodoo->line;
|
voodoo->dirty_line_high = voodoo->line;
|
||||||
|
|
||||||
|
/* Draw left overscan. */
|
||||||
|
for (x = 0; x < 8; x++)
|
||||||
|
buffer32->line[voodoo->line + 8][x] = 0x00000000;
|
||||||
|
|
||||||
if (voodoo->scrfilter && voodoo->scrfilterEnabled)
|
if (voodoo->scrfilter && voodoo->scrfilterEnabled)
|
||||||
{
|
{
|
||||||
uint8_t fil[(voodoo->h_disp) * 3]; /* interleaved 24-bit RGB */
|
uint8_t fil[(voodoo->h_disp) * 3]; /* interleaved 24-bit RGB */
|
||||||
@@ -560,6 +564,10 @@ void voodoo_callback(void *p)
|
|||||||
p[x] = draw_voodoo->video_16to32[src[x]];
|
p[x] = draw_voodoo->video_16to32[src[x]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Draw right overscan. */
|
||||||
|
for (x = 0; x < 8; x++)
|
||||||
|
buffer32->line[voodoo->line + 8][voodoo->h_disp + x + 8] = 0x00000000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user