[Spice-devel] [spice-gtk] fix check for 16 bit cursor mask
Frediano Ziglio
fziglio at redhat.com
Tue Jun 6 09:50:05 UTC 2017
>
> On Tue, 2017-06-06 at 05:35 -0400, Frediano Ziglio wrote:
> > ping
> >
> > ----- Original Message -----
> > > From: "Frediano Ziglio" <fziglio at redhat.com>
> > > To: spice-devel at lists.freedesktop.org
> > > Cc: "Frediano Ziglio" <fziglio at redhat.com>
> > > Sent: Wednesday, May 31, 2017 2:59:02 PM
> > > Subject: [spice-gtk] fix check for 16 bit cursor mask
> > >
> > > The size was computed using a 32 bit image while the cursor was
> > > just 16 bit. This caused the usage of some invalid bit mask (the
> > > bit mask is used to understand where the cursor is transparent).
> > >
> > > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > > ---
> > > src/channel-cursor.c | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > This was tested with a Windows XP machine with a working
> > > QXL driver and some color pointers without shadow.
> > > Before the patch the trasparency of the cursor were
> > > wrong.
> > >
> Ack - you can mention the symptoms in the commit messages.
>
> Thanks,
> Pavel
>
What about:
The size was computed using a 32 bit image while the cursor was
just 16 bit. This caused the usage of some invalid bit mask (the
bit mask is used to understand where the cursor is transparent).
This was clearly visible as the mouse cursor was usually mostly
black with some apparently random transparent pixels.
Frediano
>
> > > diff --git a/src/channel-cursor.c b/src/channel-cursor.c
> > > index 2610660..558c920 100644
> > > --- a/src/channel-cursor.c
> > > +++ b/src/channel-cursor.c
> > > @@ -430,6 +430,7 @@ static display_cursor *set_cursor(SpiceChannel
> > > *channel,
> > > SpiceCursor *scursor)
> > > }
> > > break;
> > > case SPICE_CURSOR_TYPE_COLOR16:
> > > + size /= 2u;
> > > for (i = 0; i < hdr->width * hdr->height; i++) {
> > > pix_mask = get_pix_mask(data, size, i);
> > > pix = *((guint16*)data + i);
> >
More information about the Spice-devel
mailing list