From d449eee3af37937f788c02ad88f2caa8bbfb19aa Mon Sep 17 00:00:00 2001 From: Sven Schnelle Date: Sun, 23 Jan 2022 16:47:47 +0100 Subject: [PATCH] hw/display/artist: Fix draw_line() artefacts The draw_line() function left artefacts on the screen because it was using the x/y variables which were incremented in the loop before. Fix it by using the unmodified x1/x2 variables instead. Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller Cc: qemu-stable@nongnu.org Signed-off-by: Helge Deller --- hw/display/artist.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/display/artist.c b/hw/display/artist.c index 8a9fa482d0..1d877998b9 100644 --- a/hw/display/artist.c +++ b/hw/display/artist.c @@ -553,10 +553,11 @@ static void draw_line(ARTISTState *s, } x++; } while (x <= x2 && (max_pix == -1 || --max_pix > 0)); + if (c1) - artist_invalidate_lines(buf, x, dy+1); + artist_invalidate_lines(buf, x1, x2 - x1); else - artist_invalidate_lines(buf, y, dx+1); + artist_invalidate_lines(buf, y1 > y2 ? y2 : y1, x2 - x1); } static void draw_line_pattern_start(ARTISTState *s)