Cirrus: Fixed redraw issue caused by misaligned bitblt region.
If x0 + width exceeds the screen width, mark tile(s) on the left side of the screen, too. This should finally fix issue #221.
This commit is contained in:
parent
c66d6f1a0e
commit
6770a355ae
@ -451,6 +451,9 @@ void bx_svga_cirrus_c::redraw_area(unsigned x0, unsigned y0, unsigned width,
|
||||
} else {
|
||||
yt1 = (BX_CIRRUS_THIS svga_yres - 1) / Y_TILESIZE;
|
||||
}
|
||||
if ((x0 + width) > svga_xres) {
|
||||
BX_CIRRUS_THIS redraw_area(0, y0 + 1, width, height);
|
||||
}
|
||||
for (yti=yt0; yti<=yt1; yti++) {
|
||||
for (xti=xt0; xti<=xt1; xti++) {
|
||||
SET_TILE_UPDATED(BX_CIRRUS_THIS, xti, yti, 1);
|
||||
|
Loading…
Reference in New Issue
Block a user