aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/0040_nx-X11_Fix-alpha-premultiplication-in-XRenderPa.full.patch
blob: eadfdeaa3ea2bf0f27001c781bf9104e1a9048bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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;
 }