diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2019-07-27 07:57:27 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2019-07-27 07:57:27 +0000 |
commit | d4a0bed4b91da9de86c311c7fef9a8aa9a6f500c (patch) | |
tree | a1b439049dee87bc951e190db93f5bbe8b43b0b5 /xserver/miext | |
parent | b6bc775539a31f663f9e22ce3ccaf0aa96adf3b6 (diff) |
Update to xserver 1.20.5. Tested by jsg@
Diffstat (limited to 'xserver/miext')
24 files changed, 246 insertions, 157 deletions
diff --git a/xserver/miext/Makefile.in b/xserver/miext/Makefile.in index 5f6fc5aaa..49f60978d 100644 --- a/xserver/miext/Makefile.in +++ b/xserver/miext/Makefile.in @@ -66,7 +66,7 @@ CONFIG_HEADER = $(top_builddir)/include/do-not-use-config.h \ $(top_builddir)/include/xorg-config.h \ $(top_builddir)/include/xkb-config.h \ $(top_builddir)/include/xwin-config.h \ - $(top_builddir)/include/kdrive-config.h \ + $(top_builddir)/include/xwayland-config.h \ $(top_builddir)/include/version-config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -313,6 +313,7 @@ RANLIB = @RANLIB@ RAWCPP = @RAWCPP@ RAWCPPFLAGS = @RAWCPPFLAGS@ RELEASE_DATE = @RELEASE_DATE@ +SCANNER_ARG = @SCANNER_ARG@ SDK_REQUIRED_MODULES = @SDK_REQUIRED_MODULES@ SED = @SED@ SELINUX_CFLAGS = @SELINUX_CFLAGS@ @@ -331,15 +332,18 @@ SYSCONFDIR = @SYSCONFDIR@ SYSTEMD_DAEMON_CFLAGS = @SYSTEMD_DAEMON_CFLAGS@ SYSTEMD_DAEMON_LIBS = @SYSTEMD_DAEMON_LIBS@ TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@ -TSLIB_CFLAGS = @TSLIB_CFLAGS@ -TSLIB_LIBS = @TSLIB_LIBS@ UDEV_CFLAGS = @UDEV_CFLAGS@ UDEV_LIBS = @UDEV_LIBS@ UTILS_SYS_LIBS = @UTILS_SYS_LIBS@ VENDOR_NAME_SHORT = @VENDOR_NAME_SHORT@ VERSION = @VERSION@ +WAYLAND_EGLSTREAM_CFLAGS = @WAYLAND_EGLSTREAM_CFLAGS@ +WAYLAND_EGLSTREAM_DATADIR = @WAYLAND_EGLSTREAM_DATADIR@ +WAYLAND_EGLSTREAM_LIBS = @WAYLAND_EGLSTREAM_LIBS@ WAYLAND_PROTOCOLS_DATADIR = @WAYLAND_PROTOCOLS_DATADIR@ WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ WINDOWSDRI_CFLAGS = @WINDOWSDRI_CFLAGS@ WINDOWSDRI_LIBS = @WINDOWSDRI_LIBS@ WINDOWSWM_CFLAGS = @WINDOWSWM_CFLAGS@ @@ -347,6 +351,8 @@ WINDOWSWM_LIBS = @WINDOWSWM_LIBS@ WINDRES = @WINDRES@ X11EXAMPLES_DEP_CFLAGS = @X11EXAMPLES_DEP_CFLAGS@ X11EXAMPLES_DEP_LIBS = @X11EXAMPLES_DEP_LIBS@ +XCONFIGDIR = @XCONFIGDIR@ +XCONFIGFILE = @XCONFIGFILE@ XDMCP_CFLAGS = @XDMCP_CFLAGS@ XDMCP_LIBS = @XDMCP_LIBS@ XDMXCONFIG_DEP_CFLAGS = @XDMXCONFIG_DEP_CFLAGS@ @@ -418,8 +424,6 @@ XWIN_SERVER_NAME = @XWIN_SERVER_NAME@ XWIN_SYS_LIBS = @XWIN_SYS_LIBS@ YACC = @YACC@ YFLAGS = @YFLAGS@ -__XCONFIGDIR__ = @__XCONFIGDIR__@ -__XCONFIGFILE__ = @__XCONFIGFILE__@ abi_ansic = @abi_ansic@ abi_extension = @abi_extension@ abi_videodrv = @abi_videodrv@ diff --git a/xserver/miext/damage/Makefile.in b/xserver/miext/damage/Makefile.in index 73c5a01b5..e6ab15f3c 100644 --- a/xserver/miext/damage/Makefile.in +++ b/xserver/miext/damage/Makefile.in @@ -69,7 +69,7 @@ CONFIG_HEADER = $(top_builddir)/include/do-not-use-config.h \ $(top_builddir)/include/xorg-config.h \ $(top_builddir)/include/xkb-config.h \ $(top_builddir)/include/xwin-config.h \ - $(top_builddir)/include/kdrive-config.h \ + $(top_builddir)/include/xwayland-config.h \ $(top_builddir)/include/version-config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -338,6 +338,7 @@ RANLIB = @RANLIB@ RAWCPP = @RAWCPP@ RAWCPPFLAGS = @RAWCPPFLAGS@ RELEASE_DATE = @RELEASE_DATE@ +SCANNER_ARG = @SCANNER_ARG@ SDK_REQUIRED_MODULES = @SDK_REQUIRED_MODULES@ SED = @SED@ SELINUX_CFLAGS = @SELINUX_CFLAGS@ @@ -356,15 +357,18 @@ SYSCONFDIR = @SYSCONFDIR@ SYSTEMD_DAEMON_CFLAGS = @SYSTEMD_DAEMON_CFLAGS@ SYSTEMD_DAEMON_LIBS = @SYSTEMD_DAEMON_LIBS@ TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@ -TSLIB_CFLAGS = @TSLIB_CFLAGS@ -TSLIB_LIBS = @TSLIB_LIBS@ UDEV_CFLAGS = @UDEV_CFLAGS@ UDEV_LIBS = @UDEV_LIBS@ UTILS_SYS_LIBS = @UTILS_SYS_LIBS@ VENDOR_NAME_SHORT = @VENDOR_NAME_SHORT@ VERSION = @VERSION@ +WAYLAND_EGLSTREAM_CFLAGS = @WAYLAND_EGLSTREAM_CFLAGS@ +WAYLAND_EGLSTREAM_DATADIR = @WAYLAND_EGLSTREAM_DATADIR@ +WAYLAND_EGLSTREAM_LIBS = @WAYLAND_EGLSTREAM_LIBS@ WAYLAND_PROTOCOLS_DATADIR = @WAYLAND_PROTOCOLS_DATADIR@ WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ WINDOWSDRI_CFLAGS = @WINDOWSDRI_CFLAGS@ WINDOWSDRI_LIBS = @WINDOWSDRI_LIBS@ WINDOWSWM_CFLAGS = @WINDOWSWM_CFLAGS@ @@ -372,6 +376,8 @@ WINDOWSWM_LIBS = @WINDOWSWM_LIBS@ WINDRES = @WINDRES@ X11EXAMPLES_DEP_CFLAGS = @X11EXAMPLES_DEP_CFLAGS@ X11EXAMPLES_DEP_LIBS = @X11EXAMPLES_DEP_LIBS@ +XCONFIGDIR = @XCONFIGDIR@ +XCONFIGFILE = @XCONFIGFILE@ XDMCP_CFLAGS = @XDMCP_CFLAGS@ XDMCP_LIBS = @XDMCP_LIBS@ XDMXCONFIG_DEP_CFLAGS = @XDMXCONFIG_DEP_CFLAGS@ @@ -443,8 +449,6 @@ XWIN_SERVER_NAME = @XWIN_SERVER_NAME@ XWIN_SYS_LIBS = @XWIN_SYS_LIBS@ YACC = @YACC@ YFLAGS = @YFLAGS@ -__XCONFIGDIR__ = @__XCONFIGDIR__@ -__XCONFIGFILE__ = @__XCONFIGFILE__@ abi_ansic = @abi_ansic@ abi_extension = @abi_extension@ abi_videodrv = @abi_videodrv@ diff --git a/xserver/miext/damage/damage.c b/xserver/miext/damage/damage.c index 2fae03fc2..f3ae4ebbc 100644 --- a/xserver/miext/damage/damage.c +++ b/xserver/miext/damage/damage.c @@ -829,16 +829,36 @@ damagePolyPoint(DrawablePtr pDrawable, /* this could be slow if the points were spread out */ - while (--nptTmp) { - pptTmp++; - if (box.x1 > pptTmp->x) - box.x1 = pptTmp->x; - else if (box.x2 < pptTmp->x) - box.x2 = pptTmp->x; - if (box.y1 > pptTmp->y) - box.y1 = pptTmp->y; - else if (box.y2 < pptTmp->y) - box.y2 = pptTmp->y; + if (mode == CoordModePrevious) { + int x = box.x1; + int y = box.y1; + + while (--nptTmp) { + pptTmp++; + x += pptTmp->x; + y += pptTmp->y; + if (box.x1 > x) + box.x1 = x; + else if (box.x2 < x) + box.x2 = x; + if (box.y1 > y) + box.y1 = y; + else if (box.y2 < y) + box.y2 = y; + } + } + else { + while (--nptTmp) { + pptTmp++; + if (box.x1 > pptTmp->x) + box.x1 = pptTmp->x; + else if (box.x2 < pptTmp->x) + box.x2 = pptTmp->x; + if (box.y1 > pptTmp->y) + box.y1 = pptTmp->y; + else if (box.y2 < pptTmp->y) + box.y2 = pptTmp->y; + } } box.x2++; @@ -1696,7 +1716,7 @@ DamageCreate(DamageReportFunc damageReport, damageScrPriv(pScreen); DamagePtr pDamage; - pDamage = dixAllocateObjectWithPrivates(DamageRec, PRIVATE_DAMAGE); + pDamage = calloc(1, sizeof(DamageRec)); if (!pDamage) return 0; pDamage->pNext = 0; @@ -1821,7 +1841,7 @@ DamageDestroy(DamagePtr pDamage) (*pScrPriv->funcs.Destroy) (pDamage); RegionUninit(&pDamage->damage); RegionUninit(&pDamage->pendingDamage); - dixFreeObjectWithPrivates(pDamage, PRIVATE_DAMAGE); + free(pDamage); } Bool diff --git a/xserver/miext/damage/damagestr.h b/xserver/miext/damage/damagestr.h index 278615634..0d07872e5 100644 --- a/xserver/miext/damage/damagestr.h +++ b/xserver/miext/damage/damagestr.h @@ -49,7 +49,6 @@ typedef struct _damage { Bool reportAfter; RegionRec pendingDamage; /* will be flushed post submission at the latest */ ScreenPtr pScreen; - PrivateRec *devPrivates; } DamageRec; typedef struct _damageScrPriv { diff --git a/xserver/miext/rootless/Makefile.in b/xserver/miext/rootless/Makefile.in index 164e7a19f..e933848bb 100644 --- a/xserver/miext/rootless/Makefile.in +++ b/xserver/miext/rootless/Makefile.in @@ -68,7 +68,7 @@ CONFIG_HEADER = $(top_builddir)/include/do-not-use-config.h \ $(top_builddir)/include/xorg-config.h \ $(top_builddir)/include/xkb-config.h \ $(top_builddir)/include/xwin-config.h \ - $(top_builddir)/include/kdrive-config.h \ + $(top_builddir)/include/xwayland-config.h \ $(top_builddir)/include/version-config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -308,6 +308,7 @@ RANLIB = @RANLIB@ RAWCPP = @RAWCPP@ RAWCPPFLAGS = @RAWCPPFLAGS@ RELEASE_DATE = @RELEASE_DATE@ +SCANNER_ARG = @SCANNER_ARG@ SDK_REQUIRED_MODULES = @SDK_REQUIRED_MODULES@ SED = @SED@ SELINUX_CFLAGS = @SELINUX_CFLAGS@ @@ -326,15 +327,18 @@ SYSCONFDIR = @SYSCONFDIR@ SYSTEMD_DAEMON_CFLAGS = @SYSTEMD_DAEMON_CFLAGS@ SYSTEMD_DAEMON_LIBS = @SYSTEMD_DAEMON_LIBS@ TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@ -TSLIB_CFLAGS = @TSLIB_CFLAGS@ -TSLIB_LIBS = @TSLIB_LIBS@ UDEV_CFLAGS = @UDEV_CFLAGS@ UDEV_LIBS = @UDEV_LIBS@ UTILS_SYS_LIBS = @UTILS_SYS_LIBS@ VENDOR_NAME_SHORT = @VENDOR_NAME_SHORT@ VERSION = @VERSION@ +WAYLAND_EGLSTREAM_CFLAGS = @WAYLAND_EGLSTREAM_CFLAGS@ +WAYLAND_EGLSTREAM_DATADIR = @WAYLAND_EGLSTREAM_DATADIR@ +WAYLAND_EGLSTREAM_LIBS = @WAYLAND_EGLSTREAM_LIBS@ WAYLAND_PROTOCOLS_DATADIR = @WAYLAND_PROTOCOLS_DATADIR@ WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ WINDOWSDRI_CFLAGS = @WINDOWSDRI_CFLAGS@ WINDOWSDRI_LIBS = @WINDOWSDRI_LIBS@ WINDOWSWM_CFLAGS = @WINDOWSWM_CFLAGS@ @@ -342,6 +346,8 @@ WINDOWSWM_LIBS = @WINDOWSWM_LIBS@ WINDRES = @WINDRES@ X11EXAMPLES_DEP_CFLAGS = @X11EXAMPLES_DEP_CFLAGS@ X11EXAMPLES_DEP_LIBS = @X11EXAMPLES_DEP_LIBS@ +XCONFIGDIR = @XCONFIGDIR@ +XCONFIGFILE = @XCONFIGFILE@ XDMCP_CFLAGS = @XDMCP_CFLAGS@ XDMCP_LIBS = @XDMCP_LIBS@ XDMXCONFIG_DEP_CFLAGS = @XDMXCONFIG_DEP_CFLAGS@ @@ -413,8 +419,6 @@ XWIN_SERVER_NAME = @XWIN_SERVER_NAME@ XWIN_SYS_LIBS = @XWIN_SYS_LIBS@ YACC = @YACC@ YFLAGS = @YFLAGS@ -__XCONFIGDIR__ = @__XCONFIGDIR__@ -__XCONFIGFILE__ = @__XCONFIGFILE__@ abi_ansic = @abi_ansic@ abi_extension = @abi_extension@ abi_videodrv = @abi_videodrv@ diff --git a/xserver/miext/shadow/Makefile.am b/xserver/miext/shadow/Makefile.am index 27cf41422..dabbf038c 100644 --- a/xserver/miext/shadow/Makefile.am +++ b/xserver/miext/shadow/Makefile.am @@ -10,9 +10,9 @@ libshadow_la_SOURCES = \ c2p_core.h \ shadow.c \ shadow.h \ + sh3224.c \ shafb4.c \ shafb8.c \ - shalloc.c \ shiplan2p4.c \ shiplan2p8.c \ shpacked.c \ diff --git a/xserver/miext/shadow/Makefile.in b/xserver/miext/shadow/Makefile.in index 2d923e799..74d19011d 100644 --- a/xserver/miext/shadow/Makefile.in +++ b/xserver/miext/shadow/Makefile.in @@ -69,13 +69,13 @@ CONFIG_HEADER = $(top_builddir)/include/do-not-use-config.h \ $(top_builddir)/include/xorg-config.h \ $(top_builddir)/include/xkb-config.h \ $(top_builddir)/include/xwin-config.h \ - $(top_builddir)/include/kdrive-config.h \ + $(top_builddir)/include/xwayland-config.h \ $(top_builddir)/include/version-config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libshadow_la_LIBADD = -am_libshadow_la_OBJECTS = shadow.lo shafb4.lo shafb8.lo shalloc.lo \ +am_libshadow_la_OBJECTS = shadow.lo sh3224.lo shafb4.lo shafb8.lo \ shiplan2p4.lo shiplan2p8.lo shpacked.lo shplanar8.lo \ shplanar.lo shrot16pack_180.lo shrot16pack_270.lo \ shrot16pack_270YX.lo shrot16pack_90.lo shrot16pack_90YX.lo \ @@ -344,6 +344,7 @@ RANLIB = @RANLIB@ RAWCPP = @RAWCPP@ RAWCPPFLAGS = @RAWCPPFLAGS@ RELEASE_DATE = @RELEASE_DATE@ +SCANNER_ARG = @SCANNER_ARG@ SDK_REQUIRED_MODULES = @SDK_REQUIRED_MODULES@ SED = @SED@ SELINUX_CFLAGS = @SELINUX_CFLAGS@ @@ -362,15 +363,18 @@ SYSCONFDIR = @SYSCONFDIR@ SYSTEMD_DAEMON_CFLAGS = @SYSTEMD_DAEMON_CFLAGS@ SYSTEMD_DAEMON_LIBS = @SYSTEMD_DAEMON_LIBS@ TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@ -TSLIB_CFLAGS = @TSLIB_CFLAGS@ -TSLIB_LIBS = @TSLIB_LIBS@ UDEV_CFLAGS = @UDEV_CFLAGS@ UDEV_LIBS = @UDEV_LIBS@ UTILS_SYS_LIBS = @UTILS_SYS_LIBS@ VENDOR_NAME_SHORT = @VENDOR_NAME_SHORT@ VERSION = @VERSION@ +WAYLAND_EGLSTREAM_CFLAGS = @WAYLAND_EGLSTREAM_CFLAGS@ +WAYLAND_EGLSTREAM_DATADIR = @WAYLAND_EGLSTREAM_DATADIR@ +WAYLAND_EGLSTREAM_LIBS = @WAYLAND_EGLSTREAM_LIBS@ WAYLAND_PROTOCOLS_DATADIR = @WAYLAND_PROTOCOLS_DATADIR@ WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ WINDOWSDRI_CFLAGS = @WINDOWSDRI_CFLAGS@ WINDOWSDRI_LIBS = @WINDOWSDRI_LIBS@ WINDOWSWM_CFLAGS = @WINDOWSWM_CFLAGS@ @@ -378,6 +382,8 @@ WINDOWSWM_LIBS = @WINDOWSWM_LIBS@ WINDRES = @WINDRES@ X11EXAMPLES_DEP_CFLAGS = @X11EXAMPLES_DEP_CFLAGS@ X11EXAMPLES_DEP_LIBS = @X11EXAMPLES_DEP_LIBS@ +XCONFIGDIR = @XCONFIGDIR@ +XCONFIGFILE = @XCONFIGFILE@ XDMCP_CFLAGS = @XDMCP_CFLAGS@ XDMCP_LIBS = @XDMCP_LIBS@ XDMXCONFIG_DEP_CFLAGS = @XDMXCONFIG_DEP_CFLAGS@ @@ -449,8 +455,6 @@ XWIN_SERVER_NAME = @XWIN_SERVER_NAME@ XWIN_SYS_LIBS = @XWIN_SYS_LIBS@ YACC = @YACC@ YFLAGS = @YFLAGS@ -__XCONFIGDIR__ = @__XCONFIGDIR__@ -__XCONFIGFILE__ = @__XCONFIGFILE__@ abi_ansic = @abi_ansic@ abi_extension = @abi_extension@ abi_videodrv = @abi_videodrv@ @@ -522,9 +526,9 @@ libshadow_la_SOURCES = \ c2p_core.h \ shadow.c \ shadow.h \ + sh3224.c \ shafb4.c \ shafb8.c \ - shalloc.c \ shiplan2p4.c \ shiplan2p8.c \ shpacked.c \ @@ -602,10 +606,10 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sh3224.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shadow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shafb4.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shafb8.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shalloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shiplan2p4.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shiplan2p8.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shpacked.Plo@am__quote@ diff --git a/xserver/miext/shadow/sh3224.c b/xserver/miext/shadow/sh3224.c new file mode 100644 index 000000000..5d8f27482 --- /dev/null +++ b/xserver/miext/shadow/sh3224.c @@ -0,0 +1,138 @@ +/* + * Copyright © 2000 Keith Packard + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Keith Packard not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. Keith Packard makes no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +#ifdef HAVE_DIX_CONFIG_H +#include "dix-config.h" +#endif + +#include "shadow.h" +#include "fb.h" + +#define Get8(a) ((CARD32) READ(a)) + +#if BITMAP_BIT_ORDER == MSBFirst +#define Get24(a) ((Get8(a) << 16) | (Get8((a)+1) << 8) | Get8((a)+2)) +#define Put24(a,p) ((WRITE((a+0), (CARD8) ((p) >> 16))), \ + (WRITE((a+1), (CARD8) ((p) >> 8))), \ + (WRITE((a+2), (CARD8) (p)))) +#else +#define Get24(a) (Get8(a) | (Get8((a)+1) << 8) | (Get8((a)+2)<<16)) +#define Put24(a,p) ((WRITE((a+0), (CARD8) (p))), \ + (WRITE((a+1), (CARD8) ((p) >> 8))), \ + (WRITE((a+2), (CARD8) ((p) >> 16)))) +#endif + +static void +sh24_32BltLine(CARD8 *srcLine, + CARD8 *dstLine, + int width) +{ + CARD32 *src; + CARD8 *dst; + int w; + CARD32 pixel; + + src = (CARD32 *) srcLine; + dst = dstLine; + w = width; + + while (((long)dst & 3) && w) { + w--; + pixel = READ(src++); + Put24(dst, pixel); + dst += 3; + } + /* Do four aligned pixels at a time */ + while (w >= 4) { + CARD32 s0, s1; + + s0 = READ(src++); + s1 = READ(src++); +#if BITMAP_BIT_ORDER == LSBFirst + WRITE((CARD32 *) dst, (s0 & 0xffffff) | (s1 << 24)); +#else + WRITE((CARD32 *) dst, (s0 << 8) | ((s1 & 0xffffff) >> 16)); +#endif + s0 = READ(src++); +#if BITMAP_BIT_ORDER == LSBFirst + WRITE((CARD32 *) (dst + 4), + ((s1 & 0xffffff) >> 8) | (s0 << 16)); +#else + WRITE((CARD32 *) (dst + 4), + (s1 << 16) | ((s0 & 0xffffff) >> 8)); +#endif + s1 = READ(src++); +#if BITMAP_BIT_ORDER == LSBFirst + WRITE((CARD32 *) (dst + 8), + ((s0 & 0xffffff) >> 16) | (s1 << 8)); +#else + WRITE((CARD32 *) (dst + 8), (s0 << 24) | (s1 & 0xffffff)); +#endif + dst += 12; + w -= 4; + } + while (w--) { + pixel = READ(src++); + Put24(dst, pixel); + dst += 3; + } +} + +void +shadowUpdate32to24(ScreenPtr pScreen, shadowBufPtr pBuf) +{ + RegionPtr damage = DamageRegion(pBuf->pDamage); + PixmapPtr pShadow = pBuf->pPixmap; + int nbox = RegionNumRects(damage); + BoxPtr pbox = RegionRects(damage); + FbStride shaStride; + int shaBpp; + _X_UNUSED int shaXoff, shaYoff; + int x, y, w, h; + CARD32 winSize; + FbBits *shaBase, *shaLine; + CARD8 *winBase = NULL, *winLine; + + fbGetDrawable(&pShadow->drawable, shaBase, shaStride, shaBpp, shaXoff, + shaYoff); + + /* just get the initial window base + stride */ + winBase = (*pBuf->window)(pScreen, 0, 0, SHADOW_WINDOW_WRITE, + &winSize, pBuf->closure); + + while (nbox--) { + x = pbox->x1; + y = pbox->y1; + w = pbox->x2 - pbox->x1; + h = pbox->y2 - pbox->y1; + + winLine = winBase + y * winSize + (x * 3); + shaLine = shaBase + y * shaStride + ((x * shaBpp) >> FB_SHIFT); + + while (h--) { + sh24_32BltLine((CARD8 *)shaLine, (CARD8 *)winLine, w); + winLine += winSize; + shaLine += shaStride; + } + pbox++; + } +} diff --git a/xserver/miext/shadow/shadow.c b/xserver/miext/shadow/shadow.c index b8e23dae6..529402d6e 100644 --- a/xserver/miext/shadow/shadow.c +++ b/xserver/miext/shadow/shadow.c @@ -37,9 +37,12 @@ #include "shadow.h" static DevPrivateKeyRec shadowScrPrivateKeyRec; - #define shadowScrPrivateKey (&shadowScrPrivateKeyRec) +#define shadowGetBuf(pScr) ((shadowBufPtr) \ + dixLookupPrivate(&(pScr)->devPrivates, shadowScrPrivateKey)) +#define shadowBuf(pScr) shadowBufPtr pBuf = shadowGetBuf(pScr) + #define wrap(priv, real, mem) {\ priv->mem = real->mem; \ real->mem = shadow##mem; \ diff --git a/xserver/miext/shadow/shadow.h b/xserver/miext/shadow/shadow.h index 7f22169dc..c08e1537c 100644 --- a/xserver/miext/shadow/shadow.h +++ b/xserver/miext/shadow/shadow.h @@ -68,13 +68,6 @@ typedef struct _shadowBuf { #define SHADOW_REFLECT_Y 32 #define SHADOW_REFLECT_ALL (SHADOW_REFLECT_X|SHADOW_REFLECT_Y) -extern _X_EXPORT DevPrivateKey shadowScrPrivateKey; - -#define shadowGetBuf(pScr) ((shadowBufPtr) \ - dixLookupPrivate(&(pScr)->devPrivates, shadowScrPrivateKey)) -#define shadowBuf(pScr) shadowBufPtr pBuf = shadowGetBuf(pScr) -#define shadowDamage(pBuf) DamageRegion(pBuf->pDamage) - extern _X_EXPORT Bool shadowSetup(ScreenPtr pScreen); @@ -88,8 +81,6 @@ shadowAdd(ScreenPtr pScreen, extern _X_EXPORT void shadowRemove(ScreenPtr pScreen, PixmapPtr pPixmap); -extern _X_EXPORT void *shadowAlloc(int width, int height, int bpp); - extern _X_EXPORT void shadowUpdateAfb4(ScreenPtr pScreen, shadowBufPtr pBuf); @@ -156,11 +147,9 @@ extern _X_EXPORT void extern _X_EXPORT void shadowUpdateRotate32(ScreenPtr pScreen, shadowBufPtr pBuf); -typedef void (*shadowUpdateProc) (ScreenPtr, shadowBufPtr); +extern _X_EXPORT void + shadowUpdate32to24(ScreenPtr pScreen, shadowBufPtr pBuf); -extern _X_EXPORT shadowUpdateProc shadowUpdatePackedWeak(void); -extern _X_EXPORT shadowUpdateProc shadowUpdatePlanar4Weak(void); -extern _X_EXPORT shadowUpdateProc shadowUpdatePlanar4x8Weak(void); -extern _X_EXPORT shadowUpdateProc shadowUpdateRotatePackedWeak(void); +typedef void (*shadowUpdateProc) (ScreenPtr, shadowBufPtr); #endif /* _SHADOW_H_ */ diff --git a/xserver/miext/shadow/shafb4.c b/xserver/miext/shadow/shafb4.c index d88ae1c2c..ae59e2d32 100644 --- a/xserver/miext/shadow/shafb4.c +++ b/xserver/miext/shadow/shafb4.c @@ -80,7 +80,7 @@ static inline void store_afb4(void *dst, unsigned int stride, void shadowUpdateAfb4(ScreenPtr pScreen, shadowBufPtr pBuf) { - RegionPtr damage = shadowDamage(pBuf); + RegionPtr damage = DamageRegion(pBuf->pDamage); PixmapPtr pShadow = pBuf->pPixmap; int nbox = RegionNumRects(damage); BoxPtr pbox = RegionRects(damage); diff --git a/xserver/miext/shadow/shafb8.c b/xserver/miext/shadow/shafb8.c index 8d84bfa01..d2b73fc64 100644 --- a/xserver/miext/shadow/shafb8.c +++ b/xserver/miext/shadow/shafb8.c @@ -84,7 +84,7 @@ static inline void store_afb8(void *dst, unsigned int stride, void shadowUpdateAfb8(ScreenPtr pScreen, shadowBufPtr pBuf) { - RegionPtr damage = shadowDamage(pBuf); + RegionPtr damage = DamageRegion(pBuf->pDamage); PixmapPtr pShadow = pBuf->pPixmap; int nbox = RegionNumRects(damage); BoxPtr pbox = RegionRects(damage); diff --git a/xserver/miext/shadow/shalloc.c b/xserver/miext/shadow/shalloc.c deleted file mode 100644 index 6a79085c4..000000000 --- a/xserver/miext/shadow/shalloc.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright © 2000 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#ifdef HAVE_DIX_CONFIG_H -#include <dix-config.h> -#endif - -#include <X11/X.h> -#include "scrnintstr.h" -#include "windowstr.h" -#include <X11/fonts/font.h> -#include "dixfontstr.h" -#include <X11/fonts/fontstruct.h> -#include "mi.h" -#include "regionstr.h" -#include "globals.h" -#include "gcstruct.h" -#include "shadow.h" - -void * -shadowAlloc(int width, int height, int bpp) -{ - int stride; - void *fb; - - /* Cant use PixmapBytePad -- the structure is probably not initialized yet */ - stride = BitmapBytePad(width * bpp); - fb = xallocarray(stride, height); - return fb; -} diff --git a/xserver/miext/shadow/shiplan2p4.c b/xserver/miext/shadow/shiplan2p4.c index 0e46bae7a..f37c58d71 100644 --- a/xserver/miext/shadow/shiplan2p4.c +++ b/xserver/miext/shadow/shiplan2p4.c @@ -78,7 +78,7 @@ static inline void store_iplan2p4(void *dst, const CARD32 d[2]) void shadowUpdateIplan2p4(ScreenPtr pScreen, shadowBufPtr pBuf) { - RegionPtr damage = shadowDamage(pBuf); + RegionPtr damage = DamageRegion(pBuf->pDamage); PixmapPtr pShadow = pBuf->pPixmap; int nbox = RegionNumRects(damage); BoxPtr pbox = RegionRects(damage); diff --git a/xserver/miext/shadow/shiplan2p8.c b/xserver/miext/shadow/shiplan2p8.c index 17d6a132e..44cb8d336 100644 --- a/xserver/miext/shadow/shiplan2p8.c +++ b/xserver/miext/shadow/shiplan2p8.c @@ -79,7 +79,7 @@ static inline void store_iplan2p8(void *dst, const CARD32 d[4]) void shadowUpdateIplan2p8(ScreenPtr pScreen, shadowBufPtr pBuf) { - RegionPtr damage = shadowDamage(pBuf); + RegionPtr damage = DamageRegion(pBuf->pDamage); PixmapPtr pShadow = pBuf->pPixmap; int nbox = RegionNumRects(damage); BoxPtr pbox = RegionRects(damage); diff --git a/xserver/miext/shadow/shpacked.c b/xserver/miext/shadow/shpacked.c index 5ef18f86d..5220854c1 100644 --- a/xserver/miext/shadow/shpacked.c +++ b/xserver/miext/shadow/shpacked.c @@ -43,7 +43,7 @@ void shadowUpdatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) { - RegionPtr damage = shadowDamage(pBuf); + RegionPtr damage = DamageRegion(pBuf->pDamage); PixmapPtr pShadow = pBuf->pPixmap; int nbox = RegionNumRects(damage); BoxPtr pbox = RegionRects(damage); @@ -107,9 +107,3 @@ shadowUpdatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) pbox++; } } - -shadowUpdateProc -shadowUpdatePackedWeak(void) -{ - return shadowUpdatePacked; -} diff --git a/xserver/miext/shadow/shplanar.c b/xserver/miext/shadow/shplanar.c index 4f6542cb6..92c7971d2 100644 --- a/xserver/miext/shadow/shplanar.c +++ b/xserver/miext/shadow/shplanar.c @@ -89,7 +89,7 @@ void shadowUpdatePlanar4(ScreenPtr pScreen, shadowBufPtr pBuf) { - RegionPtr damage = shadowDamage(pBuf); + RegionPtr damage = DamageRegion(pBuf->pDamage); PixmapPtr pShadow = pBuf->pPixmap; int nbox = RegionNumRects(damage); BoxPtr pbox = RegionRects(damage); @@ -166,15 +166,3 @@ shadowUpdatePlanar4(ScreenPtr pScreen, shadowBufPtr pBuf) pbox++; } } - -shadowUpdateProc -shadowUpdatePlanar4Weak(void) -{ - return shadowUpdatePlanar4; -} - -shadowUpdateProc -shadowUpdatePlanar4x8Weak(void) -{ - return shadowUpdatePlanar4x8; -} diff --git a/xserver/miext/shadow/shplanar8.c b/xserver/miext/shadow/shplanar8.c index 214fa9aac..412335940 100644 --- a/xserver/miext/shadow/shplanar8.c +++ b/xserver/miext/shadow/shplanar8.c @@ -92,7 +92,7 @@ void shadowUpdatePlanar4x8(ScreenPtr pScreen, shadowBufPtr pBuf) { - RegionPtr damage = shadowDamage(pBuf); + RegionPtr damage = DamageRegion(pBuf->pDamage); PixmapPtr pShadow = pBuf->pPixmap; int nbox = RegionNumRects(damage); BoxPtr pbox = RegionRects(damage); diff --git a/xserver/miext/shadow/shrotate.c b/xserver/miext/shadow/shrotate.c index a0fc4ec4e..174553788 100644 --- a/xserver/miext/shadow/shrotate.c +++ b/xserver/miext/shadow/shrotate.c @@ -51,7 +51,7 @@ void shadowUpdateRotatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) { - RegionPtr damage = shadowDamage(pBuf); + RegionPtr damage = DamageRegion(pBuf->pDamage); PixmapPtr pShadow = pBuf->pPixmap; int nbox = RegionNumRects(damage); BoxPtr pbox = RegionRects(damage); @@ -296,9 +296,3 @@ shadowUpdateRotatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) } } } - -shadowUpdateProc -shadowUpdateRotatePackedWeak(void) -{ - return shadowUpdateRotatePacked; -} diff --git a/xserver/miext/shadow/shrotpack.h b/xserver/miext/shadow/shrotpack.h index b1cb30d5c..4814991f0 100644 --- a/xserver/miext/shadow/shrotpack.h +++ b/xserver/miext/shadow/shrotpack.h @@ -96,7 +96,7 @@ void FUNC(ScreenPtr pScreen, shadowBufPtr pBuf) { - RegionPtr damage = shadowDamage(pBuf); + RegionPtr damage = DamageRegion(pBuf->pDamage); PixmapPtr pShadow = pBuf->pPixmap; int nbox = RegionNumRects(damage); BoxPtr pbox = RegionRects(damage); diff --git a/xserver/miext/shadow/shrotpackYX.h b/xserver/miext/shadow/shrotpackYX.h index f3df6c549..3c5b3a122 100644 --- a/xserver/miext/shadow/shrotpackYX.h +++ b/xserver/miext/shadow/shrotpackYX.h @@ -56,7 +56,7 @@ void FUNC(ScreenPtr pScreen, shadowBufPtr pBuf) { - RegionPtr damage = shadowDamage(pBuf); + RegionPtr damage = DamageRegion(pBuf->pDamage); PixmapPtr pShadow = pBuf->pPixmap; int nbox = RegionNumRects(damage); BoxPtr pbox = RegionRects(damage); diff --git a/xserver/miext/sync/Makefile.in b/xserver/miext/sync/Makefile.in index 0dee79952..1896109c4 100644 --- a/xserver/miext/sync/Makefile.in +++ b/xserver/miext/sync/Makefile.in @@ -70,7 +70,7 @@ CONFIG_HEADER = $(top_builddir)/include/do-not-use-config.h \ $(top_builddir)/include/xorg-config.h \ $(top_builddir)/include/xkb-config.h \ $(top_builddir)/include/xwin-config.h \ - $(top_builddir)/include/kdrive-config.h \ + $(top_builddir)/include/xwayland-config.h \ $(top_builddir)/include/version-config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -343,6 +343,7 @@ RANLIB = @RANLIB@ RAWCPP = @RAWCPP@ RAWCPPFLAGS = @RAWCPPFLAGS@ RELEASE_DATE = @RELEASE_DATE@ +SCANNER_ARG = @SCANNER_ARG@ SDK_REQUIRED_MODULES = @SDK_REQUIRED_MODULES@ SED = @SED@ SELINUX_CFLAGS = @SELINUX_CFLAGS@ @@ -361,15 +362,18 @@ SYSCONFDIR = @SYSCONFDIR@ SYSTEMD_DAEMON_CFLAGS = @SYSTEMD_DAEMON_CFLAGS@ SYSTEMD_DAEMON_LIBS = @SYSTEMD_DAEMON_LIBS@ TRADITIONALCPPFLAGS = @TRADITIONALCPPFLAGS@ -TSLIB_CFLAGS = @TSLIB_CFLAGS@ -TSLIB_LIBS = @TSLIB_LIBS@ UDEV_CFLAGS = @UDEV_CFLAGS@ UDEV_LIBS = @UDEV_LIBS@ UTILS_SYS_LIBS = @UTILS_SYS_LIBS@ VENDOR_NAME_SHORT = @VENDOR_NAME_SHORT@ VERSION = @VERSION@ +WAYLAND_EGLSTREAM_CFLAGS = @WAYLAND_EGLSTREAM_CFLAGS@ +WAYLAND_EGLSTREAM_DATADIR = @WAYLAND_EGLSTREAM_DATADIR@ +WAYLAND_EGLSTREAM_LIBS = @WAYLAND_EGLSTREAM_LIBS@ WAYLAND_PROTOCOLS_DATADIR = @WAYLAND_PROTOCOLS_DATADIR@ WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ WINDOWSDRI_CFLAGS = @WINDOWSDRI_CFLAGS@ WINDOWSDRI_LIBS = @WINDOWSDRI_LIBS@ WINDOWSWM_CFLAGS = @WINDOWSWM_CFLAGS@ @@ -377,6 +381,8 @@ WINDOWSWM_LIBS = @WINDOWSWM_LIBS@ WINDRES = @WINDRES@ X11EXAMPLES_DEP_CFLAGS = @X11EXAMPLES_DEP_CFLAGS@ X11EXAMPLES_DEP_LIBS = @X11EXAMPLES_DEP_LIBS@ +XCONFIGDIR = @XCONFIGDIR@ +XCONFIGFILE = @XCONFIGFILE@ XDMCP_CFLAGS = @XDMCP_CFLAGS@ XDMCP_LIBS = @XDMCP_LIBS@ XDMXCONFIG_DEP_CFLAGS = @XDMXCONFIG_DEP_CFLAGS@ @@ -448,8 +454,6 @@ XWIN_SERVER_NAME = @XWIN_SERVER_NAME@ XWIN_SYS_LIBS = @XWIN_SYS_LIBS@ YACC = @YACC@ YFLAGS = @YFLAGS@ -__XCONFIGDIR__ = @__XCONFIGDIR__@ -__XCONFIGFILE__ = @__XCONFIGFILE__@ abi_ansic = @abi_ansic@ abi_extension = @abi_extension@ abi_videodrv = @abi_videodrv@ diff --git a/xserver/miext/sync/misync.c b/xserver/miext/sync/misync.c index 3d03d1b59..490fa0b17 100644 --- a/xserver/miext/sync/misync.c +++ b/xserver/miext/sync/misync.c @@ -127,16 +127,13 @@ void miSyncTriggerFence(SyncFence * pFence) { SyncTriggerList *ptl, *pNext; - CARD64 unused; pFence->funcs.SetTriggered(pFence); - XSyncIntToValue(&unused, 0L); - /* run through triggers to see if any fired */ for (ptl = pFence->sync.pTriglist; ptl; ptl = pNext) { pNext = ptl->next; - if ((*ptl->pTrigger->CheckTrigger) (ptl->pTrigger, unused)) + if ((*ptl->pTrigger->CheckTrigger) (ptl->pTrigger, 0)) (*ptl->pTrigger->TriggerFired) (ptl->pTrigger); } } diff --git a/xserver/miext/sync/misyncstr.h b/xserver/miext/sync/misyncstr.h index ad69e8eca..2eab2aa57 100644 --- a/xserver/miext/sync/misyncstr.h +++ b/xserver/miext/sync/misyncstr.h @@ -28,13 +28,12 @@ #ifndef _MISYNCSTR_H_ #define _MISYNCSTR_H_ +#include <stdint.h> #include "dix.h" #include "misync.h" #include "scrnintstr.h" #include <X11/extensions/syncconst.h> -#define CARD64 XSyncValue /* XXX temporary! need real 64 bit values for Alpha */ - /* Sync object types */ #define SYNC_COUNTER 0 #define SYNC_FENCE 1 @@ -49,8 +48,8 @@ typedef struct _SyncObject { typedef struct _SyncCounter { SyncObject sync; /* Common sync object data */ - CARD64 value; /* counter value */ - struct _SysCounterInfo *pSysCounterInfo; /* NULL if not a system counter */ + int64_t value; /* counter value */ + struct _SysCounterInfo *pSysCounterInfo; /* NULL if not a system counter */ } SyncCounter; struct _SyncFence { @@ -63,17 +62,14 @@ struct _SyncFence { struct _SyncTrigger { SyncObject *pSync; - CARD64 wait_value; /* wait value */ + int64_t wait_value; /* wait value */ unsigned int value_type; /* Absolute or Relative */ unsigned int test_type; /* transition or Comparision type */ - CARD64 test_value; /* trigger event threshold value */ - Bool (*CheckTrigger) (struct _SyncTrigger * /*pTrigger */ , - CARD64 /*newval */ - ); - void (*TriggerFired) (struct _SyncTrigger * /*pTrigger */ - ); - void (*CounterDestroyed) (struct _SyncTrigger * /*pTrigger */ - ); + int64_t test_value; /* trigger event threshold value */ + Bool (*CheckTrigger)(struct _SyncTrigger *pTrigger, + int64_t newval); + void (*TriggerFired)(struct _SyncTrigger *pTrigger); + void (*CounterDestroyed)(struct _SyncTrigger *pTrigger); }; typedef struct _SyncTriggerList { |