hw/display/artist: Fix invalidation of lines in artist_draw_line()

The old code didn't invalidate correctly when vertical lines were drawn.
Fix this and move the invalidation out of the loop.

Signed-off-by: Sven Schnelle <svens@stackframe.org>
Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
Sven Schnelle 2020-08-08 21:56:29 +02:00 committed by Helge Deller
parent e0cf02ce68
commit f9e9f71490
1 changed files with 4 additions and 1 deletions

View File

@ -662,7 +662,6 @@ static void draw_line(ARTISTState *s,
}
if (e > 0) {
artist_invalidate_lines(buf, y, 1);
y += incy;
e += diago;
} else {
@ -670,6 +669,10 @@ 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);
else
artist_invalidate_lines(buf, y, dx+1);
}
static void draw_line_pattern_start(ARTISTState *s)