mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Fix console margin not having color of nearest neighbour.
This commit is contained in:
parent
ac6f016748
commit
3501b1e701
1 changed files with 26 additions and 6 deletions
|
@ -227,6 +227,27 @@ void LFBTextBuffer::RenderChar(TextChar textchar, size_t posx, size_t posy)
|
||||||
if ( 0xB0 <= remap && remap <= 0xDF && (linebitmap & 1) )
|
if ( 0xB0 <= remap && remap <= 0xDF && (linebitmap & 1) )
|
||||||
lastcolor = fgcolor;
|
lastcolor = fgcolor;
|
||||||
line[pixelxoff + VGA_FONT_WIDTH] = lastcolor;
|
line[pixelxoff + VGA_FONT_WIDTH] = lastcolor;
|
||||||
|
if ( unlikely(posx + 1 == columns) )
|
||||||
|
{
|
||||||
|
for ( size_t x = pixelxoff + VGA_FONT_WIDTH + 1; x < pixelsx; x++ )
|
||||||
|
line[x] = bgcolor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( unlikely(posy + 1 == rows) )
|
||||||
|
{
|
||||||
|
size_t pixelyoff = rows * VGA_FONT_HEIGHT;
|
||||||
|
for ( size_t y = pixelyoff; y < pixelsy; y++ )
|
||||||
|
{
|
||||||
|
uint32_t* line = (uint32_t*) (lfb + y * scansize);
|
||||||
|
size_t pixelxoff = posx * (VGA_FONT_WIDTH+1);
|
||||||
|
for ( size_t x = 0; x < VGA_FONT_WIDTH + 1; x++ )
|
||||||
|
line[pixelxoff + x] = bgcolor;
|
||||||
|
if ( unlikely(posx + 1 == columns) )
|
||||||
|
{
|
||||||
|
for ( size_t x = pixelxoff + VGA_FONT_WIDTH + 1; x < pixelsx; x++ )
|
||||||
|
line[x] = bgcolor;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ( likely(!drawcursor) )
|
if ( likely(!drawcursor) )
|
||||||
return;
|
return;
|
||||||
|
@ -279,15 +300,14 @@ void LFBTextBuffer::RenderRange(TextPos from, TextPos to)
|
||||||
if ( backbuffered )
|
if ( backbuffered )
|
||||||
{
|
{
|
||||||
lfb = orig_lfb;
|
lfb = orig_lfb;
|
||||||
size_t font_height = 16;
|
size_t scanline_start = from.y * VGA_FONT_HEIGHT;
|
||||||
size_t font_width = 9;
|
size_t scanline_end = ((to.y+1) * VGA_FONT_HEIGHT) - 1;
|
||||||
size_t scanline_start = from.y * font_height;
|
if ( to.y + 1 == rows )
|
||||||
size_t scanline_end = ((to.y+1) * font_height) - 1;
|
scanline_end = pixelsy - 1;
|
||||||
size_t linesize = font_width * sizeof(uint32_t) * columns;
|
|
||||||
for ( size_t sc = scanline_start; sc <= scanline_end; sc++ )
|
for ( size_t sc = scanline_start; sc <= scanline_end; sc++ )
|
||||||
{
|
{
|
||||||
size_t offset = sc * scansize;
|
size_t offset = sc * scansize;
|
||||||
memcpy(lfb + offset, backbuf + offset, linesize);
|
memcpy(lfb + offset, backbuf + offset, pixelsx * sizeof(uint32_t));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue