[PATCH] screensaver: fix decoding of transparency in xpm files
Pekka Paalanen
ppaalanen at gmail.com
Thu Sep 6 06:56:41 PDT 2012
On Thu, 6 Sep 2012 15:23:28 +0200
Philipp Brüschweiler <blei42 at gmail.com> wrote:
> Use 0 as transparent pixel. This is needed when using premultiplied
> alpha.
> ---
> clients/wscreensaver-glue.c | 6 +++---
> 1 Datei geändert, 3 Zeilen hinzugefügt(+), 3 Zeilen entfernt(-)
>
> diff --git a/clients/wscreensaver-glue.c b/clients/wscreensaver-glue.c
> index a548599..55d0a8c 100644
> --- a/clients/wscreensaver-glue.c
> +++ b/clients/wscreensaver-glue.c
> @@ -80,14 +80,14 @@ read_xpm_color(uint32_t *ctable, const char *line)
> value = strtol(&cstr[1], &end, 16);
>
> if (strcmp(cstr, "None") == 0)
> - ctable[key] = 0x00ffffff;
> + ctable[key] = 0x00000000;
> else if (cstr[0] != '#' || !(cstr[1] != '\0' && *end == '\0')) {
> fprintf(stderr, "%s: error interpreting XPM color '%s'\n",
> progname, cstr);
> return;
> + } else {
> + ctable[key] = value | 0xff000000;
> }
> -
> - ctable[key] = value | 0xff000000;
> }
>
> static void
You wanted None decoded as transparent instead of opaque here. Should
work either way, glmatrix doesn't really use it, IIRC (takes alpha from
green channel).
I trust you tried weston-screensaver and it still looks the same, so ok
by me.
Thanks,
pq
More information about the wayland-devel
mailing list