From 64b2001db6469ceb29835049e04f4e7b607d8ee2 Mon Sep 17 00:00:00 2001 From: Emanuele Giaquinta Date: Tue, 23 Jun 2015 20:06:48 +0200 Subject: nx-X11: Fix alpha premultiplication in XRenderParseColor. Fixes: #893. 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 v2: backport to nx-libs 3.6.x (Mike Gabriel) v3: backport to nx-libs 3.5.0.x (Mihai Moldovan) Adds: - 0040_nx-X11_Fix-alpha-premultiplication-in-XRenderPa.full.patch --- debian/changelog | 8 ++++++ ...alpha-premultiplication-in-XRenderPa.full.patch | 31 ++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 40 insertions(+) create mode 100644 debian/patches/0040_nx-X11_Fix-alpha-premultiplication-in-XRenderPa.full.patch diff --git a/debian/changelog b/debian/changelog index 16a4d2a0f..e7e6b7775 100644 --- a/debian/changelog +++ b/debian/changelog @@ -237,6 +237,14 @@ nx-libs (2:3.5.0.32-0x2go1) UNRELEASED; urgency=low Adds: - 0660_nxcomp_fix-negotiation-in-stage-10-error.full+lite.patch + [ Emanuele Giaquinta ] + * nx-X11: Fix alpha premultiplication in XRenderParseColor. + Fixes: #893. + v2: backport to nx-libs 3.6.x (Mike Gabriel) + v3: backport to nx-libs 3.5.0.x (Mihai Moldovan) + Adds: + - 0040_nx-X11_Fix-alpha-premultiplication-in-XRenderPa.full.patch + -- X2Go Release Manager Tue, 17 Mar 2015 19:19:32 +0100 nx-libs (2:3.5.0.31-0x2go1) unstable; urgency=low diff --git a/debian/patches/0040_nx-X11_Fix-alpha-premultiplication-in-XRenderPa.full.patch b/debian/patches/0040_nx-X11_Fix-alpha-premultiplication-in-XRenderPa.full.patch new file mode 100644 index 000000000..eadfdeaa3 --- /dev/null +++ b/debian/patches/0040_nx-X11_Fix-alpha-premultiplication-in-XRenderPa.full.patch @@ -0,0 +1,31 @@ +commit ffc87da60b2262432d56f15332b3edd15b7e00b2 +Author: Emanuele Giaquinta +Date: Tue Jun 23 16:09:50 2015 +0200 + + 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 + + v3: backport to nx-libs 3.5.0.x (Mihai Moldovan) + +--- 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; + } diff --git a/debian/patches/series b/debian/patches/series index b797339a0..e504d7e88 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -26,6 +26,7 @@ 0029_nxcomp_ppc64.full+lite.patch 0030_nx-X11_configure-args.full.patch 0031_nx-X11_parallel-make.full.patch +0040_nx-X11_Fix-alpha-premultiplication-in-XRenderPa.full.patch 0051_nxcomp_macos105-fdisset.full+lite.patch 0052_nxcomp_macos10-nxauth-location.full+lite.patch 0053_nx-X11_no-xcomp1-install-target.full.patch -- cgit v1.2.3