summarylogtreecommitdiffstats
diff options
context:
space:
mode:
author0strodamus2016-07-17 14:10:32 -0700
committer0strodamus2016-07-17 14:10:32 -0700
commitda1a18eb90707d55244844cfc934b22eb7060f75 (patch)
tree3acb01395a8920ce8f278344aed3ffb20cfdecde
parentd0537b38d225a4cd8a222e1dd5de64966929c844 (diff)
downloadaur-da1a18eb90707d55244844cfc934b22eb7060f75.tar.gz
upgpkg: xorg-server-nosystemd 1.18.3-3
-rw-r--r--PKGBUILD10
-rw-r--r--xserver-dix-Work-around-non-premultiplied-ARGB-cursor-data.patch34
2 files changed, 41 insertions, 3 deletions
diff --git a/PKGBUILD b/PKGBUILD
index d82e559581fc..cada17908d7b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,7 +8,7 @@ pkgname=('xorg-server-nosystemd' 'xorg-server-xephyr-nosystemd' 'xorg-server-xdm
'xorg-server-xnest-nosystemd' 'xorg-server-xwayland-nosystemd' 'xorg-server-common-nosystemd' 'xorg-server-devel-nosystemd')
_pkgbase=xorg-server
pkgver=1.18.3
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64')
license=('custom')
groups=('xorg')
@@ -23,7 +23,8 @@ makedepends=('pixman' 'libx11' 'mesa-nosystemd' 'mesa-libgl-nosystemd' 'xf86drip
source=(${url}/releases/individual/xserver/${_pkgbase}-${pkgver}.tar.bz2{,.sig}
xvfb-run
xvfb-run.1
- call-eglBindAPI-after-eglInitialize.patch)
+ call-eglBindAPI-after-eglInitialize.patch
+ xserver-dix-Work-around-non-premultiplied-ARGB-cursor-data.patch)
validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
'C383B778255613DFDB409D91DB221A6900000011'
'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3')
@@ -31,12 +32,15 @@ sha256sums=('ea739c22517cdbe2b5f7c0a5fd05fe8a10ac0629003e71c0c7862f4bb60142cd'
'SKIP'
'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
'2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
- '45fdc2a1241d458756c41a93c01846e04cc75f3c75f81f48b61533d08280918d')
+ '45fdc2a1241d458756c41a93c01846e04cc75f3c75f81f48b61533d08280918d'
+ 'ecb0b1f73342e8c3de1563efcc812ac0235e2994d0343b392c1f51920510aa18')
prepare() {
cd "${_pkgbase}-${pkgver}"
patch -Np1 -i ../call-eglBindAPI-after-eglInitialize.patch
+ # fix broken cursor in games with mesa drivers
+ patch -Np1 -i ../xserver-dix-Work-around-non-premultiplied-ARGB-cursor-data.patch
}
build() {
diff --git a/xserver-dix-Work-around-non-premultiplied-ARGB-cursor-data.patch b/xserver-dix-Work-around-non-premultiplied-ARGB-cursor-data.patch
new file mode 100644
index 000000000000..68d03673d806
--- /dev/null
+++ b/xserver-dix-Work-around-non-premultiplied-ARGB-cursor-data.patch
@@ -0,0 +1,34 @@
+diff --git a/dix/cursor.c b/dix/cursor.c
+index e459456..25d6767 100644
+--- a/dix/cursor.c
++++ b/dix/cursor.c
+@@ -288,6 +288,29 @@ AllocARGBCursor(unsigned char *psrcbits, unsigned char *pmaskbits,
+ goto error;
+
+ *ppCurs = pCurs;
++
++ if (argb) {
++ size_t i, size = bits->width * bits->height;
++
++ for (i = 0; i < size; i++) {
++ if ((argb[i] & 0xff000000) == 0 && (argb[i] & 0xffffff) != 0) {
++ /* ARGB data doesn't seem pre-multiplied, fix it */
++ for (i = 0; i < size; i++) {
++ CARD32 a, ar, ag, ab;
++
++ a = argb[i] >> 24;
++ ar = a * ((argb[i] >> 16) & 0xff) / 0xff;
++ ag = a * ((argb[i] >> 8) & 0xff) / 0xff;
++ ab = a * (argb[i] & 0xff) / 0xff;
++
++ argb[i] = a << 24 | ar << 16 | ag << 8 | ab;
++ }
++
++ break;
++ }
++ }
++ }
++
+ return Success;
+
+ error: