Optimize svga_render_blank

This commit is contained in:
Adrien Moulin
2022-08-08 23:55:58 +02:00
parent e2e14cf31f
commit 4cb84a3a80

View File

@@ -43,35 +43,29 @@ svga_render_null(svga_t *svga)
void
svga_render_blank(svga_t *svga)
{
int x, xx;
if ((svga->displine + svga->y_add) < 0)
return;
return;
if (svga->firstline_draw == 2000)
svga->firstline_draw = svga->displine;
svga->firstline_draw = svga->displine;
svga->lastline_draw = svga->displine;
for (x = 0; x < (svga->hdisp + svga->scrollcache); x++) {
switch (svga->seqregs[1] & 9) {
case 0:
for (xx = 0; xx < 9; xx++)
buffer32->line[svga->displine + svga->y_add][svga->x_add + (x * 9) + xx] = 0x00000000;
break;
case 1:
for (xx = 0; xx < 8; xx++)
buffer32->line[svga->displine + svga->y_add][svga->x_add + (x * 8) + xx] = 0x00000000;
break;
case 8:
for (xx = 0; xx < 18; xx++)
buffer32->line[svga->displine + svga->y_add][svga->x_add + (x * 18) + xx] = 0x00000000;
break;
case 9:
for (xx = 0; xx < 16; xx++)
buffer32->line[svga->displine + svga->y_add][svga->x_add + (x * 16) + xx] = 0x00000000;
break;
}
uint32_t char_width = 0;
switch (svga->seqregs[1] & 9) {
case 0:
char_width = 9;
case 1:
char_width = 8;
case 8:
char_width = 18;
case 9:
char_width = 16;
}
uint32_t *line_ptr = &buffer32->line[svga->displine + svga->y_add][svga->x_add];
uint32_t line_width = (svga->hdisp + svga->scrollcache) * char_width * sizeof(uint32_t);
memset(line_ptr, 0, line_width);
}