Message ID | 20240624101040.82726-1-phil@philjordan.eu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] Cursor: 8 -> 1 bit alpha downsampling improvement | expand |
On 2024/06/24 19:10, Phil Dennis-Jordan wrote: > Mouse cursors with 8 bit alpha were downsampled to 1-bit opacity maps by > turning alpha values of 255 into 1 and everything else into 0. This > means that mostly-opaque pixels ended up completely invisible. > > This patch changes the behaviour so that only pixels with less than 50% > alpha (0-127) are treated as transparent when converted to 1-bit alpha. > > This greatly improves the subjective appearance of anti-aliased mouse > cursors, such as those used by macOS, when using a front-end UI without > support for alpha-blended cursors, such as some VNC clients. > > Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu> Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
On Mon, Jun 24, 2024 at 2:11 PM Phil Dennis-Jordan <phil@philjordan.eu> wrote: > Mouse cursors with 8 bit alpha were downsampled to 1-bit opacity maps by > turning alpha values of 255 into 1 and everything else into 0. This > means that mostly-opaque pixels ended up completely invisible. > > This patch changes the behaviour so that only pixels with less than 50% > alpha (0-127) are treated as transparent when converted to 1-bit alpha. > > This greatly improves the subjective appearance of anti-aliased mouse > cursors, such as those used by macOS, when using a front-end UI without > support for alpha-blended cursors, such as some VNC clients. > > Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu> > Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > ui/cursor.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/ui/cursor.c b/ui/cursor.c > index 29717b3ecb..dd3853320d 100644 > --- a/ui/cursor.c > +++ b/ui/cursor.c > @@ -232,7 +232,7 @@ void cursor_get_mono_mask(QEMUCursor *c, int > transparent, uint8_t *mask) > for (y = 0; y < c->height; y++) { > bit = 0x80; > for (x = 0; x < c->width; x++, data++) { > - if ((*data & 0xff000000) != 0xff000000) { > + if ((*data & 0x80000000) == 0x0) { /* Alpha < 0x80 (128) */ > if (transparent != 0) { > mask[x/8] |= bit; > } > -- > 2.39.3 (Apple Git-146) > > >
> Mouse cursors with 8 bit alpha were downsampled to 1-bit opacity maps by >> turning alpha values of 255 into 1 and everything else into 0. This >> means that mostly-opaque pixels ended up completely invisible. >> >> This patch changes the behaviour so that only pixels with less than 50% >> alpha (0-127) are treated as transparent when converted to 1-bit alpha. >> >> This greatly improves the subjective appearance of anti-aliased mouse >> cursors, such as those used by macOS, when using a front-end UI without >> support for alpha-blended cursors, such as some VNC clients. >> >> Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu> >> > > Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com> Thanks for the reviews folks! Is there anything I can do to move this forward? Should I submit a v3 with the review tags included? The patch continues to apply cleanly so it didn't seem necessary, but I admit I'm still not 100% clear on whom I should badger (?) to get favourably received patches actually pulled into staging/master. https://patchew.org/QEMU/20240624101040.82726-1-phil@philjordan.eu/ Thanks! Kind regards, Phil
Hi On Wed, Jul 17, 2024 at 5:11 PM Phil Dennis-Jordan <phil@philjordan.eu> wrote: > > Mouse cursors with 8 bit alpha were downsampled to 1-bit opacity maps by >>> turning alpha values of 255 into 1 and everything else into 0. This >>> means that mostly-opaque pixels ended up completely invisible. >>> >>> This patch changes the behaviour so that only pixels with less than 50% >>> alpha (0-127) are treated as transparent when converted to 1-bit alpha. >>> >>> This greatly improves the subjective appearance of anti-aliased mouse >>> cursors, such as those used by macOS, when using a front-end UI without >>> support for alpha-blended cursors, such as some VNC clients. >>> >>> Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu> >>> >> >> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> >> > > Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com> > > > Thanks for the reviews folks! Is there anything I can do to move this > forward? Should I submit a v3 with the review tags included? The patch > continues to apply cleanly so it didn't seem necessary, but I admit I'm > still not 100% clear on whom I should badger (?) to get favourably received > patches actually pulled into staging/master. > > https://patchew.org/QEMU/20240624101040.82726-1-phil@philjordan.eu/ > > I'll include it in a UI-related PR. thanks
On Wed, 17 Jul 2024 at 15:20, Marc-André Lureau <marcandre.lureau@gmail.com> wrote: > Hi > > On Wed, Jul 17, 2024 at 5:11 PM Phil Dennis-Jordan <phil@philjordan.eu> > wrote: > >> >> Mouse cursors with 8 bit alpha were downsampled to 1-bit opacity maps by >>>> turning alpha values of 255 into 1 and everything else into 0. This >>>> means that mostly-opaque pixels ended up completely invisible. >>>> >>>> This patch changes the behaviour so that only pixels with less than 50% >>>> alpha (0-127) are treated as transparent when converted to 1-bit alpha. >>>> >>>> This greatly improves the subjective appearance of anti-aliased mouse >>>> cursors, such as those used by macOS, when using a front-end UI without >>>> support for alpha-blended cursors, such as some VNC clients. >>>> >>>> Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu> >>>> >>> >>> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> >>> >> >> Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com> >> >> >> Thanks for the reviews folks! Is there anything I can do to move this >> forward? Should I submit a v3 with the review tags included? The patch >> continues to apply cleanly so it didn't seem necessary, but I admit I'm >> still not 100% clear on whom I should badger (?) to get favourably received >> patches actually pulled into staging/master. >> >> https://patchew.org/QEMU/20240624101040.82726-1-phil@philjordan.eu/ >> >> > I'll include it in a UI-related PR. > > thanks > Thank you!
diff --git a/ui/cursor.c b/ui/cursor.c index 29717b3ecb..dd3853320d 100644 --- a/ui/cursor.c +++ b/ui/cursor.c @@ -232,7 +232,7 @@ void cursor_get_mono_mask(QEMUCursor *c, int transparent, uint8_t *mask) for (y = 0; y < c->height; y++) { bit = 0x80; for (x = 0; x < c->width; x++, data++) { - if ((*data & 0xff000000) != 0xff000000) { + if ((*data & 0x80000000) == 0x0) { /* Alpha < 0x80 (128) */ if (transparent != 0) { mask[x/8] |= bit; }
Mouse cursors with 8 bit alpha were downsampled to 1-bit opacity maps by turning alpha values of 255 into 1 and everything else into 0. This means that mostly-opaque pixels ended up completely invisible. This patch changes the behaviour so that only pixels with less than 50% alpha (0-127) are treated as transparent when converted to 1-bit alpha. This greatly improves the subjective appearance of anti-aliased mouse cursors, such as those used by macOS, when using a front-end UI without support for alpha-blended cursors, such as some VNC clients. Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu> --- ui/cursor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)