diff options
author | 0strodamus | 2016-07-17 14:10:32 -0700 |
---|---|---|
committer | 0strodamus | 2016-07-17 14:10:32 -0700 |
commit | da1a18eb90707d55244844cfc934b22eb7060f75 (patch) | |
tree | 3acb01395a8920ce8f278344aed3ffb20cfdecde | |
parent | d0537b38d225a4cd8a222e1dd5de64966929c844 (diff) | |
download | aur-da1a18eb90707d55244844cfc934b22eb7060f75.tar.gz |
upgpkg: xorg-server-nosystemd 1.18.3-3
-rw-r--r-- | PKGBUILD | 10 | ||||
-rw-r--r-- | xserver-dix-Work-around-non-premultiplied-ARGB-cursor-data.patch | 34 |
2 files changed, 41 insertions, 3 deletions
@@ -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: |