From ffc87da60b2262432d56f15332b3edd15b7e00b2 Mon Sep 17 00:00:00 2001 From: Emanuele Giaquinta Date: Tue, 23 Jun 2015 16:09:50 +0200 Subject: Fix alpha premultiplication in XRenderParseColor. Due to C arithmetic conversion rules we must use an unsigned constant (or a cast) to perform the multiplication using unsigned arithmetic. Fixes ArcticaProject/nx-libs#55. Author: Emanuele Giaquinta Reviewed-by: Jeremy Huddleston Rebased against NX: Mike Gabriel --- nx-X11/lib/Xrender/Color.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'nx-X11') diff --git a/nx-X11/lib/Xrender/Color.c b/nx-X11/lib/Xrender/Color.c index 4f934f038..6875204e6 100644 --- a/nx-X11/lib/Xrender/Color.c +++ b/nx-X11/lib/Xrender/Color.c @@ -85,8 +85,8 @@ XRenderParseColor(Display *dpy, char *spec, XRenderColor *def) def->blue = coreColor.blue; def->alpha = 0xffff; } - def->red = (def->red * def->alpha) / 65535; - def->green = (def->green * def->alpha) / 65535; - def->blue = (def->blue * def->alpha) / 65535; + def->red = (def->red * def->alpha) / 0xffffU; + def->green = (def->green * def->alpha) / 0xffffU; + def->blue = (def->blue * def->alpha) / 0xffffU; return 1; } -- cgit v1.2.3