mirror of https://github.com/xqemu/xqemu.git
vga: fix line comparison
Line counter doesn't wrap. Signed-off-by: malc <av1474@comtv.ru>
This commit is contained in:
parent
d1984194f3
commit
cae334cd6b
12
hw/vga.c
12
hw/vga.c
|
@ -1267,7 +1267,7 @@ static rgb_to_pixel_dup_func *rgb_to_pixel_dup_table[NB_DEPTHS] = {
|
||||||
static void vga_draw_text(VGACommonState *s, int full_update)
|
static void vga_draw_text(VGACommonState *s, int full_update)
|
||||||
{
|
{
|
||||||
int cx, cy, cheight, cw, ch, cattr, height, width, ch_attr;
|
int cx, cy, cheight, cw, ch, cattr, height, width, ch_attr;
|
||||||
int cx_min, cx_max, linesize, x_incr, line;
|
int cx_min, cx_max, linesize, x_incr, line, line1;
|
||||||
uint32_t offset, fgcol, bgcol, v, cursor_offset;
|
uint32_t offset, fgcol, bgcol, v, cursor_offset;
|
||||||
uint8_t *d1, *d, *src, *dest, *cursor_ptr;
|
uint8_t *d1, *d, *src, *dest, *cursor_ptr;
|
||||||
const uint8_t *font_ptr, *font_base[2];
|
const uint8_t *font_ptr, *font_base[2];
|
||||||
|
@ -1420,14 +1420,12 @@ static void vga_draw_text(VGACommonState *s, int full_update)
|
||||||
(cx_max - cx_min + 1) * cw, cheight);
|
(cx_max - cx_min + 1) * cw, cheight);
|
||||||
}
|
}
|
||||||
dest += linesize * cheight;
|
dest += linesize * cheight;
|
||||||
if (line >= s->line_compare) {
|
line1 = line + cheight;
|
||||||
line -= s->line_compare;
|
offset += line_offset;
|
||||||
|
if (line < s->line_compare && line1 >= s->line_compare) {
|
||||||
offset = 0;
|
offset = 0;
|
||||||
}
|
}
|
||||||
else {
|
line = line1;
|
||||||
offset += line_offset;
|
|
||||||
line += cheight;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue