Fixed screen flickering in case the hardware cursor is enabled in 3D mode.
This commit is contained in:
parent
d0936f618b
commit
91bad8e4b2
@ -340,7 +340,7 @@ void bx_banshee_c::draw_hwcursor(unsigned xc, unsigned yc, bx_svga_tileinfo_t *i
|
|||||||
unsigned cx, cy, cw, ch, px, py, w, h, x, y;
|
unsigned cx, cy, cw, ch, px, py, w, h, x, y;
|
||||||
Bit8u *cpat0, *cpat1, *tile_ptr, *tile_ptr2, *vid_ptr;
|
Bit8u *cpat0, *cpat1, *tile_ptr, *tile_ptr2, *vid_ptr;
|
||||||
Bit8u ccode, pbits, pval0, pval1;
|
Bit8u ccode, pbits, pval0, pval1;
|
||||||
Bit32u colour = 0;
|
Bit32u colour = 0, start;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if ((xc <= v->banshee.hwcursor.x) &&
|
if ((xc <= v->banshee.hwcursor.x) &&
|
||||||
@ -348,7 +348,11 @@ void bx_banshee_c::draw_hwcursor(unsigned xc, unsigned yc, bx_svga_tileinfo_t *i
|
|||||||
(yc <= v->banshee.hwcursor.y) &&
|
(yc <= v->banshee.hwcursor.y) &&
|
||||||
((int)(yc + Y_TILESIZE) > (v->banshee.hwcursor.y - 63))) {
|
((int)(yc + Y_TILESIZE) > (v->banshee.hwcursor.y - 63))) {
|
||||||
|
|
||||||
Bit32u start = v->banshee.io[io_vidDesktopStartAddr];
|
if ((v->banshee.io[io_vidProcCfg] & 0x181) == 0x81) {
|
||||||
|
start = v->banshee.io[io_vidDesktopStartAddr];
|
||||||
|
} else {
|
||||||
|
start = v->fbi.rgboffs[v->fbi.frontbuf];
|
||||||
|
}
|
||||||
Bit8u *disp_ptr = &v->fbi.ram[start & v->fbi.mask];
|
Bit8u *disp_ptr = &v->fbi.ram[start & v->fbi.mask];
|
||||||
Bit16u pitch = v->banshee.io[io_vidDesktopOverlayStride] & 0x7fff;
|
Bit16u pitch = v->banshee.io[io_vidDesktopOverlayStride] & 0x7fff;
|
||||||
if (v->banshee.desktop_tiled) {
|
if (v->banshee.desktop_tiled) {
|
||||||
|
Loading…
Reference in New Issue
Block a user