According to the default font size on sparc64 provide a 12 x 22

mouse pointer instead of a 8 x 16 one so device drivers don't
need to bring there own one there and in gfb_mouse() (ab)use
the pixel_mask argument of putm() to pass along on/off info as
erasing the mouse cursor image by redrawing the text underneath
doesn't work as we use hardware cursors on sparc64.
This commit is contained in:
Marius Strobl 2007-06-18 22:15:17 +00:00
parent eacc51c5b6
commit 7ca851e3a5

View File

@ -105,12 +105,38 @@ sc_rndr_sw_t grrndrsw = {
#endif /* SC_NO_MODE_CHANGE */
#ifndef SC_NO_CUTPASTE
#ifdef __sparc64__
static u_char mouse_pointer[22 * 2] = {
0x00, 0x00, /* ............ */
0x80, 0x00, /* *........... */
0xc0, 0x00, /* **.......... */
0xe0, 0x00, /* ***......... */
0xf0, 0x00, /* ****........ */
0xf8, 0x00, /* *****....... */
0xfc, 0x00, /* ******...... */
0xfe, 0x00, /* *******..... */
0xff, 0x00, /* ********.... */
0xff, 0x80, /* *********... */
0xfc, 0xc0, /* ******..**.. */
0xdc, 0x00, /* **.***...... */
0x8e, 0x00, /* *...***..... */
0x0e, 0x00, /* ....***..... */
0x07, 0x00, /* .....***.... */
0x04, 0x00, /* .....*...... */
0x00, 0x00, /* ............ */
0x00, 0x00, /* ............ */
0x00, 0x00, /* ............ */
0x00, 0x00, /* ............ */
0x00, 0x00, /* ............ */
0x00, 0x00 /* ............ */
};
#else
static u_char mouse_pointer[16] = {
0x00, 0x40, 0x60, 0x70, 0x78, 0x7c, 0x7e, 0x68,
0x0c, 0x0c, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00
};
#endif
#endif
static void
gfb_nop(scr_stat *scp)
@ -317,6 +343,10 @@ gfb_blink(scr_stat *scp, int at, int flip)
static void
gfb_mouse(scr_stat *scp, int x, int y, int on)
{
#ifdef __sparc64__
(*vidsw[scp->sc->adapter]->putm)(scp->sc->adp, x, y,
mouse_pointer, on ? 0xffffffff : 0x0, 22, 12);
#else
int i, pos;
if (on) {
@ -337,6 +367,7 @@ gfb_mouse(scr_stat *scp, int x, int y, int on)
if (x < scp->ysize - 1)
(*scp->rndr->draw)(scp, pos + scp->xsize, i, FALSE);
}
#endif
}
#endif /* SC_NO_CUTPASTE */