aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmanuele Giaquinta <emanuele.giaquinta@gmail.com>2015-06-23 20:06:48 +0200
committerMihai Moldovan <ionic@ionic.de>2015-06-23 20:18:08 +0200
commit64b2001db6469ceb29835049e04f4e7b607d8ee2 (patch)
treee8c45bb13a7629ce5520b50f62bca2828335a5d6
parent085dccc994e3fbfc8dee60497684606b67639de8 (diff)
downloadnx-libs-64b2001db6469ceb29835049e04f4e7b607d8ee2.tar.gz
nx-libs-64b2001db6469ceb29835049e04f4e7b607d8ee2.tar.bz2
nx-libs-64b2001db6469ceb29835049e04f4e7b607d8ee2.zip
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 <emanuele.giaquinta@gmail.com> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> 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
-rw-r--r--debian/changelog8
-rw-r--r--debian/patches/0040_nx-X11_Fix-alpha-premultiplication-in-XRenderPa.full.patch31
-rw-r--r--debian/patches/series1
3 files changed, 40 insertions, 0 deletions
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 <git-admin@x2go.org> 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 <emanuele.giaquinta@gmail.com>
+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 <emanuele.giaquinta@gmail.com>
+ Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+ Rebased against NX: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+
+ 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