diff options
Diffstat (limited to 'xorg-server')
128 files changed, 3757 insertions, 2468 deletions
diff --git a/xorg-server/Xext/panoramiX.c b/xorg-server/Xext/panoramiX.c index 2b3a5704e..ce0d072da 100644 --- a/xorg-server/Xext/panoramiX.c +++ b/xorg-server/Xext/panoramiX.c @@ -54,6 +54,7 @@ Equipment Corporation. #include "resource.h" #include "picturestr.h" #include "xfixesint.h" +#include "damageextint.h" #ifdef COMPOSITE #include "compint.h" #endif @@ -73,7 +74,7 @@ int PanoramiXPixWidth = 0; int PanoramiXPixHeight = 0; int PanoramiXNumScreens = 0; -static RegionRec PanoramiXScreenRegion = { {0, 0, 0, 0}, NULL }; +_X_EXPORT RegionRec PanoramiXScreenRegion = { {0, 0, 0, 0}, NULL }; static int PanoramiXNumDepths; static DepthPtr PanoramiXDepths; @@ -582,6 +583,7 @@ PanoramiXExtensionInit(void) PanoramiXRenderInit(); PanoramiXFixesInit(); + PanoramiXDamageInit(); #ifdef COMPOSITE PanoramiXCompositeInit(); #endif @@ -887,6 +889,7 @@ PanoramiXResetProc(ExtensionEntry * extEntry) PanoramiXRenderReset(); PanoramiXFixesReset(); + PanoramiXDamageReset(); #ifdef COMPOSITE PanoramiXCompositeReset (); #endif diff --git a/xorg-server/Xext/panoramiXsrv.h b/xorg-server/Xext/panoramiXsrv.h index 7c605fe66..0fcde4fd5 100644 --- a/xorg-server/Xext/panoramiXsrv.h +++ b/xorg-server/Xext/panoramiXsrv.h @@ -11,6 +11,7 @@ extern _X_EXPORT int PanoramiXNumScreens; extern _X_EXPORT int PanoramiXPixWidth; extern _X_EXPORT int PanoramiXPixHeight; +extern _X_EXPORT RegionRec PanoramiXScreenRegion; extern _X_EXPORT VisualID PanoramiXTranslateVisualID(int screen, VisualID orig); extern _X_EXPORT void PanoramiXConsolidate(void); diff --git a/xorg-server/Xext/shm.c b/xorg-server/Xext/shm.c index d014b9194..1957a9525 100644 --- a/xorg-server/Xext/shm.c +++ b/xorg-server/Xext/shm.c @@ -37,6 +37,7 @@ in this Software without prior written authorization from The Open Group. #include <sys/shm.h> #include <unistd.h> #include <sys/stat.h> +#include <fcntl.h> #include <X11/X.h> #include <X11/Xproto.h> #include "misc.h" @@ -1177,6 +1178,35 @@ ProcShmAttachFd(ClientPtr client) } static int +shm_tmpfile(void) +{ +#ifdef SHMDIR + int fd; + int flags; + char template[] = SHMDIR "/shmfd-XXXXXX"; +#ifdef O_TMPFILE + fd = open(SHMDIR, O_TMPFILE|O_RDWR|O_CLOEXEC|O_EXCL, 0666); + if (fd >= 0) { + ErrorF ("Using O_TMPFILE\n"); + return fd; + } + ErrorF ("Not using O_TMPFILE\n"); +#endif + fd = mkstemp(template); + if (fd < 0) + return -1; + unlink(template); + if (fcntl(fd, F_GETFD, &flags) >= 0) { + flags |= FD_CLOEXEC; + (void) fcntl(fd, F_SETFD, &flags); + } + return fd; +#else + return -1; +#endif +} + +static int ProcShmCreateSegment(ClientPtr client) { int fd; @@ -1188,17 +1218,15 @@ ProcShmCreateSegment(ClientPtr client) .sequenceNumber = client->sequence, .length = 0, }; - char template[] = "/tmp/shm-XXXXXX"; REQUEST_SIZE_MATCH(xShmCreateSegmentReq); if ((stuff->readOnly != xTrue) && (stuff->readOnly != xFalse)) { client->errorValue = stuff->readOnly; return BadValue; } - fd = mkstemp(template); + fd = shm_tmpfile(); if (fd < 0) return BadAlloc; - unlink(template); if (ftruncate(fd, stuff->size) < 0) { close(fd); return BadAlloc; diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c index 5dc902054..dff0a92b0 100644 --- a/xorg-server/Xi/exevents.c +++ b/xorg-server/Xi/exevents.c @@ -1413,7 +1413,8 @@ DeliverTouchEmulatedEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, !(ev->device_event.flags & TOUCH_CLIENT_ID)) TouchListenerAcceptReject(dev, ti, 0, XIAcceptTouch); - if (deliveries && ev->any.type == ET_TouchEnd && + if (ev->any.type == ET_TouchEnd && + ti->num_listeners == 1 && !dev->button->buttonsDown && dev->deviceGrab.fromPassiveGrab && GrabIsPointerGrab(grab)) { (*dev->deviceGrab.DeactivateGrab) (dev); @@ -1845,7 +1846,8 @@ DeliverTouchBeginEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, if (rc == Success) { listener->state = LISTENER_IS_OWNER; /* async grabs cannot replay, so automatically accept this touch */ - if (dev->deviceGrab.grab && + if (listener->type == LISTENER_POINTER_GRAB && + dev->deviceGrab.grab && dev->deviceGrab.fromPassiveGrab && dev->deviceGrab.grab->pointerMode == GrabModeAsync) ActivateEarlyAccept(dev, ti); diff --git a/xorg-server/composite/compinit.c b/xorg-server/composite/compinit.c index bc1130e78..3c910914e 100644 --- a/xorg-server/composite/compinit.c +++ b/xorg-server/composite/compinit.c @@ -117,11 +117,11 @@ compChangeWindowAttributes(WindowPtr pWin, unsigned long mask) if (ret && (mask & CWBackingStore) && pScreen->backingStoreSupport != NotUseful) { - if (pWin->backingStore != NotUseful) { + if (pWin->backingStore != NotUseful && !pWin->backStorage) { compRedirectWindow(serverClient, pWin, CompositeRedirectAutomatic); pWin->backStorage = (pointer) (intptr_t) 1; } - else { + else if (pWin->backingStore == NotUseful && pWin->backStorage) { compUnredirectWindow(serverClient, pWin, CompositeRedirectAutomatic); pWin->backStorage = NULL; @@ -355,6 +355,9 @@ compScreenInit(ScreenPtr pScreen) return FALSE; } + if (!disableBackingStore) + pScreen->backingStoreSupport = WhenMapped; + cs->PositionWindow = pScreen->PositionWindow; pScreen->PositionWindow = compPositionWindow; diff --git a/xorg-server/composite/compoverlay.c b/xorg-server/composite/compoverlay.c index d3cfaf06f..bf5434ccb 100644 --- a/xorg-server/composite/compoverlay.c +++ b/xorg-server/composite/compoverlay.c @@ -133,16 +133,19 @@ compCreateOverlayWindow(ScreenPtr pScreen) int result; int w = pScreen->width; int h = pScreen->height; + int x = 0, y = 0; #ifdef PANORAMIX if (!noPanoramiXExtension) { + x = -pScreen->x; + y = -pScreen->y; w = PanoramiXPixWidth; h = PanoramiXPixHeight; } #endif pWin = cs->pOverlayWin = - CreateWindow(cs->overlayWid, pRoot, 0, 0, w, h, 0, + CreateWindow(cs->overlayWid, pRoot, x, y, w, h, 0, InputOutput, CWBackPixmap | CWOverrideRedirect, &attrs[0], pRoot->drawable.depth, serverClient, pScreen->rootVisual, &result); diff --git a/xorg-server/configure.ac b/xorg-server/configure.ac index 6197e9bed..7ec19976b 100644 --- a/xorg-server/configure.ac +++ b/xorg-server/configure.ac @@ -26,9 +26,9 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.60) -AC_INIT([xorg-server], 1.14.99.903, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2013-11-23" -RELEASE_NAME="Apple Pie" +AC_INIT([xorg-server], 1.14.99.905, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2013-12-19" +RELEASE_NAME="Kraken" AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AC_USE_SYSTEM_EXTENSIONS @@ -782,12 +782,12 @@ DRI3PROTO="dri3proto >= 1.0" XINERAMAPROTO="xineramaproto" BIGFONTPROTO="xf86bigfontproto >= 1.2.0" DGAPROTO="xf86dgaproto >= 2.0.99.1" -GLPROTO="glproto >= 1.4.16" +GLPROTO="glproto >= 1.4.17" DMXPROTO="dmxproto >= 2.2.99.1" VIDMODEPROTO="xf86vidmodeproto >= 2.2.99.1" WINDOWSWMPROTO="windowswmproto" APPLEWMPROTO="applewmproto >= 1.4" -XSHMFENCE="xshmfence" +XSHMFENCE="xshmfence >= 1.1" dnl Required modules XPROTO="xproto >= 7.0.22" @@ -1086,6 +1086,49 @@ case "$DRI2,$HAVE_DRI2PROTO" in esac AM_CONDITIONAL(DRI2, test "x$DRI2" = xyes) +dnl +dnl Locate a suitable tmp file system for creating shared memeory files +dnl + +AC_ARG_WITH(shared-memory-dir, AS_HELP_STRING([--with-shared-memory-dir=PATH], [Path to directory in a world-writable temporary directory for anonymous shared memory (default: auto)]), +[], +[with_shared_memory_dir=yes]) + +shmdirs="/run/shm /var/tmp /tmp" + +case x"$with_shared_memory_dir" in +xyes) + for dir in $shmdirs; do + case x"$with_shared_memory_dir" in + xyes) + echo Checking temp dir "$dir" + if test -d "$dir"; then + with_shared_memory_dir="$dir" + fi + ;; + esac + done + ;; +x/*) + ;; +xno) + ;; +*) + AC_MSG_ERROR([Invalid directory specified for --with-shared-memory-dir: $with_shared_memory_dir]) + ;; +esac + +case x"$with_shared_memory_dir" in +xyes) + AC_MSG_ERROR([No directory found for shared memory temp files.]) + ;; +xno) + ;; +*) + AC_DEFINE_UNQUOTED(SHMDIR, ["$with_shared_memory_dir"], [Directory for shared memory temp files]) + ;; +esac + AC_ARG_ENABLE(xtrans-send-fds, AS_HELP_STRING([--disable-xtrans-send-fds], [Use Xtrans support for fd passing (default: auto)]), [XTRANS_SEND_FDS=$enableval], [XTRANS_SEND_FDS=auto]) case "x$XTRANS_SEND_FDS" in @@ -1175,7 +1218,7 @@ case "$DRI3,$HAVE_XSHMFENCE" in yes,yes | auto,yes) ;; yes,no) - AC_MSG_ERROR("DRI3 requested, but xshmfence not found.]) + AC_MSG_ERROR([DRI3 requested, but xshmfence not found.]) DRI3=no ;; no,*) @@ -1830,7 +1873,7 @@ if test "x$XORG" = xyes; then if test "x$CONFIG_UDEV_KMS" = xyes; then AC_MSG_ERROR([Platform device enumeration requires libpciaccess]) fi - if test "x$INT10" != xstub; then + if test "x$INT10MODULE" = xyes && test "x$INT10" != xstub; then AC_MSG_ERROR([Cannot build int10 without libpciaccess]) fi fi @@ -2065,8 +2108,8 @@ if test "x$XWIN" = xyes; then ;; esac - XWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $RANDR_LIB $RENDER_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $OS_LIB" - XWIN_SYS_LIBS="$XWIN_SYS_LIBS $XWINMODULES_LIBS $GLX_SYS_LIBS" + XWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $RANDR_LIB $RENDER_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DAMAGE_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $OS_LIB" + XWIN_SYS_LIBS="$XWIN_SYS_LIBS $XWINMODULES_LIBS" AC_SUBST(XWIN_LIBS) AC_SUBST(XWIN_SERVER_NAME) AC_SUBST(XWIN_SYS_LIBS) @@ -2082,10 +2125,16 @@ if test "x$XWIN" = xyes; then dnl XWin with AIGLX requires OpenGL spec files in order to generate wrapper code for native GL functions if [test "x$XWIN" = xyes && test "x$AIGLX" = xyes] ; then - AC_CHECK_PROG(PYTHON, python, python) - if test -z "$PYTHON"; then - AC_MSG_ERROR([python not found]) + AC_CHECK_PROG(PYTHON3, python3, python3) + if test -z "$PYTHON3"; then + AC_MSG_ERROR([python3 not found]) + fi + AC_MSG_CHECKING(for python module lxml) + $PYTHON3 -c "import lxml;" + if test $? -ne 0 ; then + AC_MSG_ERROR([not found]) fi + AC_MSG_RESULT(yes) if test "x$KHRONOS_SPEC_DIR" = "xauto" ; then PKG_CHECK_MODULES([KHRONOS_OPENGL_REGISTRY], [khronos-opengl-registry]) KHRONOS_SPEC_DIR=`pkg-config khronos-opengl-registry --variable=specdir` @@ -2109,7 +2158,7 @@ if test "x$XQUARTZ" = xyes; then AC_DEFINE(XQUARTZ,1,[Have Quartz]) AC_DEFINE(ROOTLESS,1,[Build Rootless code]) - XQUARTZ_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB" + XQUARTZ_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB $PRESENT_LIB" AC_SUBST([XQUARTZ_LIBS]) AC_CHECK_LIB([Xplugin],[xp_init],[:]) diff --git a/xorg-server/damageext/damageext.c b/xorg-server/damageext/damageext.c index 9521c2676..5650953f2 100644 --- a/xorg-server/damageext/damageext.c +++ b/xorg-server/damageext/damageext.c @@ -1,5 +1,6 @@ /* * Copyright © 2002 Keith Packard + * Copyright 2013 Red Hat, Inc. * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -25,9 +26,24 @@ #endif #include "damageextint.h" +#include "damagestr.h" #include "protocol-versions.h" #include "extinit.h" +#ifdef PANORAMIX +#include "panoramiX.h" +#include "panoramiXsrv.h" + +typedef struct { + DamageExtPtr ext; + DamagePtr damage[MAXSCREENS]; +} PanoramiXDamageRes; + +static RESTYPE XRT_DAMAGE; +static int (*PanoramiXSaveDamageCreate) (ClientPtr); + +#endif + static unsigned char DamageReqCode; static int DamageEventBase; static RESTYPE DamageExtType; @@ -37,13 +53,49 @@ static DevPrivateKeyRec DamageClientPrivateKeyRec; #define DamageClientPrivateKey (&DamageClientPrivateKeyRec) static void +DamageNoteCritical(ClientPtr pClient) +{ + DamageClientPtr pDamageClient = GetDamageClient(pClient); + + /* Composite extension marks clients with manual Subwindows as critical */ + if (pDamageClient->critical > 0) { + SetCriticalOutputPending(); + pClient->smart_priority = SMART_MAX_PRIORITY; + } +} + +static void +damageGetGeometry(DrawablePtr draw, int *x, int *y, int *w, int *h) +{ +#ifdef PANORAMIX + if (!noPanoramiXExtension && draw->type == DRAWABLE_WINDOW) { + WindowPtr win = (WindowPtr)draw; + + if (!win->parent) { + *x = screenInfo.x; + *y = screenInfo.y; + *w = screenInfo.width; + *h = screenInfo.height; + return; + } + } +#endif + + *x = draw->x; + *y = draw->y; + *w = draw->width; + *h = draw->height; +} + +static void DamageExtNotify(DamageExtPtr pDamageExt, BoxPtr pBoxes, int nBoxes) { ClientPtr pClient = pDamageExt->pClient; - DamageClientPtr pDamageClient = GetDamageClient(pClient); DrawablePtr pDrawable = pDamageExt->pDrawable; xDamageNotifyEvent ev; - int i; + int i, x, y, w, h; + + damageGetGeometry(pDrawable, &x, &y, &w, &h); UpdateCurrentTimeIf(); ev = (xDamageNotifyEvent) { @@ -52,10 +104,10 @@ DamageExtNotify(DamageExtPtr pDamageExt, BoxPtr pBoxes, int nBoxes) .drawable = pDamageExt->drawable, .damage = pDamageExt->id, .timestamp = currentTime.milliseconds, - .geometry.x = pDrawable->x, - .geometry.y = pDrawable->y, - .geometry.width = pDrawable->width, - .geometry.height = pDrawable->height + .geometry.x = x, + .geometry.y = y, + .geometry.width = w, + .geometry.height = h }; if (pBoxes) { for (i = 0; i < nBoxes; i++) { @@ -72,15 +124,12 @@ DamageExtNotify(DamageExtPtr pDamageExt, BoxPtr pBoxes, int nBoxes) else { ev.area.x = 0; ev.area.y = 0; - ev.area.width = pDrawable->width; - ev.area.height = pDrawable->height; + ev.area.width = w; + ev.area.height = h; WriteEventsToClient(pClient, 1, (xEvent *) &ev); } - /* Composite extension marks clients with manual Subwindows as critical */ - if (pDamageClient->critical > 0) { - SetCriticalOutputPending(); - pClient->smart_priority = SMART_MAX_PRIORITY; - } + + DamageNoteCritical(pClient); } static void @@ -162,23 +211,62 @@ ProcDamageQueryVersion(ClientPtr client) return Success; } -static int -ProcDamageCreate(ClientPtr client) +static void +DamageExtRegister(DrawablePtr pDrawable, DamagePtr pDamage, Bool report) +{ + DamageSetReportAfterOp(pDamage, TRUE); + DamageRegister(pDrawable, pDamage); + + if (report) { + RegionPtr pRegion = &((WindowPtr) pDrawable)->borderClip; + RegionTranslate(pRegion, -pDrawable->x, -pDrawable->y); + DamageReportDamage(pDamage, pRegion); + RegionTranslate(pRegion, pDrawable->x, pDrawable->y); + } +} + +static DamageExtPtr +DamageExtCreate(DrawablePtr pDrawable, DamageReportLevel level, + ClientPtr client, XID id, XID drawable) +{ + DamageExtPtr pDamageExt = malloc(sizeof(DamageExtRec)); + if (!pDamageExt) + return NULL; + + pDamageExt->id = id; + pDamageExt->drawable = drawable; + pDamageExt->pDrawable = pDrawable; + pDamageExt->level = level; + pDamageExt->pClient = client; + pDamageExt->pDamage = DamageCreate(DamageExtReport, DamageExtDestroy, level, + FALSE, pDrawable->pScreen, pDamageExt); + if (!pDamageExt->pDamage) { + free(pDamageExt); + return NULL; + } + + if (!AddResource(id, DamageExtType, (pointer) pDamageExt)) + return NULL; + + DamageExtRegister(pDrawable, pDamageExt->pDamage, + pDrawable->type == DRAWABLE_WINDOW); + + return pDamageExt; +} + +static DamageExtPtr +doDamageCreate(ClientPtr client, int *rc) { DrawablePtr pDrawable; DamageExtPtr pDamageExt; DamageReportLevel level; - RegionPtr pRegion; - int rc; REQUEST(xDamageCreateReq); - REQUEST_SIZE_MATCH(xDamageCreateReq); - LEGAL_NEW_RESOURCE(stuff->damage, client); - rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0, - DixGetAttrAccess | DixReadAccess); - if (rc != Success) - return rc; + *rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0, + DixGetAttrAccess | DixReadAccess); + if (*rc != Success) + return NULL; switch (stuff->level) { case XDamageReportRawRectangles: @@ -195,39 +283,27 @@ ProcDamageCreate(ClientPtr client) break; default: client->errorValue = stuff->level; - return BadValue; + *rc = BadValue; + return NULL; } - pDamageExt = malloc(sizeof(DamageExtRec)); + pDamageExt = DamageExtCreate(pDrawable, level, client, stuff->damage, + stuff->drawable); if (!pDamageExt) - return BadAlloc; - pDamageExt->id = stuff->damage; - pDamageExt->drawable = stuff->drawable; - pDamageExt->pDrawable = pDrawable; - pDamageExt->level = level; - pDamageExt->pClient = client; - pDamageExt->pDamage = DamageCreate(DamageExtReport, - DamageExtDestroy, - level, - FALSE, pDrawable->pScreen, pDamageExt); - if (!pDamageExt->pDamage) { - free(pDamageExt); - return BadAlloc; - } - if (!AddResource(stuff->damage, DamageExtType, (pointer) pDamageExt)) - return BadAlloc; - - DamageSetReportAfterOp(pDamageExt->pDamage, TRUE); - DamageRegister(pDamageExt->pDrawable, pDamageExt->pDamage); + *rc = BadAlloc; - if (pDrawable->type == DRAWABLE_WINDOW) { - pRegion = &((WindowPtr) pDrawable)->borderClip; - RegionTranslate(pRegion, -pDrawable->x, -pDrawable->y); - DamageReportDamage(pDamageExt->pDamage, pRegion); - RegionTranslate(pRegion, pDrawable->x, pDrawable->y); - } + return pDamageExt; +} - return Success; +static int +ProcDamageCreate(ClientPtr client) +{ + int rc; + REQUEST(xDamageCreateReq); + REQUEST_SIZE_MATCH(xDamageCreateReq); + LEGAL_NEW_RESOURCE(stuff->damage, client); + doDamageCreate(client, &rc); + return rc; } static int @@ -242,6 +318,88 @@ ProcDamageDestroy(ClientPtr client) return Success; } +#ifdef PANORAMIX +static RegionPtr +DamageExtSubtractWindowClip(DamageExtPtr pDamageExt) +{ + WindowPtr win = (WindowPtr)pDamageExt->pDrawable; + PanoramiXRes *res = NULL; + RegionPtr ret; + int i; + + if (!win->parent) + return &PanoramiXScreenRegion; + + dixLookupResourceByType((void **)&res, win->drawable.id, XRT_WINDOW, + serverClient, DixReadAccess); + if (!res) + return NULL; + + ret = RegionCreate(NULL, 0); + if (!ret) + return NULL; + + FOR_NSCREENS_FORWARD(i) { + ScreenPtr screen; + if (Success != dixLookupWindow(&win, res->info[i].id, serverClient, + DixReadAccess)) + goto out; + + screen = win->drawable.pScreen; + + RegionTranslate(ret, -screen->x, -screen->y); + if (!RegionUnion(ret, ret, &win->borderClip)) + goto out; + RegionTranslate(ret, screen->x, screen->y); + } + + return ret; + +out: + RegionDestroy(ret); + return NULL; +} + +static void +DamageExtFreeWindowClip(RegionPtr reg) +{ + if (reg != &PanoramiXScreenRegion) + RegionDestroy(reg); +} +#endif + +/* + * DamageSubtract intersects with borderClip, so we must reconstruct the + * protocol's perspective of same... + */ +static Bool +DamageExtSubtract(DamageExtPtr pDamageExt, const RegionPtr pRegion) +{ + DamagePtr pDamage = pDamageExt->pDamage; + +#ifdef PANORAMIX + if (!noPanoramiXExtension) { + RegionPtr damage = DamageRegion(pDamage); + RegionSubtract(damage, damage, pRegion); + + if (pDamageExt->pDrawable->type == DRAWABLE_WINDOW) { + DrawablePtr pDraw = pDamageExt->pDrawable; + RegionPtr clip = DamageExtSubtractWindowClip(pDamageExt); + if (clip) { + RegionTranslate(clip, -pDraw->x, -pDraw->y); + RegionIntersect(damage, damage, clip); + RegionTranslate(clip, pDraw->x, pDraw->y); + DamageExtFreeWindowClip(clip); + } + } + + return RegionNotEmpty(damage); + } +#endif + + return DamageSubtract(pDamage, pRegion); +} + static int ProcDamageSubtract(ClientPtr client) { @@ -261,7 +419,7 @@ ProcDamageSubtract(ClientPtr client) if (pRepair) { if (pParts) RegionIntersect(pParts, DamageRegion(pDamage), pRepair); - if (DamageSubtract(pDamage, pRepair)) + if (DamageExtSubtract(pDamageExt, pRepair)) DamageExtReport(pDamage, DamageRegion(pDamage), (void *) pDamageExt); } @@ -271,6 +429,7 @@ ProcDamageSubtract(ClientPtr client) DamageEmpty(pDamage); } } + return Success; } @@ -460,6 +619,127 @@ SDamageNotifyEvent(xDamageNotifyEvent * from, xDamageNotifyEvent * to) cpswaps(from->geometry.height, to->geometry.height); } +#ifdef PANORAMIX + +static void +PanoramiXDamageReport(DamagePtr pDamage, RegionPtr pRegion, void *closure) +{ + PanoramiXDamageRes *res = closure; + DamageExtPtr pDamageExt = res->ext; + WindowPtr pWin = (WindowPtr)pDamage->pDrawable; + ScreenPtr pScreen = pDamage->pScreen; + + /* happens on unmap? sigh xinerama */ + if (RegionNil(pRegion)) + return; + + /* translate root windows if necessary */ + if (!pWin->parent) + RegionTranslate(pRegion, pScreen->x, pScreen->y); + + /* add our damage to the protocol view */ + DamageReportDamage(pDamageExt->pDamage, pRegion); + + /* empty our view */ + DamageEmpty(pDamage); +} + +static void +PanoramiXDamageExtDestroy(DamagePtr pDamage, void *closure) +{ + PanoramiXDamageRes *damage = closure; + damage->damage[pDamage->pScreen->myNum] = NULL; +} + +static int +PanoramiXDamageCreate(ClientPtr client) +{ + PanoramiXDamageRes *damage; + PanoramiXRes *draw; + int i, rc; + + REQUEST(xDamageCreateReq); + + REQUEST_SIZE_MATCH(xDamageCreateReq); + LEGAL_NEW_RESOURCE(stuff->damage, client); + rc = dixLookupResourceByClass((void **)&draw, stuff->drawable, XRC_DRAWABLE, + client, DixGetAttrAccess | DixReadAccess); + if (rc != Success) + return rc; + + if (!(damage = calloc(1, sizeof(PanoramiXDamageRes)))) + return BadAlloc; + + if (!AddResource(stuff->damage, XRT_DAMAGE, damage)) + return BadAlloc; + + damage->ext = doDamageCreate(client, &rc); + if (rc == Success && draw->type == XRT_WINDOW) { + FOR_NSCREENS_FORWARD(i) { + DrawablePtr pDrawable; + DamagePtr pDamage = DamageCreate(PanoramiXDamageReport, + PanoramiXDamageExtDestroy, + DamageReportRawRegion, + FALSE, + screenInfo.screens[i], + damage); + if (!pDamage) { + rc = BadAlloc; + } else { + damage->damage[i] = pDamage; + rc = dixLookupDrawable(&pDrawable, draw->info[i].id, client, + M_WINDOW, + DixGetAttrAccess | DixReadAccess); + } + if (rc != Success) + break; + + DamageExtRegister(pDrawable, pDamage, i != 0); + } + } + + if (rc != Success) + FreeResource(stuff->damage, RT_NONE); + + return rc; +} + +static int +PanoramiXDamageDelete(void *res, XID id) +{ + int i; + PanoramiXDamageRes *damage = res; + + FOR_NSCREENS_BACKWARD(i) { + if (damage->damage[i]) { + DamageDestroy(damage->damage[i]); + damage->damage[i] = NULL; + } + } + + free(damage); + return 1; +} + +void +PanoramiXDamageInit(void) +{ + XRT_DAMAGE = CreateNewResourceType(PanoramiXDamageDelete, "XineramaDamage"); + if (!XRT_DAMAGE) + FatalError("Couldn't Xineramify Damage extension\n"); + + PanoramiXSaveDamageCreate = ProcDamageVector[X_DamageCreate]; + ProcDamageVector[X_DamageCreate] = PanoramiXDamageCreate; +} + +void +PanoramiXDamageReset(void) +{ + ProcDamageVector[X_DamageCreate] = PanoramiXSaveDamageCreate; +} + +#endif /* PANORAMIX */ + void DamageExtensionInit(void) { @@ -490,5 +770,10 @@ DamageExtensionInit(void) (EventSwapPtr) SDamageNotifyEvent; SetResourceTypeErrorValue(DamageExtType, extEntry->errorBase + BadDamage); +#ifdef PANORAMIX + if (XRT_DAMAGE) + SetResourceTypeErrorValue(XRT_DAMAGE, + extEntry->errorBase + BadDamage); +#endif } } diff --git a/xorg-server/damageext/damageextint.h b/xorg-server/damageext/damageextint.h index 272337922..e50149501 100644 --- a/xorg-server/damageext/damageextint.h +++ b/xorg-server/damageext/damageextint.h @@ -67,4 +67,7 @@ typedef struct _DamageExt { void DamageExtSetCritical(ClientPtr pClient, Bool critical); +void PanoramiXDamageInit(void); +void PanoramiXDamageReset(void); + #endif /* _DAMAGEEXTINT_H_ */ diff --git a/xorg-server/dix/dispatch.c b/xorg-server/dix/dispatch.c index 4fecfea7b..8dcd9cbcf 100644 --- a/xorg-server/dix/dispatch.c +++ b/xorg-server/dix/dispatch.c @@ -220,8 +220,9 @@ UpdateCurrentTimeIf(void) #undef SMART_DEBUG -#define SMART_SCHEDULE_DEFAULT_INTERVAL 20 /* ms */ -#define SMART_SCHEDULE_MAX_SLICE 200 /* ms */ +/* in milliseconds */ +#define SMART_SCHEDULE_DEFAULT_INTERVAL 5 +#define SMART_SCHEDULE_MAX_SLICE 15 #if defined(WIN32) && !defined(__CYGWIN__) Bool SmartScheduleDisable = TRUE; diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c index 4632bb7db..4aaa54c85 100644 --- a/xorg-server/dix/events.c +++ b/xorg-server/dix/events.c @@ -4696,7 +4696,7 @@ DeviceEnterLeaveEvent(DeviceIntPtr mouse, filter = GetEventFilter(mouse, (xEvent *) event); - if (grab && grab->type == XI2) { + if (grab && grab->grabtype == XI2) { Mask mask; mask = xi2mask_isset(grab->xi2mask, mouse, type); diff --git a/xorg-server/dix/window.c b/xorg-server/dix/window.c index 92df1eb4c..0e9109e89 100644 --- a/xorg-server/dix/window.c +++ b/xorg-server/dix/window.c @@ -530,7 +530,11 @@ CreateRootWindow(ScreenPtr pScreen) if (disableBackingStore) pScreen->backingStoreSupport = NotUseful; if (enableBackingStore) - pScreen->backingStoreSupport = Always; + pScreen->backingStoreSupport = WhenMapped; +#ifdef COMPOSITE + if (noCompositeExtension) + pScreen->backingStoreSupport = NotUseful; +#endif pScreen->saveUnderSupport = NotUseful; diff --git a/xorg-server/dri3/dri3.c b/xorg-server/dri3/dri3.c index 2bca7ae9b..76e07b40e 100644 --- a/xorg-server/dri3/dri3.c +++ b/xorg-server/dri3/dri3.c @@ -68,6 +68,11 @@ dri3_extension_init(void) ExtensionEntry *extension; int i; +#ifdef PANORAMIX + if (!noPanoramiXExtension) + return; +#endif + extension = AddExtension(DRI3_NAME, DRI3NumberEvents, DRI3NumberErrors, proc_dri3_dispatch, sproc_dri3_dispatch, NULL, StandardMinorOpcode); diff --git a/xorg-server/dri3/dri3_request.c b/xorg-server/dri3/dri3_request.c index 3ebb9d509..4e1408fb5 100644 --- a/xorg-server/dri3/dri3_request.c +++ b/xorg-server/dri3/dri3_request.c @@ -29,6 +29,7 @@ #include <unistd.h> #include <xace.h> #include "../Xext/syncsdk.h" +#include <protocol-versions.h> static int proc_dri3_query_version(ClientPtr client) @@ -38,8 +39,8 @@ proc_dri3_query_version(ClientPtr client) .type = X_Reply, .sequenceNumber = client->sequence, .length = 0, - .majorVersion = DRI3_MAJOR, - .minorVersion = DRI3_MINOR + .majorVersion = SERVER_DRI3_MAJOR_VERSION, + .minorVersion = SERVER_DRI3_MINOR_VERSION }; REQUEST_SIZE_MATCH(xDRI3QueryVersionReq); diff --git a/xorg-server/dri3/dri3_screen.c b/xorg-server/dri3/dri3_screen.c index cf2735b8d..c88029612 100644 --- a/xorg-server/dri3/dri3_screen.c +++ b/xorg-server/dri3/dri3_screen.c @@ -55,6 +55,9 @@ dri3_pixmap_from_fd(PixmapPtr *ppixmap, ScreenPtr screen, int fd, dri3_screen_info_ptr info = ds->info; PixmapPtr pixmap; + if (!info || !info->pixmap_from_fd) + return BadImplementation; + pixmap = (*info->pixmap_from_fd) (screen, fd, width, height, stride, depth, bpp); if (!pixmap) return BadAlloc; @@ -71,6 +74,9 @@ dri3_fd_from_pixmap(int *pfd, PixmapPtr pixmap, CARD16 *stride, CARD32 *size) dri3_screen_info_ptr info = ds->info; int fd; + if (!info || !info->fd_from_pixmap) + return BadImplementation; + fd = (*info->fd_from_pixmap)(screen, pixmap, stride, size); if (fd < 0) return BadAlloc; diff --git a/xorg-server/glx/Makefile.am b/xorg-server/glx/Makefile.am index 5f28e87da..54e81406d 100644 --- a/xorg-server/glx/Makefile.am +++ b/xorg-server/glx/Makefile.am @@ -20,7 +20,8 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/hw/xfree86/os-support/bus \ -I$(top_srcdir)/hw/xfree86/common \ -I$(top_srcdir)/hw/xfree86/dri \ - -I$(top_srcdir)/mi + -I$(top_srcdir)/mi \ + -I$(top_srcdir)/present if DRI2_AIGLX AM_CPPFLAGS += -I$(top_srcdir)/hw/xfree86/dri2 @@ -69,7 +70,6 @@ libglx_la_SOURCES = \ glxscreens.c \ glxscreens.h \ glxserver.h \ - glxstubs.c \ glxutil.h \ render2.c \ render2swap.c \ diff --git a/xorg-server/glx/glxcmds.c b/xorg-server/glx/glxcmds.c index efa4aecb2..b8da04882 100644 --- a/xorg-server/glx/glxcmds.c +++ b/xorg-server/glx/glxcmds.c @@ -2468,3 +2468,64 @@ __glXDisp_ClientInfo(__GLXclientState * cl, GLbyte * pc) return Success; } + +#include <GL/glxtokens.h> + +void +__glXsendSwapEvent(__GLXdrawable *drawable, int type, CARD64 ust, + CARD64 msc, CARD32 sbc) +{ + ClientPtr client = clients[CLIENT_ID(drawable->drawId)]; + + xGLXBufferSwapComplete2 wire = { + .type = __glXEventBase + GLX_BufferSwapComplete + }; + + if (!client) + return; + + if (!(drawable->eventMask & GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK)) + return; + + wire.event_type = type; + wire.drawable = drawable->drawId; + wire.ust_hi = ust >> 32; + wire.ust_lo = ust & 0xffffffff; + wire.msc_hi = msc >> 32; + wire.msc_lo = msc & 0xffffffff; + wire.sbc = sbc; + + WriteEventsToClient(client, 1, (xEvent *) &wire); +} + +#if PRESENT +static void +__glXpresentCompleteNotify(WindowPtr window, CARD8 present_mode, CARD32 serial, + uint64_t ust, uint64_t msc) +{ + __GLXdrawable *drawable; + int glx_type; + int rc; + + rc = dixLookupResourceByType((pointer *) &drawable, window->drawable.id, + __glXDrawableRes, serverClient, DixGetAttrAccess); + + if (rc != Success) + return; + + if (present_mode == PresentCompleteModeFlip) + glx_type = GLX_FLIP_COMPLETE_INTEL; + else + glx_type = GLX_BLIT_COMPLETE_INTEL; + + __glXsendSwapEvent(drawable, glx_type, ust, msc, serial); +} + +#include <present.h> + +void +__glXregisterPresentCompleteNotify(void) +{ + present_register_complete_notify(__glXpresentCompleteNotify); +} +#endif diff --git a/xorg-server/glx/glxdri2.c b/xorg-server/glx/glxdri2.c index fbbd1fd95..b2f3d6ee8 100644 --- a/xorg-server/glx/glxdri2.c +++ b/xorg-server/glx/glxdri2.c @@ -55,7 +55,6 @@ typedef struct __GLXDRIscreen __GLXDRIscreen; typedef struct __GLXDRIcontext __GLXDRIcontext; typedef struct __GLXDRIdrawable __GLXDRIdrawable; - #ifdef __DRI2_ROBUSTNESS #define ALL_DRI_CTX_FLAGS (__DRI_CTX_FLAG_DEBUG \ | __DRI_CTX_FLAG_FORWARD_COMPATIBLE \ @@ -177,36 +176,25 @@ __glXdriSwapEvent(ClientPtr client, void *data, int type, CARD64 ust, CARD64 msc, CARD32 sbc) { __GLXdrawable *drawable = data; - xGLXBufferSwapComplete2 wire = { - .type = __glXEventBase + GLX_BufferSwapComplete - }; - - if (!(drawable->eventMask & GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK)) - return; - + int glx_type; switch (type) { case DRI2_EXCHANGE_COMPLETE: - wire.event_type = GLX_EXCHANGE_COMPLETE_INTEL; + glx_type = GLX_EXCHANGE_COMPLETE_INTEL; break; + default: + /* unknown swap completion type, + * BLIT is a reasonable default, so + * fall through ... + */ case DRI2_BLIT_COMPLETE: - wire.event_type = GLX_BLIT_COMPLETE_INTEL; + glx_type = GLX_BLIT_COMPLETE_INTEL; break; case DRI2_FLIP_COMPLETE: - wire.event_type = GLX_FLIP_COMPLETE_INTEL; - break; - default: - /* unknown swap completion type */ - wire.event_type = 0; + glx_type = GLX_FLIP_COMPLETE_INTEL; break; } - wire.drawable = drawable->drawId; - wire.ust_hi = ust >> 32; - wire.ust_lo = ust & 0xffffffff; - wire.msc_hi = msc >> 32; - wire.msc_lo = msc & 0xffffffff; - wire.sbc = sbc; - - WriteEventsToClient(client, 1, (xEvent *) &wire); + + __glXsendSwapEvent(drawable, glx_type, ust, msc, sbc); } /* @@ -784,7 +772,7 @@ dri2FlushFrontBuffer(__DRIdrawable * driDrawable, void *loaderPrivate) } static const __DRIdri2LoaderExtension loaderExtension = { - {__DRI_DRI2_LOADER, __DRI_DRI2_LOADER_VERSION}, + {__DRI_DRI2_LOADER, 3}, dri2GetBuffers, dri2FlushFrontBuffer, dri2GetBuffersWithFormat, @@ -792,7 +780,7 @@ static const __DRIdri2LoaderExtension loaderExtension = { #ifdef __DRI_USE_INVALIDATE static const __DRIuseInvalidateExtension dri2UseInvalidate = { - {__DRI_USE_INVALIDATE, __DRI_USE_INVALIDATE_VERSION} + {__DRI_USE_INVALIDATE, 1} }; #endif @@ -940,6 +928,9 @@ initializeExtensions(__GLXDRIscreen * screen) } } +/* white lie */ +extern glx_func_ptr glXGetProcAddressARB(const char *); + static __GLXscreen * __glXDRIscreenProbe(ScreenPtr pScreen) { @@ -1024,6 +1015,8 @@ __glXDRIscreenProbe(ScreenPtr pScreen) screen->leaveVT = pScrn->LeaveVT; pScrn->LeaveVT = glxDRILeaveVT; + __glXsetGetProcAddress(glXGetProcAddressARB); + LogMessage(X_INFO, "AIGLX: Loaded and initialized %s\n", driverName); return &screen->base; diff --git a/xorg-server/glx/glxdricommon.c b/xorg-server/glx/glxdricommon.c index 1022c0075..fc902729d 100644 --- a/xorg-server/glx/glxdricommon.c +++ b/xorg-server/glx/glxdricommon.c @@ -59,7 +59,7 @@ getUST(int64_t * ust) } const __DRIsystemTimeExtension systemTimeExtension = { - {__DRI_SYSTEM_TIME, __DRI_SYSTEM_TIME_VERSION}, + {__DRI_SYSTEM_TIME, 1}, getUST, NULL, }; diff --git a/xorg-server/glx/glxdriswrast.c b/xorg-server/glx/glxdriswrast.c index c9962dc81..cbc109a6d 100644 --- a/xorg-server/glx/glxdriswrast.c +++ b/xorg-server/glx/glxdriswrast.c @@ -386,7 +386,7 @@ swrastGetImage(__DRIdrawable * draw, } static const __DRIswrastLoaderExtension swrastLoaderExtension = { - {__DRI_SWRAST_LOADER, __DRI_SWRAST_LOADER_VERSION}, + {__DRI_SWRAST_LOADER, 1}, swrastGetDrawableInfo, swrastPutImage, swrastGetImage @@ -425,6 +425,9 @@ initializeExtensions(__GLXDRIscreen * screen) } } +/* white lie */ +extern glx_func_ptr glXGetProcAddressARB(const char *); + static __GLXscreen * __glXDRIscreenProbe(ScreenPtr pScreen) { @@ -443,9 +446,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen) screen->driver = glxProbeDriver(driverName, (void **) &screen->core, - __DRI_CORE, __DRI_CORE_VERSION, + __DRI_CORE, 1, (void **) &screen->swrast, - __DRI_SWRAST, __DRI_SWRAST_VERSION); + __DRI_SWRAST, 1); if (screen->driver == NULL) { goto handle_error; } @@ -472,6 +475,8 @@ __glXDRIscreenProbe(ScreenPtr pScreen) screen->base.GLXmajor = 1; screen->base.GLXminor = 4; + __glXsetGetProcAddress(glXGetProcAddressARB); + LogMessage(X_INFO, "AIGLX: Loaded and initialized %s\n", driverName); return &screen->base; diff --git a/xorg-server/glx/glxext.c b/xorg-server/glx/glxext.c index 3a7de28fb..316b4f6e8 100644 --- a/xorg-server/glx/glxext.c +++ b/xorg-server/glx/glxext.c @@ -399,6 +399,9 @@ GlxExtensionInit(void) __glXErrorBase = extEntry->errorBase; __glXEventBase = extEntry->eventBase; +#if PRESENT + __glXregisterPresentCompleteNotify(); +#endif } /************************************************************************/ @@ -541,17 +544,19 @@ __glXleaveServer(GLboolean rendering) glxServerLeaveCount++; } -static void (*(*_get_proc_address)(const char *))(void); +static glx_gpa_proc _get_proc_address; void -__glXsetGetProcAddress(void (*(*get_proc_address) (const char *))(void)) +__glXsetGetProcAddress(glx_gpa_proc get_proc_address) { _get_proc_address = get_proc_address; } void *__glGetProcAddress(const char *proc) { - return _get_proc_address(proc); + void *ret = _get_proc_address(proc); + + return ret ? ret : NoopDDA; } /* diff --git a/xorg-server/glx/glxserver.h b/xorg-server/glx/glxserver.h index 5e29abb28..7f36e5f5e 100644 --- a/xorg-server/glx/glxserver.h +++ b/xorg-server/glx/glxserver.h @@ -117,9 +117,20 @@ void __glXleaveServer(GLboolean rendering); void glxSuspendClients(void); void glxResumeClients(void); -void __glXsetGetProcAddress(void (*(*get_proc_address) (const char *)) (void)); +typedef void (*glx_func_ptr)(void); +typedef glx_func_ptr (*glx_gpa_proc)(const char *); +void __glXsetGetProcAddress(glx_gpa_proc get_proc_address); void *__glGetProcAddress(const char *); +void +__glXsendSwapEvent(__GLXdrawable *drawable, int type, CARD64 ust, + CARD64 msc, CARD32 sbc); + +#if PRESENT +void +__glXregisterPresentCompleteNotify(void); +#endif + /* ** State kept per client. */ diff --git a/xorg-server/glx/glxstubs.c b/xorg-server/glx/glxstubs.c deleted file mode 100644 index 69bc00480..000000000 --- a/xorg-server/glx/glxstubs.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright © 2013 Red Hat, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Authors: - * Adam Jackson <ajax@redhat.com> - */ - -/* - * Redirection stubs for things that we call by name but that aren't exported - * from libGL by name. Strictly speaking this list should be a lot longer, - * but this is enough to get us linking against contemporary Mesa. - */ - -#include <inttypes.h> -#include "glxserver.h" - -#define thunk(name, type, call_args, ...) \ - _X_HIDDEN void name(__VA_ARGS__) { \ - static type proc; \ - if (!proc) proc = __glGetProcAddress(#name); \ - proc call_args; \ - } - -thunk(glSampleMaskSGIS, PFNGLSAMPLEMASKSGISPROC, - (value, invert), GLclampf value, GLboolean invert) - -thunk(glSamplePatternSGIS, PFNGLSAMPLEPATTERNSGISPROC, - (pattern), GLenum pattern) - -thunk(glActiveStencilFaceEXT, PFNGLACTIVESTENCILFACEEXTPROC, - (face), GLenum face) diff --git a/xorg-server/glx/indirect_dispatch.c b/xorg-server/glx/indirect_dispatch.c index 1eee79a52..329b2e61e 100644 --- a/xorg-server/glx/indirect_dispatch.c +++ b/xorg-server/glx/indirect_dispatch.c @@ -3460,7 +3460,7 @@ __glXDisp_CopyTexSubImage3D(GLbyte * pc) void __glXDisp_ActiveTexture(GLbyte * pc) { - glActiveTexture(*(GLenum *) (pc + 0)); + glActiveTextureARB(*(GLenum *) (pc + 0)); } void @@ -3473,7 +3473,7 @@ __glXDisp_MultiTexCoord1dv(GLbyte * pc) } #endif - glMultiTexCoord1dv(*(GLenum *) (pc + 8), (const GLdouble *) (pc + 0)); + glMultiTexCoord1dvARB(*(GLenum *) (pc + 8), (const GLdouble *) (pc + 0)); } void @@ -3485,13 +3485,13 @@ __glXDisp_MultiTexCoord1fvARB(GLbyte * pc) void __glXDisp_MultiTexCoord1iv(GLbyte * pc) { - glMultiTexCoord1iv(*(GLenum *) (pc + 0), (const GLint *) (pc + 4)); + glMultiTexCoord1ivARB(*(GLenum *) (pc + 0), (const GLint *) (pc + 4)); } void __glXDisp_MultiTexCoord1sv(GLbyte * pc) { - glMultiTexCoord1sv(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4)); + glMultiTexCoord1svARB(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4)); } void @@ -3504,7 +3504,7 @@ __glXDisp_MultiTexCoord2dv(GLbyte * pc) } #endif - glMultiTexCoord2dv(*(GLenum *) (pc + 16), (const GLdouble *) (pc + 0)); + glMultiTexCoord2dvARB(*(GLenum *) (pc + 16), (const GLdouble *) (pc + 0)); } void @@ -3516,13 +3516,13 @@ __glXDisp_MultiTexCoord2fvARB(GLbyte * pc) void __glXDisp_MultiTexCoord2iv(GLbyte * pc) { - glMultiTexCoord2iv(*(GLenum *) (pc + 0), (const GLint *) (pc + 4)); + glMultiTexCoord2ivARB(*(GLenum *) (pc + 0), (const GLint *) (pc + 4)); } void __glXDisp_MultiTexCoord2sv(GLbyte * pc) { - glMultiTexCoord2sv(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4)); + glMultiTexCoord2svARB(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4)); } void @@ -3535,7 +3535,7 @@ __glXDisp_MultiTexCoord3dv(GLbyte * pc) } #endif - glMultiTexCoord3dv(*(GLenum *) (pc + 24), (const GLdouble *) (pc + 0)); + glMultiTexCoord3dvARB(*(GLenum *) (pc + 24), (const GLdouble *) (pc + 0)); } void @@ -3547,13 +3547,13 @@ __glXDisp_MultiTexCoord3fvARB(GLbyte * pc) void __glXDisp_MultiTexCoord3iv(GLbyte * pc) { - glMultiTexCoord3iv(*(GLenum *) (pc + 0), (const GLint *) (pc + 4)); + glMultiTexCoord3ivARB(*(GLenum *) (pc + 0), (const GLint *) (pc + 4)); } void __glXDisp_MultiTexCoord3sv(GLbyte * pc) { - glMultiTexCoord3sv(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4)); + glMultiTexCoord3svARB(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4)); } void @@ -3566,7 +3566,7 @@ __glXDisp_MultiTexCoord4dv(GLbyte * pc) } #endif - glMultiTexCoord4dv(*(GLenum *) (pc + 32), (const GLdouble *) (pc + 0)); + glMultiTexCoord4dvARB(*(GLenum *) (pc + 32), (const GLdouble *) (pc + 0)); } void @@ -3578,119 +3578,136 @@ __glXDisp_MultiTexCoord4fvARB(GLbyte * pc) void __glXDisp_MultiTexCoord4iv(GLbyte * pc) { - glMultiTexCoord4iv(*(GLenum *) (pc + 0), (const GLint *) (pc + 4)); + glMultiTexCoord4ivARB(*(GLenum *) (pc + 0), (const GLint *) (pc + 4)); } void __glXDisp_MultiTexCoord4sv(GLbyte * pc) { - glMultiTexCoord4sv(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4)); + glMultiTexCoord4svARB(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4)); } void __glXDisp_CompressedTexImage1D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D = + __glGetProcAddress("glCompressedTexImage1D"); const GLsizei imageSize = *(GLsizei *) (pc + 20); - glCompressedTexImage1D(*(GLenum *) (pc + 0), - *(GLint *) (pc + 4), - *(GLenum *) (pc + 8), - *(GLsizei *) (pc + 12), - *(GLint *) (pc + 16), - imageSize, (const GLvoid *) (pc + 24)); + CompressedTexImage1D(*(GLenum *) (pc + 0), + *(GLint *) (pc + 4), + *(GLenum *) (pc + 8), + *(GLsizei *) (pc + 12), + *(GLint *) (pc + 16), + imageSize, (const GLvoid *) (pc + 24)); } void __glXDisp_CompressedTexImage2D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D = + __glGetProcAddress("glCompressedTexImage2D"); const GLsizei imageSize = *(GLsizei *) (pc + 24); - glCompressedTexImage2D(*(GLenum *) (pc + 0), - *(GLint *) (pc + 4), - *(GLenum *) (pc + 8), - *(GLsizei *) (pc + 12), - *(GLsizei *) (pc + 16), - *(GLint *) (pc + 20), - imageSize, (const GLvoid *) (pc + 28)); + CompressedTexImage2D(*(GLenum *) (pc + 0), + *(GLint *) (pc + 4), + *(GLenum *) (pc + 8), + *(GLsizei *) (pc + 12), + *(GLsizei *) (pc + 16), + *(GLint *) (pc + 20), + imageSize, (const GLvoid *) (pc + 28)); } void __glXDisp_CompressedTexImage3D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D = + __glGetProcAddress("glCompressedTexImage3D"); const GLsizei imageSize = *(GLsizei *) (pc + 28); - glCompressedTexImage3D(*(GLenum *) (pc + 0), - *(GLint *) (pc + 4), - *(GLenum *) (pc + 8), - *(GLsizei *) (pc + 12), - *(GLsizei *) (pc + 16), - *(GLsizei *) (pc + 20), - *(GLint *) (pc + 24), - imageSize, (const GLvoid *) (pc + 32)); + CompressedTexImage3D(*(GLenum *) (pc + 0), + *(GLint *) (pc + 4), + *(GLenum *) (pc + 8), + *(GLsizei *) (pc + 12), + *(GLsizei *) (pc + 16), + *(GLsizei *) (pc + 20), + *(GLint *) (pc + 24), + imageSize, (const GLvoid *) (pc + 32)); } void __glXDisp_CompressedTexSubImage1D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D = + __glGetProcAddress("glCompressedTexSubImage1D"); const GLsizei imageSize = *(GLsizei *) (pc + 20); - glCompressedTexSubImage1D(*(GLenum *) (pc + 0), - *(GLint *) (pc + 4), - *(GLint *) (pc + 8), - *(GLsizei *) (pc + 12), - *(GLenum *) (pc + 16), - imageSize, (const GLvoid *) (pc + 24)); + CompressedTexSubImage1D(*(GLenum *) (pc + 0), + *(GLint *) (pc + 4), + *(GLint *) (pc + 8), + *(GLsizei *) (pc + 12), + *(GLenum *) (pc + 16), + imageSize, (const GLvoid *) (pc + 24)); } void __glXDisp_CompressedTexSubImage2D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D = + __glGetProcAddress("glCompressedTexSubImage2D"); const GLsizei imageSize = *(GLsizei *) (pc + 28); - glCompressedTexSubImage2D(*(GLenum *) (pc + 0), - *(GLint *) (pc + 4), - *(GLint *) (pc + 8), - *(GLint *) (pc + 12), - *(GLsizei *) (pc + 16), - *(GLsizei *) (pc + 20), - *(GLenum *) (pc + 24), - imageSize, (const GLvoid *) (pc + 32)); + CompressedTexSubImage2D(*(GLenum *) (pc + 0), + *(GLint *) (pc + 4), + *(GLint *) (pc + 8), + *(GLint *) (pc + 12), + *(GLsizei *) (pc + 16), + *(GLsizei *) (pc + 20), + *(GLenum *) (pc + 24), + imageSize, (const GLvoid *) (pc + 32)); } void __glXDisp_CompressedTexSubImage3D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D = + __glGetProcAddress("glCompressedTexSubImage3D"); const GLsizei imageSize = *(GLsizei *) (pc + 36); - glCompressedTexSubImage3D(*(GLenum *) (pc + 0), - *(GLint *) (pc + 4), - *(GLint *) (pc + 8), - *(GLint *) (pc + 12), - *(GLint *) (pc + 16), - *(GLsizei *) (pc + 20), - *(GLsizei *) (pc + 24), - *(GLsizei *) (pc + 28), - *(GLenum *) (pc + 32), - imageSize, (const GLvoid *) (pc + 40)); + CompressedTexSubImage3D(*(GLenum *) (pc + 0), + *(GLint *) (pc + 4), + *(GLint *) (pc + 8), + *(GLint *) (pc + 12), + *(GLint *) (pc + 16), + *(GLsizei *) (pc + 20), + *(GLsizei *) (pc + 24), + *(GLsizei *) (pc + 28), + *(GLenum *) (pc + 32), + imageSize, (const GLvoid *) (pc + 40)); } void __glXDisp_SampleCoverage(GLbyte * pc) { - glSampleCoverage(*(GLclampf *) (pc + 0), *(GLboolean *) (pc + 4)); + PFNGLSAMPLECOVERAGEPROC SampleCoverage = + __glGetProcAddress("glSampleCoverage"); + SampleCoverage(*(GLclampf *) (pc + 0), *(GLboolean *) (pc + 4)); } void __glXDisp_BlendFuncSeparate(GLbyte * pc) { - glBlendFuncSeparate(*(GLenum *) (pc + 0), - *(GLenum *) (pc + 4), - *(GLenum *) (pc + 8), *(GLenum *) (pc + 12)); + PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate = + __glGetProcAddress("glBlendFuncSeparate"); + BlendFuncSeparate(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4), + *(GLenum *) (pc + 8), *(GLenum *) (pc + 12)); } void __glXDisp_FogCoorddv(GLbyte * pc) { + PFNGLFOGCOORDDVPROC FogCoorddv = __glGetProcAddress("glFogCoorddv"); + #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 8); @@ -3698,52 +3715,64 @@ __glXDisp_FogCoorddv(GLbyte * pc) } #endif - glFogCoorddv((const GLdouble *) (pc + 0)); + FogCoorddv((const GLdouble *) (pc + 0)); } void __glXDisp_PointParameterf(GLbyte * pc) { - glPointParameterf(*(GLenum *) (pc + 0), *(GLfloat *) (pc + 4)); + PFNGLPOINTPARAMETERFPROC PointParameterf = + __glGetProcAddress("glPointParameterf"); + PointParameterf(*(GLenum *) (pc + 0), *(GLfloat *) (pc + 4)); } void __glXDisp_PointParameterfv(GLbyte * pc) { + PFNGLPOINTPARAMETERFVPROC PointParameterfv = + __glGetProcAddress("glPointParameterfv"); const GLenum pname = *(GLenum *) (pc + 0); const GLfloat *params; params = (const GLfloat *) (pc + 4); - glPointParameterfv(pname, params); + PointParameterfv(pname, params); } void __glXDisp_PointParameteri(GLbyte * pc) { - glPointParameteri(*(GLenum *) (pc + 0), *(GLint *) (pc + 4)); + PFNGLPOINTPARAMETERIPROC PointParameteri = + __glGetProcAddress("glPointParameteri"); + PointParameteri(*(GLenum *) (pc + 0), *(GLint *) (pc + 4)); } void __glXDisp_PointParameteriv(GLbyte * pc) { + PFNGLPOINTPARAMETERIVPROC PointParameteriv = + __glGetProcAddress("glPointParameteriv"); const GLenum pname = *(GLenum *) (pc + 0); const GLint *params; params = (const GLint *) (pc + 4); - glPointParameteriv(pname, params); + PointParameteriv(pname, params); } void __glXDisp_SecondaryColor3bv(GLbyte * pc) { - glSecondaryColor3bv((const GLbyte *) (pc + 0)); + PFNGLSECONDARYCOLOR3BVPROC SecondaryColor3bv = + __glGetProcAddress("glSecondaryColor3bv"); + SecondaryColor3bv((const GLbyte *) (pc + 0)); } void __glXDisp_SecondaryColor3dv(GLbyte * pc) { + PFNGLSECONDARYCOLOR3DVPROC SecondaryColor3dv = + __glGetProcAddress("glSecondaryColor3dv"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 24); @@ -3751,54 +3780,70 @@ __glXDisp_SecondaryColor3dv(GLbyte * pc) } #endif - glSecondaryColor3dv((const GLdouble *) (pc + 0)); + SecondaryColor3dv((const GLdouble *) (pc + 0)); } void __glXDisp_SecondaryColor3iv(GLbyte * pc) { - glSecondaryColor3iv((const GLint *) (pc + 0)); + PFNGLSECONDARYCOLOR3IVPROC SecondaryColor3iv = + __glGetProcAddress("glSecondaryColor3iv"); + SecondaryColor3iv((const GLint *) (pc + 0)); } void __glXDisp_SecondaryColor3sv(GLbyte * pc) { - glSecondaryColor3sv((const GLshort *) (pc + 0)); + PFNGLSECONDARYCOLOR3SVPROC SecondaryColor3sv = + __glGetProcAddress("glSecondaryColor3sv"); + SecondaryColor3sv((const GLshort *) (pc + 0)); } void __glXDisp_SecondaryColor3ubv(GLbyte * pc) { - glSecondaryColor3ubv((const GLubyte *) (pc + 0)); + PFNGLSECONDARYCOLOR3UBVPROC SecondaryColor3ubv = + __glGetProcAddress("glSecondaryColor3ubv"); + SecondaryColor3ubv((const GLubyte *) (pc + 0)); } void __glXDisp_SecondaryColor3uiv(GLbyte * pc) { - glSecondaryColor3uiv((const GLuint *) (pc + 0)); + PFNGLSECONDARYCOLOR3UIVPROC SecondaryColor3uiv = + __glGetProcAddress("glSecondaryColor3uiv"); + SecondaryColor3uiv((const GLuint *) (pc + 0)); } void __glXDisp_SecondaryColor3usv(GLbyte * pc) { - glSecondaryColor3usv((const GLushort *) (pc + 0)); + PFNGLSECONDARYCOLOR3USVPROC SecondaryColor3usv = + __glGetProcAddress("glSecondaryColor3usv"); + SecondaryColor3usv((const GLushort *) (pc + 0)); } void __glXDisp_WindowPos3fv(GLbyte * pc) { - glWindowPos3fv((const GLfloat *) (pc + 0)); + PFNGLWINDOWPOS3FVPROC WindowPos3fv = __glGetProcAddress("glWindowPos3fv"); + + WindowPos3fv((const GLfloat *) (pc + 0)); } void __glXDisp_BeginQuery(GLbyte * pc) { - glBeginQuery(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4)); + PFNGLBEGINQUERYPROC BeginQuery = __glGetProcAddress("glBeginQuery"); + + BeginQuery(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4)); } int __glXDisp_DeleteQueries(__GLXclientState * cl, GLbyte * pc) { + PFNGLDELETEQUERIESPROC DeleteQueries = + __glGetProcAddress("glDeleteQueries"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -3807,7 +3852,7 @@ __glXDisp_DeleteQueries(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { const GLsizei n = *(GLsizei *) (pc + 0); - glDeleteQueries(n, (const GLuint *) (pc + 4)); + DeleteQueries(n, (const GLuint *) (pc + 4)); error = Success; } @@ -3817,12 +3862,15 @@ __glXDisp_DeleteQueries(__GLXclientState * cl, GLbyte * pc) void __glXDisp_EndQuery(GLbyte * pc) { - glEndQuery(*(GLenum *) (pc + 0)); + PFNGLENDQUERYPROC EndQuery = __glGetProcAddress("glEndQuery"); + + EndQuery(*(GLenum *) (pc + 0)); } int __glXDisp_GenQueries(__GLXclientState * cl, GLbyte * pc) { + PFNGLGENQUERIESPROC GenQueries = __glGetProcAddress("glGenQueries"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -3835,7 +3883,7 @@ __glXDisp_GenQueries(__GLXclientState * cl, GLbyte * pc) GLuint *ids = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4); - glGenQueries(n, ids); + GenQueries(n, ids); __glXSendReply(cl->client, ids, n, 4, GL_TRUE, 0); error = Success; } @@ -3846,6 +3894,8 @@ __glXDisp_GenQueries(__GLXclientState * cl, GLbyte * pc) int __glXDisp_GetQueryObjectiv(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv = + __glGetProcAddress("glGetQueryObjectiv"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -3864,7 +3914,7 @@ __glXDisp_GetQueryObjectiv(__GLXclientState * cl, GLbyte * pc) return BadAlloc; __glXClearErrorOccured(); - glGetQueryObjectiv(*(GLuint *) (pc + 0), pname, params); + GetQueryObjectiv(*(GLuint *) (pc + 0), pname, params); __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0); error = Success; } @@ -3875,6 +3925,8 @@ __glXDisp_GetQueryObjectiv(__GLXclientState * cl, GLbyte * pc) int __glXDisp_GetQueryObjectuiv(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv = + __glGetProcAddress("glGetQueryObjectuiv"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -3893,7 +3945,7 @@ __glXDisp_GetQueryObjectuiv(__GLXclientState * cl, GLbyte * pc) return BadAlloc; __glXClearErrorOccured(); - glGetQueryObjectuiv(*(GLuint *) (pc + 0), pname, params); + GetQueryObjectuiv(*(GLuint *) (pc + 0), pname, params); __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0); error = Success; } @@ -3904,6 +3956,7 @@ __glXDisp_GetQueryObjectuiv(__GLXclientState * cl, GLbyte * pc) int __glXDisp_GetQueryiv(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETQUERYIVPROC GetQueryiv = __glGetProcAddress("glGetQueryiv"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -3922,7 +3975,7 @@ __glXDisp_GetQueryiv(__GLXclientState * cl, GLbyte * pc) return BadAlloc; __glXClearErrorOccured(); - glGetQueryiv(*(GLenum *) (pc + 0), pname, params); + GetQueryiv(*(GLenum *) (pc + 0), pname, params); __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0); error = Success; } @@ -3933,6 +3986,7 @@ __glXDisp_GetQueryiv(__GLXclientState * cl, GLbyte * pc) int __glXDisp_IsQuery(__GLXclientState * cl, GLbyte * pc) { + PFNGLISQUERYPROC IsQuery = __glGetProcAddress("glIsQuery"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -3941,7 +3995,7 @@ __glXDisp_IsQuery(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLboolean retval; - retval = glIsQuery(*(GLuint *) (pc + 0)); + retval = IsQuery(*(GLuint *) (pc + 0)); __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval); error = Success; } @@ -3952,20 +4006,25 @@ __glXDisp_IsQuery(__GLXclientState * cl, GLbyte * pc) void __glXDisp_BlendEquationSeparate(GLbyte * pc) { - glBlendEquationSeparate(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4)); + PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate = + __glGetProcAddress("glBlendEquationSeparate"); + BlendEquationSeparate(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4)); } void __glXDisp_DrawBuffers(GLbyte * pc) { + PFNGLDRAWBUFFERSPROC DrawBuffers = __glGetProcAddress("glDrawBuffers"); const GLsizei n = *(GLsizei *) (pc + 0); - glDrawBuffers(n, (const GLenum *) (pc + 4)); + DrawBuffers(n, (const GLenum *) (pc + 4)); } void __glXDisp_VertexAttrib1dv(GLbyte * pc) { + PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv = + __glGetProcAddress("glVertexAttrib1dv"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 12); @@ -3973,18 +4032,22 @@ __glXDisp_VertexAttrib1dv(GLbyte * pc) } #endif - glVertexAttrib1dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); + VertexAttrib1dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); } void __glXDisp_VertexAttrib1sv(GLbyte * pc) { - glVertexAttrib1sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); + PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv = + __glGetProcAddress("glVertexAttrib1sv"); + VertexAttrib1sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); } void __glXDisp_VertexAttrib2dv(GLbyte * pc) { + PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv = + __glGetProcAddress("glVertexAttrib2dv"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 20); @@ -3992,18 +4055,22 @@ __glXDisp_VertexAttrib2dv(GLbyte * pc) } #endif - glVertexAttrib2dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); + VertexAttrib2dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); } void __glXDisp_VertexAttrib2sv(GLbyte * pc) { - glVertexAttrib2sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); + PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv = + __glGetProcAddress("glVertexAttrib2sv"); + VertexAttrib2sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); } void __glXDisp_VertexAttrib3dv(GLbyte * pc) { + PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv = + __glGetProcAddress("glVertexAttrib3dv"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 28); @@ -4011,60 +4078,78 @@ __glXDisp_VertexAttrib3dv(GLbyte * pc) } #endif - glVertexAttrib3dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); + VertexAttrib3dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); } void __glXDisp_VertexAttrib3sv(GLbyte * pc) { - glVertexAttrib3sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); + PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv = + __glGetProcAddress("glVertexAttrib3sv"); + VertexAttrib3sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); } void __glXDisp_VertexAttrib4Nbv(GLbyte * pc) { - glVertexAttrib4Nbv(*(GLuint *) (pc + 0), (const GLbyte *) (pc + 4)); + PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv = + __glGetProcAddress("glVertexAttrib4Nbv"); + VertexAttrib4Nbv(*(GLuint *) (pc + 0), (const GLbyte *) (pc + 4)); } void __glXDisp_VertexAttrib4Niv(GLbyte * pc) { - glVertexAttrib4Niv(*(GLuint *) (pc + 0), (const GLint *) (pc + 4)); + PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv = + __glGetProcAddress("glVertexAttrib4Niv"); + VertexAttrib4Niv(*(GLuint *) (pc + 0), (const GLint *) (pc + 4)); } void __glXDisp_VertexAttrib4Nsv(GLbyte * pc) { - glVertexAttrib4Nsv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); + PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv = + __glGetProcAddress("glVertexAttrib4Nsv"); + VertexAttrib4Nsv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); } void __glXDisp_VertexAttrib4Nubv(GLbyte * pc) { - glVertexAttrib4Nubv(*(GLuint *) (pc + 0), (const GLubyte *) (pc + 4)); + PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv = + __glGetProcAddress("glVertexAttrib4Nubv"); + VertexAttrib4Nubv(*(GLuint *) (pc + 0), (const GLubyte *) (pc + 4)); } void __glXDisp_VertexAttrib4Nuiv(GLbyte * pc) { - glVertexAttrib4Nuiv(*(GLuint *) (pc + 0), (const GLuint *) (pc + 4)); + PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv = + __glGetProcAddress("glVertexAttrib4Nuiv"); + VertexAttrib4Nuiv(*(GLuint *) (pc + 0), (const GLuint *) (pc + 4)); } void __glXDisp_VertexAttrib4Nusv(GLbyte * pc) { - glVertexAttrib4Nusv(*(GLuint *) (pc + 0), (const GLushort *) (pc + 4)); + PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv = + __glGetProcAddress("glVertexAttrib4Nusv"); + VertexAttrib4Nusv(*(GLuint *) (pc + 0), (const GLushort *) (pc + 4)); } void __glXDisp_VertexAttrib4bv(GLbyte * pc) { - glVertexAttrib4bv(*(GLuint *) (pc + 0), (const GLbyte *) (pc + 4)); + PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv = + __glGetProcAddress("glVertexAttrib4bv"); + VertexAttrib4bv(*(GLuint *) (pc + 0), (const GLbyte *) (pc + 4)); } void __glXDisp_VertexAttrib4dv(GLbyte * pc) { + PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv = + __glGetProcAddress("glVertexAttrib4dv"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 36); @@ -4072,54 +4157,70 @@ __glXDisp_VertexAttrib4dv(GLbyte * pc) } #endif - glVertexAttrib4dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); + VertexAttrib4dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); } void __glXDisp_VertexAttrib4iv(GLbyte * pc) { - glVertexAttrib4iv(*(GLuint *) (pc + 0), (const GLint *) (pc + 4)); + PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv = + __glGetProcAddress("glVertexAttrib4iv"); + VertexAttrib4iv(*(GLuint *) (pc + 0), (const GLint *) (pc + 4)); } void __glXDisp_VertexAttrib4sv(GLbyte * pc) { - glVertexAttrib4sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); + PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv = + __glGetProcAddress("glVertexAttrib4sv"); + VertexAttrib4sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); } void __glXDisp_VertexAttrib4ubv(GLbyte * pc) { - glVertexAttrib4ubv(*(GLuint *) (pc + 0), (const GLubyte *) (pc + 4)); + PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv = + __glGetProcAddress("glVertexAttrib4ubv"); + VertexAttrib4ubv(*(GLuint *) (pc + 0), (const GLubyte *) (pc + 4)); } void __glXDisp_VertexAttrib4uiv(GLbyte * pc) { - glVertexAttrib4uiv(*(GLuint *) (pc + 0), (const GLuint *) (pc + 4)); + PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv = + __glGetProcAddress("glVertexAttrib4uiv"); + VertexAttrib4uiv(*(GLuint *) (pc + 0), (const GLuint *) (pc + 4)); } void __glXDisp_VertexAttrib4usv(GLbyte * pc) { - glVertexAttrib4usv(*(GLuint *) (pc + 0), (const GLushort *) (pc + 4)); + PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv = + __glGetProcAddress("glVertexAttrib4usv"); + VertexAttrib4usv(*(GLuint *) (pc + 0), (const GLushort *) (pc + 4)); } void __glXDisp_ClampColor(GLbyte * pc) { - glClampColor(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4)); + PFNGLCLAMPCOLORPROC ClampColor = __glGetProcAddress("glClampColor"); + + ClampColor(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4)); } void __glXDisp_BindProgramARB(GLbyte * pc) { - glBindProgramARB(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4)); + PFNGLBINDPROGRAMARBPROC BindProgramARB = + __glGetProcAddress("glBindProgramARB"); + BindProgramARB(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4)); } int __glXDisp_DeleteProgramsARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLDELETEPROGRAMSARBPROC DeleteProgramsARB = + __glGetProcAddress("glDeleteProgramsARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4128,7 +4229,7 @@ __glXDisp_DeleteProgramsARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { const GLsizei n = *(GLsizei *) (pc + 0); - glDeleteProgramsARB(n, (const GLuint *) (pc + 4)); + DeleteProgramsARB(n, (const GLuint *) (pc + 4)); error = Success; } @@ -4138,6 +4239,8 @@ __glXDisp_DeleteProgramsARB(__GLXclientState * cl, GLbyte * pc) int __glXDisp_GenProgramsARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGENPROGRAMSARBPROC GenProgramsARB = + __glGetProcAddress("glGenProgramsARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4150,7 +4253,7 @@ __glXDisp_GenProgramsARB(__GLXclientState * cl, GLbyte * pc) GLuint *programs = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4); - glGenProgramsARB(n, programs); + GenProgramsARB(n, programs); __glXSendReply(cl->client, programs, n, 4, GL_TRUE, 0); error = Success; } @@ -4161,6 +4264,8 @@ __glXDisp_GenProgramsARB(__GLXclientState * cl, GLbyte * pc) int __glXDisp_GetProgramEnvParameterdvARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETPROGRAMENVPARAMETERDVARBPROC GetProgramEnvParameterdvARB = + __glGetProcAddress("glGetProgramEnvParameterdvARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4169,8 +4274,8 @@ __glXDisp_GetProgramEnvParameterdvARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLdouble params[4]; - glGetProgramEnvParameterdvARB(*(GLenum *) (pc + 0), - *(GLuint *) (pc + 4), params); + GetProgramEnvParameterdvARB(*(GLenum *) (pc + 0), + *(GLuint *) (pc + 4), params); __glXSendReply(cl->client, params, 4, 8, GL_FALSE, 0); error = Success; } @@ -4181,6 +4286,8 @@ __glXDisp_GetProgramEnvParameterdvARB(__GLXclientState * cl, GLbyte * pc) int __glXDisp_GetProgramEnvParameterfvARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETPROGRAMENVPARAMETERFVARBPROC GetProgramEnvParameterfvARB = + __glGetProcAddress("glGetProgramEnvParameterfvARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4189,8 +4296,8 @@ __glXDisp_GetProgramEnvParameterfvARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLfloat params[4]; - glGetProgramEnvParameterfvARB(*(GLenum *) (pc + 0), - *(GLuint *) (pc + 4), params); + GetProgramEnvParameterfvARB(*(GLenum *) (pc + 0), + *(GLuint *) (pc + 4), params); __glXSendReply(cl->client, params, 4, 4, GL_FALSE, 0); error = Success; } @@ -4201,6 +4308,8 @@ __glXDisp_GetProgramEnvParameterfvARB(__GLXclientState * cl, GLbyte * pc) int __glXDisp_GetProgramLocalParameterdvARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC GetProgramLocalParameterdvARB = + __glGetProcAddress("glGetProgramLocalParameterdvARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4209,8 +4318,8 @@ __glXDisp_GetProgramLocalParameterdvARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLdouble params[4]; - glGetProgramLocalParameterdvARB(*(GLenum *) (pc + 0), - *(GLuint *) (pc + 4), params); + GetProgramLocalParameterdvARB(*(GLenum *) (pc + 0), + *(GLuint *) (pc + 4), params); __glXSendReply(cl->client, params, 4, 8, GL_FALSE, 0); error = Success; } @@ -4221,6 +4330,8 @@ __glXDisp_GetProgramLocalParameterdvARB(__GLXclientState * cl, GLbyte * pc) int __glXDisp_GetProgramLocalParameterfvARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC GetProgramLocalParameterfvARB = + __glGetProcAddress("glGetProgramLocalParameterfvARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4229,8 +4340,8 @@ __glXDisp_GetProgramLocalParameterfvARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLfloat params[4]; - glGetProgramLocalParameterfvARB(*(GLenum *) (pc + 0), - *(GLuint *) (pc + 4), params); + GetProgramLocalParameterfvARB(*(GLenum *) (pc + 0), + *(GLuint *) (pc + 4), params); __glXSendReply(cl->client, params, 4, 4, GL_FALSE, 0); error = Success; } @@ -4241,6 +4352,8 @@ __glXDisp_GetProgramLocalParameterfvARB(__GLXclientState * cl, GLbyte * pc) int __glXDisp_GetProgramivARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETPROGRAMIVARBPROC GetProgramivARB = + __glGetProcAddress("glGetProgramivARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4259,7 +4372,7 @@ __glXDisp_GetProgramivARB(__GLXclientState * cl, GLbyte * pc) return BadAlloc; __glXClearErrorOccured(); - glGetProgramivARB(*(GLenum *) (pc + 0), pname, params); + GetProgramivARB(*(GLenum *) (pc + 0), pname, params); __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0); error = Success; } @@ -4270,6 +4383,7 @@ __glXDisp_GetProgramivARB(__GLXclientState * cl, GLbyte * pc) int __glXDisp_IsProgramARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLISPROGRAMARBPROC IsProgramARB = __glGetProcAddress("glIsProgramARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4278,7 +4392,7 @@ __glXDisp_IsProgramARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLboolean retval; - retval = glIsProgramARB(*(GLuint *) (pc + 0)); + retval = IsProgramARB(*(GLuint *) (pc + 0)); __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval); error = Success; } @@ -4289,6 +4403,8 @@ __glXDisp_IsProgramARB(__GLXclientState * cl, GLbyte * pc) void __glXDisp_ProgramEnvParameter4dvARB(GLbyte * pc) { + PFNGLPROGRAMENVPARAMETER4DVARBPROC ProgramEnvParameter4dvARB = + __glGetProcAddress("glProgramEnvParameter4dvARB"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 40); @@ -4296,22 +4412,25 @@ __glXDisp_ProgramEnvParameter4dvARB(GLbyte * pc) } #endif - glProgramEnvParameter4dvARB(*(GLenum *) (pc + 0), - *(GLuint *) (pc + 4), - (const GLdouble *) (pc + 8)); + ProgramEnvParameter4dvARB(*(GLenum *) (pc + 0), + *(GLuint *) (pc + 4), + (const GLdouble *) (pc + 8)); } void __glXDisp_ProgramEnvParameter4fvARB(GLbyte * pc) { - glProgramEnvParameter4fvARB(*(GLenum *) (pc + 0), - *(GLuint *) (pc + 4), - (const GLfloat *) (pc + 8)); + PFNGLPROGRAMENVPARAMETER4FVARBPROC ProgramEnvParameter4fvARB = + __glGetProcAddress("glProgramEnvParameter4fvARB"); + ProgramEnvParameter4fvARB(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4), + (const GLfloat *) (pc + 8)); } void __glXDisp_ProgramLocalParameter4dvARB(GLbyte * pc) { + PFNGLPROGRAMLOCALPARAMETER4DVARBPROC ProgramLocalParameter4dvARB = + __glGetProcAddress("glProgramLocalParameter4dvARB"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 40); @@ -4319,81 +4438,96 @@ __glXDisp_ProgramLocalParameter4dvARB(GLbyte * pc) } #endif - glProgramLocalParameter4dvARB(*(GLenum *) (pc + 0), - *(GLuint *) (pc + 4), - (const GLdouble *) (pc + 8)); + ProgramLocalParameter4dvARB(*(GLenum *) (pc + 0), + *(GLuint *) (pc + 4), + (const GLdouble *) (pc + 8)); } void __glXDisp_ProgramLocalParameter4fvARB(GLbyte * pc) { - glProgramLocalParameter4fvARB(*(GLenum *) (pc + 0), - *(GLuint *) (pc + 4), - (const GLfloat *) (pc + 8)); + PFNGLPROGRAMLOCALPARAMETER4FVARBPROC ProgramLocalParameter4fvARB = + __glGetProcAddress("glProgramLocalParameter4fvARB"); + ProgramLocalParameter4fvARB(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4), + (const GLfloat *) (pc + 8)); } void __glXDisp_ProgramStringARB(GLbyte * pc) { + PFNGLPROGRAMSTRINGARBPROC ProgramStringARB = + __glGetProcAddress("glProgramStringARB"); const GLsizei len = *(GLsizei *) (pc + 8); - glProgramStringARB(*(GLenum *) (pc + 0), - *(GLenum *) (pc + 4), len, (const GLvoid *) (pc + 12)); + ProgramStringARB(*(GLenum *) (pc + 0), + *(GLenum *) (pc + 4), len, (const GLvoid *) (pc + 12)); } void __glXDisp_VertexAttrib1fvARB(GLbyte * pc) { - glVertexAttrib1fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); + PFNGLVERTEXATTRIB1FVARBPROC VertexAttrib1fvARB = + __glGetProcAddress("glVertexAttrib1fvARB"); + VertexAttrib1fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); } void __glXDisp_VertexAttrib2fvARB(GLbyte * pc) { - glVertexAttrib2fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); + PFNGLVERTEXATTRIB2FVARBPROC VertexAttrib2fvARB = + __glGetProcAddress("glVertexAttrib2fvARB"); + VertexAttrib2fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); } void __glXDisp_VertexAttrib3fvARB(GLbyte * pc) { - glVertexAttrib3fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); + PFNGLVERTEXATTRIB3FVARBPROC VertexAttrib3fvARB = + __glGetProcAddress("glVertexAttrib3fvARB"); + VertexAttrib3fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); } void __glXDisp_VertexAttrib4fvARB(GLbyte * pc) { - glVertexAttrib4fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); + PFNGLVERTEXATTRIB4FVARBPROC VertexAttrib4fvARB = + __glGetProcAddress("glVertexAttrib4fvARB"); + VertexAttrib4fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); } void __glXDisp_BindFramebuffer(GLbyte * pc) { - glBindFramebuffer(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4)); + PFNGLBINDFRAMEBUFFERPROC BindFramebuffer = + __glGetProcAddress("glBindFramebuffer"); + BindFramebuffer(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4)); } void __glXDisp_BindRenderbuffer(GLbyte * pc) { - glBindRenderbuffer(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4)); + PFNGLBINDRENDERBUFFERPROC BindRenderbuffer = + __glGetProcAddress("glBindRenderbuffer"); + BindRenderbuffer(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4)); } void __glXDisp_BlitFramebuffer(GLbyte * pc) { - glBlitFramebuffer(*(GLint *) (pc + 0), - *(GLint *) (pc + 4), - *(GLint *) (pc + 8), - *(GLint *) (pc + 12), - *(GLint *) (pc + 16), - *(GLint *) (pc + 20), - *(GLint *) (pc + 24), - *(GLint *) (pc + 28), - *(GLbitfield *) (pc + 32), *(GLenum *) (pc + 36)); + PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer = + __glGetProcAddress("glBlitFramebuffer"); + BlitFramebuffer(*(GLint *) (pc + 0), *(GLint *) (pc + 4), + *(GLint *) (pc + 8), *(GLint *) (pc + 12), + *(GLint *) (pc + 16), *(GLint *) (pc + 20), + *(GLint *) (pc + 24), *(GLint *) (pc + 28), + *(GLbitfield *) (pc + 32), *(GLenum *) (pc + 36)); } int __glXDisp_CheckFramebufferStatus(__GLXclientState * cl, GLbyte * pc) { + PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus = + __glGetProcAddress("glCheckFramebufferStatus"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4402,7 +4536,7 @@ __glXDisp_CheckFramebufferStatus(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLenum retval; - retval = glCheckFramebufferStatus(*(GLenum *) (pc + 0)); + retval = CheckFramebufferStatus(*(GLenum *) (pc + 0)); __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval); error = Success; } @@ -4413,67 +4547,77 @@ __glXDisp_CheckFramebufferStatus(__GLXclientState * cl, GLbyte * pc) void __glXDisp_DeleteFramebuffers(GLbyte * pc) { + PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers = + __glGetProcAddress("glDeleteFramebuffers"); const GLsizei n = *(GLsizei *) (pc + 0); - glDeleteFramebuffers(n, (const GLuint *) (pc + 4)); + DeleteFramebuffers(n, (const GLuint *) (pc + 4)); } void __glXDisp_DeleteRenderbuffers(GLbyte * pc) { + PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers = + __glGetProcAddress("glDeleteRenderbuffers"); const GLsizei n = *(GLsizei *) (pc + 0); - glDeleteRenderbuffers(n, (const GLuint *) (pc + 4)); + DeleteRenderbuffers(n, (const GLuint *) (pc + 4)); } void __glXDisp_FramebufferRenderbuffer(GLbyte * pc) { - glFramebufferRenderbuffer(*(GLenum *) (pc + 0), - *(GLenum *) (pc + 4), - *(GLenum *) (pc + 8), *(GLuint *) (pc + 12)); + PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer = + __glGetProcAddress("glFramebufferRenderbuffer"); + FramebufferRenderbuffer(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4), + *(GLenum *) (pc + 8), *(GLuint *) (pc + 12)); } void __glXDisp_FramebufferTexture1D(GLbyte * pc) { - glFramebufferTexture1D(*(GLenum *) (pc + 0), - *(GLenum *) (pc + 4), - *(GLenum *) (pc + 8), - *(GLuint *) (pc + 12), *(GLint *) (pc + 16)); + PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D = + __glGetProcAddress("glFramebufferTexture1D"); + FramebufferTexture1D(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4), + *(GLenum *) (pc + 8), *(GLuint *) (pc + 12), + *(GLint *) (pc + 16)); } void __glXDisp_FramebufferTexture2D(GLbyte * pc) { - glFramebufferTexture2D(*(GLenum *) (pc + 0), - *(GLenum *) (pc + 4), - *(GLenum *) (pc + 8), - *(GLuint *) (pc + 12), *(GLint *) (pc + 16)); + PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D = + __glGetProcAddress("glFramebufferTexture2D"); + FramebufferTexture2D(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4), + *(GLenum *) (pc + 8), *(GLuint *) (pc + 12), + *(GLint *) (pc + 16)); } void __glXDisp_FramebufferTexture3D(GLbyte * pc) { - glFramebufferTexture3D(*(GLenum *) (pc + 0), - *(GLenum *) (pc + 4), - *(GLenum *) (pc + 8), - *(GLuint *) (pc + 12), - *(GLint *) (pc + 16), *(GLint *) (pc + 20)); + PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D = + __glGetProcAddress("glFramebufferTexture3D"); + FramebufferTexture3D(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4), + *(GLenum *) (pc + 8), *(GLuint *) (pc + 12), + *(GLint *) (pc + 16), *(GLint *) (pc + 20)); } void __glXDisp_FramebufferTextureLayer(GLbyte * pc) { - glFramebufferTextureLayer(*(GLenum *) (pc + 0), - *(GLenum *) (pc + 4), - *(GLuint *) (pc + 8), - *(GLint *) (pc + 12), *(GLint *) (pc + 16)); + PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer = + __glGetProcAddress("glFramebufferTextureLayer"); + FramebufferTextureLayer(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4), + *(GLuint *) (pc + 8), *(GLint *) (pc + 12), + *(GLint *) (pc + 16)); } int __glXDisp_GenFramebuffers(__GLXclientState * cl, GLbyte * pc) { + PFNGLGENFRAMEBUFFERSPROC GenFramebuffers = + __glGetProcAddress("glGenFramebuffers"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4486,7 +4630,7 @@ __glXDisp_GenFramebuffers(__GLXclientState * cl, GLbyte * pc) GLuint *framebuffers = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4); - glGenFramebuffers(n, framebuffers); + GenFramebuffers(n, framebuffers); __glXSendReply(cl->client, framebuffers, n, 4, GL_TRUE, 0); error = Success; } @@ -4497,6 +4641,8 @@ __glXDisp_GenFramebuffers(__GLXclientState * cl, GLbyte * pc) int __glXDisp_GenRenderbuffers(__GLXclientState * cl, GLbyte * pc) { + PFNGLGENRENDERBUFFERSPROC GenRenderbuffers = + __glGetProcAddress("glGenRenderbuffers"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4509,7 +4655,7 @@ __glXDisp_GenRenderbuffers(__GLXclientState * cl, GLbyte * pc) GLuint *renderbuffers = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4); - glGenRenderbuffers(n, renderbuffers); + GenRenderbuffers(n, renderbuffers); __glXSendReply(cl->client, renderbuffers, n, 4, GL_TRUE, 0); error = Success; } @@ -4520,13 +4666,18 @@ __glXDisp_GenRenderbuffers(__GLXclientState * cl, GLbyte * pc) void __glXDisp_GenerateMipmap(GLbyte * pc) { - glGenerateMipmap(*(GLenum *) (pc + 0)); + PFNGLGENERATEMIPMAPPROC GenerateMipmap = + __glGetProcAddress("glGenerateMipmap"); + GenerateMipmap(*(GLenum *) (pc + 0)); } int __glXDisp_GetFramebufferAttachmentParameteriv(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC + GetFramebufferAttachmentParameteriv = + __glGetProcAddress("glGetFramebufferAttachmentParameteriv"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4535,9 +4686,9 @@ __glXDisp_GetFramebufferAttachmentParameteriv(__GLXclientState * cl, if (cx != NULL) { GLint params[1]; - glGetFramebufferAttachmentParameteriv(*(GLenum *) (pc + 0), - *(GLenum *) (pc + 4), - *(GLenum *) (pc + 8), params); + GetFramebufferAttachmentParameteriv(*(GLenum *) (pc + 0), + *(GLenum *) (pc + 4), + *(GLenum *) (pc + 8), params); __glXSendReply(cl->client, params, 1, 4, GL_FALSE, 0); error = Success; } @@ -4548,6 +4699,8 @@ __glXDisp_GetFramebufferAttachmentParameteriv(__GLXclientState * cl, int __glXDisp_GetRenderbufferParameteriv(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv = + __glGetProcAddress("glGetRenderbufferParameteriv"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4556,8 +4709,8 @@ __glXDisp_GetRenderbufferParameteriv(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLint params[1]; - glGetRenderbufferParameteriv(*(GLenum *) (pc + 0), - *(GLenum *) (pc + 4), params); + GetRenderbufferParameteriv(*(GLenum *) (pc + 0), + *(GLenum *) (pc + 4), params); __glXSendReply(cl->client, params, 1, 4, GL_FALSE, 0); error = Success; } @@ -4568,6 +4721,8 @@ __glXDisp_GetRenderbufferParameteriv(__GLXclientState * cl, GLbyte * pc) int __glXDisp_IsFramebuffer(__GLXclientState * cl, GLbyte * pc) { + PFNGLISFRAMEBUFFERPROC IsFramebuffer = + __glGetProcAddress("glIsFramebuffer"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4576,7 +4731,7 @@ __glXDisp_IsFramebuffer(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLboolean retval; - retval = glIsFramebuffer(*(GLuint *) (pc + 0)); + retval = IsFramebuffer(*(GLuint *) (pc + 0)); __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval); error = Success; } @@ -4587,6 +4742,8 @@ __glXDisp_IsFramebuffer(__GLXclientState * cl, GLbyte * pc) int __glXDisp_IsRenderbuffer(__GLXclientState * cl, GLbyte * pc) { + PFNGLISRENDERBUFFERPROC IsRenderbuffer = + __glGetProcAddress("glIsRenderbuffer"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); @@ -4595,7 +4752,7 @@ __glXDisp_IsRenderbuffer(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLboolean retval; - retval = glIsRenderbuffer(*(GLuint *) (pc + 0)); + retval = IsRenderbuffer(*(GLuint *) (pc + 0)); __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval); error = Success; } @@ -4606,36 +4763,43 @@ __glXDisp_IsRenderbuffer(__GLXclientState * cl, GLbyte * pc) void __glXDisp_RenderbufferStorage(GLbyte * pc) { - glRenderbufferStorage(*(GLenum *) (pc + 0), - *(GLenum *) (pc + 4), - *(GLsizei *) (pc + 8), *(GLsizei *) (pc + 12)); + PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage = + __glGetProcAddress("glRenderbufferStorage"); + RenderbufferStorage(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4), + *(GLsizei *) (pc + 8), *(GLsizei *) (pc + 12)); } void __glXDisp_RenderbufferStorageMultisample(GLbyte * pc) { - glRenderbufferStorageMultisample(*(GLenum *) (pc + 0), - *(GLsizei *) (pc + 4), - *(GLenum *) (pc + 8), - *(GLsizei *) (pc + 12), - *(GLsizei *) (pc + 16)); + PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample = + __glGetProcAddress("glRenderbufferStorageMultisample"); + RenderbufferStorageMultisample(*(GLenum *) (pc + 0), *(GLsizei *) (pc + 4), + *(GLenum *) (pc + 8), *(GLsizei *) (pc + 12), + *(GLsizei *) (pc + 16)); } void __glXDisp_SecondaryColor3fvEXT(GLbyte * pc) { - glSecondaryColor3fvEXT((const GLfloat *) (pc + 0)); + PFNGLSECONDARYCOLOR3FVEXTPROC SecondaryColor3fvEXT = + __glGetProcAddress("glSecondaryColor3fvEXT"); + SecondaryColor3fvEXT((const GLfloat *) (pc + 0)); } void __glXDisp_FogCoordfvEXT(GLbyte * pc) { - glFogCoordfvEXT((const GLfloat *) (pc + 0)); + PFNGLFOGCOORDFVEXTPROC FogCoordfvEXT = + __glGetProcAddress("glFogCoordfvEXT"); + FogCoordfvEXT((const GLfloat *) (pc + 0)); } void __glXDisp_VertexAttrib1dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIB1DVNVPROC VertexAttrib1dvNV = + __glGetProcAddress("glVertexAttrib1dvNV"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 12); @@ -4643,24 +4807,30 @@ __glXDisp_VertexAttrib1dvNV(GLbyte * pc) } #endif - glVertexAttrib1dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); + VertexAttrib1dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); } void __glXDisp_VertexAttrib1fvNV(GLbyte * pc) { - glVertexAttrib1fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); + PFNGLVERTEXATTRIB1FVNVPROC VertexAttrib1fvNV = + __glGetProcAddress("glVertexAttrib1fvNV"); + VertexAttrib1fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); } void __glXDisp_VertexAttrib1svNV(GLbyte * pc) { - glVertexAttrib1svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); + PFNGLVERTEXATTRIB1SVNVPROC VertexAttrib1svNV = + __glGetProcAddress("glVertexAttrib1svNV"); + VertexAttrib1svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); } void __glXDisp_VertexAttrib2dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIB2DVNVPROC VertexAttrib2dvNV = + __glGetProcAddress("glVertexAttrib2dvNV"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 20); @@ -4668,24 +4838,30 @@ __glXDisp_VertexAttrib2dvNV(GLbyte * pc) } #endif - glVertexAttrib2dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); + VertexAttrib2dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); } void __glXDisp_VertexAttrib2fvNV(GLbyte * pc) { - glVertexAttrib2fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); + PFNGLVERTEXATTRIB2FVNVPROC VertexAttrib2fvNV = + __glGetProcAddress("glVertexAttrib2fvNV"); + VertexAttrib2fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); } void __glXDisp_VertexAttrib2svNV(GLbyte * pc) { - glVertexAttrib2svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); + PFNGLVERTEXATTRIB2SVNVPROC VertexAttrib2svNV = + __glGetProcAddress("glVertexAttrib2svNV"); + VertexAttrib2svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); } void __glXDisp_VertexAttrib3dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIB3DVNVPROC VertexAttrib3dvNV = + __glGetProcAddress("glVertexAttrib3dvNV"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 28); @@ -4693,24 +4869,30 @@ __glXDisp_VertexAttrib3dvNV(GLbyte * pc) } #endif - glVertexAttrib3dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); + VertexAttrib3dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); } void __glXDisp_VertexAttrib3fvNV(GLbyte * pc) { - glVertexAttrib3fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); + PFNGLVERTEXATTRIB3FVNVPROC VertexAttrib3fvNV = + __glGetProcAddress("glVertexAttrib3fvNV"); + VertexAttrib3fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); } void __glXDisp_VertexAttrib3svNV(GLbyte * pc) { - glVertexAttrib3svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); + PFNGLVERTEXATTRIB3SVNVPROC VertexAttrib3svNV = + __glGetProcAddress("glVertexAttrib3svNV"); + VertexAttrib3svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); } void __glXDisp_VertexAttrib4dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIB4DVNVPROC VertexAttrib4dvNV = + __glGetProcAddress("glVertexAttrib4dvNV"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 36); @@ -4718,30 +4900,38 @@ __glXDisp_VertexAttrib4dvNV(GLbyte * pc) } #endif - glVertexAttrib4dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); + VertexAttrib4dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4)); } void __glXDisp_VertexAttrib4fvNV(GLbyte * pc) { - glVertexAttrib4fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); + PFNGLVERTEXATTRIB4FVNVPROC VertexAttrib4fvNV = + __glGetProcAddress("glVertexAttrib4fvNV"); + VertexAttrib4fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4)); } void __glXDisp_VertexAttrib4svNV(GLbyte * pc) { - glVertexAttrib4svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); + PFNGLVERTEXATTRIB4SVNVPROC VertexAttrib4svNV = + __glGetProcAddress("glVertexAttrib4svNV"); + VertexAttrib4svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4)); } void __glXDisp_VertexAttrib4ubvNV(GLbyte * pc) { - glVertexAttrib4ubvNV(*(GLuint *) (pc + 0), (const GLubyte *) (pc + 4)); + PFNGLVERTEXATTRIB4UBVNVPROC VertexAttrib4ubvNV = + __glGetProcAddress("glVertexAttrib4ubvNV"); + VertexAttrib4ubvNV(*(GLuint *) (pc + 0), (const GLubyte *) (pc + 4)); } void __glXDisp_VertexAttribs1dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS1DVNVPROC VertexAttribs1dvNV = + __glGetProcAddress("glVertexAttribs1dvNV"); const GLsizei n = *(GLsizei *) (pc + 4); #ifdef __GLX_ALIGN64 @@ -4753,28 +4943,34 @@ __glXDisp_VertexAttribs1dvNV(GLbyte * pc) } #endif - glVertexAttribs1dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8)); + VertexAttribs1dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8)); } void __glXDisp_VertexAttribs1fvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS1FVNVPROC VertexAttribs1fvNV = + __glGetProcAddress("glVertexAttribs1fvNV"); const GLsizei n = *(GLsizei *) (pc + 4); - glVertexAttribs1fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8)); + VertexAttribs1fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8)); } void __glXDisp_VertexAttribs1svNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS1SVNVPROC VertexAttribs1svNV = + __glGetProcAddress("glVertexAttribs1svNV"); const GLsizei n = *(GLsizei *) (pc + 4); - glVertexAttribs1svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8)); + VertexAttribs1svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8)); } void __glXDisp_VertexAttribs2dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS2DVNVPROC VertexAttribs2dvNV = + __glGetProcAddress("glVertexAttribs2dvNV"); const GLsizei n = *(GLsizei *) (pc + 4); #ifdef __GLX_ALIGN64 @@ -4786,28 +4982,34 @@ __glXDisp_VertexAttribs2dvNV(GLbyte * pc) } #endif - glVertexAttribs2dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8)); + VertexAttribs2dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8)); } void __glXDisp_VertexAttribs2fvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS2FVNVPROC VertexAttribs2fvNV = + __glGetProcAddress("glVertexAttribs2fvNV"); const GLsizei n = *(GLsizei *) (pc + 4); - glVertexAttribs2fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8)); + VertexAttribs2fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8)); } void __glXDisp_VertexAttribs2svNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS2SVNVPROC VertexAttribs2svNV = + __glGetProcAddress("glVertexAttribs2svNV"); const GLsizei n = *(GLsizei *) (pc + 4); - glVertexAttribs2svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8)); + VertexAttribs2svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8)); } void __glXDisp_VertexAttribs3dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS3DVNVPROC VertexAttribs3dvNV = + __glGetProcAddress("glVertexAttribs3dvNV"); const GLsizei n = *(GLsizei *) (pc + 4); #ifdef __GLX_ALIGN64 @@ -4819,28 +5021,34 @@ __glXDisp_VertexAttribs3dvNV(GLbyte * pc) } #endif - glVertexAttribs3dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8)); + VertexAttribs3dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8)); } void __glXDisp_VertexAttribs3fvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS3FVNVPROC VertexAttribs3fvNV = + __glGetProcAddress("glVertexAttribs3fvNV"); const GLsizei n = *(GLsizei *) (pc + 4); - glVertexAttribs3fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8)); + VertexAttribs3fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8)); } void __glXDisp_VertexAttribs3svNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS3SVNVPROC VertexAttribs3svNV = + __glGetProcAddress("glVertexAttribs3svNV"); const GLsizei n = *(GLsizei *) (pc + 4); - glVertexAttribs3svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8)); + VertexAttribs3svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8)); } void __glXDisp_VertexAttribs4dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS4DVNVPROC VertexAttribs4dvNV = + __glGetProcAddress("glVertexAttribs4dvNV"); const GLsizei n = *(GLsizei *) (pc + 4); #ifdef __GLX_ALIGN64 @@ -4852,35 +5060,43 @@ __glXDisp_VertexAttribs4dvNV(GLbyte * pc) } #endif - glVertexAttribs4dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8)); + VertexAttribs4dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8)); } void __glXDisp_VertexAttribs4fvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS4FVNVPROC VertexAttribs4fvNV = + __glGetProcAddress("glVertexAttribs4fvNV"); const GLsizei n = *(GLsizei *) (pc + 4); - glVertexAttribs4fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8)); + VertexAttribs4fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8)); } void __glXDisp_VertexAttribs4svNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS4SVNVPROC VertexAttribs4svNV = + __glGetProcAddress("glVertexAttribs4svNV"); const GLsizei n = *(GLsizei *) (pc + 4); - glVertexAttribs4svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8)); + VertexAttribs4svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8)); } void __glXDisp_VertexAttribs4ubvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS4UBVNVPROC VertexAttribs4ubvNV = + __glGetProcAddress("glVertexAttribs4ubvNV"); const GLsizei n = *(GLsizei *) (pc + 4); - glVertexAttribs4ubvNV(*(GLuint *) (pc + 0), n, (const GLubyte *) (pc + 8)); + VertexAttribs4ubvNV(*(GLuint *) (pc + 0), n, (const GLubyte *) (pc + 8)); } void __glXDisp_ActiveStencilFaceEXT(GLbyte * pc) { - glActiveStencilFaceEXT(*(GLenum *) (pc + 0)); + PFNGLACTIVESTENCILFACEEXTPROC ActiveStencilFaceEXT = + __glGetProcAddress("glActiveStencilFaceEXT"); + ActiveStencilFaceEXT(*(GLenum *) (pc + 0)); } diff --git a/xorg-server/glx/indirect_dispatch_swap.c b/xorg-server/glx/indirect_dispatch_swap.c index 974751461..647d0c985 100644 --- a/xorg-server/glx/indirect_dispatch_swap.c +++ b/xorg-server/glx/indirect_dispatch_swap.c @@ -3821,7 +3821,7 @@ __glXDispSwap_CopyTexSubImage3D(GLbyte * pc) void __glXDispSwap_ActiveTexture(GLbyte * pc) { - glActiveTexture((GLenum) bswap_ENUM(pc + 0)); + glActiveTextureARB((GLenum) bswap_ENUM(pc + 0)); } void @@ -3834,8 +3834,8 @@ __glXDispSwap_MultiTexCoord1dv(GLbyte * pc) } #endif - glMultiTexCoord1dv((GLenum) bswap_ENUM(pc + 8), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), + glMultiTexCoord1dvARB((GLenum) bswap_ENUM(pc + 8), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 1)); } @@ -3850,17 +3850,17 @@ __glXDispSwap_MultiTexCoord1fvARB(GLbyte * pc) void __glXDispSwap_MultiTexCoord1iv(GLbyte * pc) { - glMultiTexCoord1iv((GLenum) bswap_ENUM(pc + 0), - (const GLint *) bswap_32_array((uint32_t *) (pc + 4), - 1)); + glMultiTexCoord1ivARB((GLenum) bswap_ENUM(pc + 0), + (const GLint *) bswap_32_array((uint32_t *) (pc + 4), + 1)); } void __glXDispSwap_MultiTexCoord1sv(GLbyte * pc) { - glMultiTexCoord1sv((GLenum) bswap_ENUM(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 1)); + glMultiTexCoord1svARB((GLenum) bswap_ENUM(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), + 1)); } void @@ -3873,9 +3873,9 @@ __glXDispSwap_MultiTexCoord2dv(GLbyte * pc) } #endif - glMultiTexCoord2dv((GLenum) bswap_ENUM(pc + 16), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), - 2)); + glMultiTexCoord2dvARB((GLenum) bswap_ENUM(pc + 16), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), + 2)); } void @@ -3889,17 +3889,17 @@ __glXDispSwap_MultiTexCoord2fvARB(GLbyte * pc) void __glXDispSwap_MultiTexCoord2iv(GLbyte * pc) { - glMultiTexCoord2iv((GLenum) bswap_ENUM(pc + 0), - (const GLint *) bswap_32_array((uint32_t *) (pc + 4), - 2)); + glMultiTexCoord2ivARB((GLenum) bswap_ENUM(pc + 0), + (const GLint *) bswap_32_array((uint32_t *) (pc + 4), + 2)); } void __glXDispSwap_MultiTexCoord2sv(GLbyte * pc) { - glMultiTexCoord2sv((GLenum) bswap_ENUM(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 2)); + glMultiTexCoord2svARB((GLenum) bswap_ENUM(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), + 2)); } void @@ -3912,9 +3912,9 @@ __glXDispSwap_MultiTexCoord3dv(GLbyte * pc) } #endif - glMultiTexCoord3dv((GLenum) bswap_ENUM(pc + 24), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), - 3)); + glMultiTexCoord3dvARB((GLenum) bswap_ENUM(pc + 24), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), + 3)); } void @@ -3928,17 +3928,17 @@ __glXDispSwap_MultiTexCoord3fvARB(GLbyte * pc) void __glXDispSwap_MultiTexCoord3iv(GLbyte * pc) { - glMultiTexCoord3iv((GLenum) bswap_ENUM(pc + 0), - (const GLint *) bswap_32_array((uint32_t *) (pc + 4), - 3)); + glMultiTexCoord3ivARB((GLenum) bswap_ENUM(pc + 0), + (const GLint *) bswap_32_array((uint32_t *) (pc + 4), + 3)); } void __glXDispSwap_MultiTexCoord3sv(GLbyte * pc) { - glMultiTexCoord3sv((GLenum) bswap_ENUM(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 3)); + glMultiTexCoord3svARB((GLenum) bswap_ENUM(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), + 3)); } void @@ -3951,9 +3951,9 @@ __glXDispSwap_MultiTexCoord4dv(GLbyte * pc) } #endif - glMultiTexCoord4dv((GLenum) bswap_ENUM(pc + 32), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), - 4)); + glMultiTexCoord4dvARB((GLenum) bswap_ENUM(pc + 32), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), + 4)); } void @@ -3967,124 +3967,141 @@ __glXDispSwap_MultiTexCoord4fvARB(GLbyte * pc) void __glXDispSwap_MultiTexCoord4iv(GLbyte * pc) { - glMultiTexCoord4iv((GLenum) bswap_ENUM(pc + 0), - (const GLint *) bswap_32_array((uint32_t *) (pc + 4), - 4)); + glMultiTexCoord4ivARB((GLenum) bswap_ENUM(pc + 0), + (const GLint *) bswap_32_array((uint32_t *) (pc + 4), + 4)); } void __glXDispSwap_MultiTexCoord4sv(GLbyte * pc) { - glMultiTexCoord4sv((GLenum) bswap_ENUM(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 4)); + glMultiTexCoord4svARB((GLenum) bswap_ENUM(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), + 4)); } void __glXDispSwap_CompressedTexImage1D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D = + __glGetProcAddress("glCompressedTexImage1D"); const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 20); - glCompressedTexImage1D((GLenum) bswap_ENUM(pc + 0), - (GLint) bswap_CARD32(pc + 4), - (GLenum) bswap_ENUM(pc + 8), - (GLsizei) bswap_CARD32(pc + 12), - (GLint) bswap_CARD32(pc + 16), - imageSize, (const GLvoid *) (pc + 24)); + CompressedTexImage1D((GLenum) bswap_ENUM(pc + 0), + (GLint) bswap_CARD32(pc + 4), + (GLenum) bswap_ENUM(pc + 8), + (GLsizei) bswap_CARD32(pc + 12), + (GLint) bswap_CARD32(pc + 16), + imageSize, (const GLvoid *) (pc + 24)); } void __glXDispSwap_CompressedTexImage2D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D = + __glGetProcAddress("glCompressedTexImage2D"); const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 24); - glCompressedTexImage2D((GLenum) bswap_ENUM(pc + 0), - (GLint) bswap_CARD32(pc + 4), - (GLenum) bswap_ENUM(pc + 8), - (GLsizei) bswap_CARD32(pc + 12), - (GLsizei) bswap_CARD32(pc + 16), - (GLint) bswap_CARD32(pc + 20), - imageSize, (const GLvoid *) (pc + 28)); + CompressedTexImage2D((GLenum) bswap_ENUM(pc + 0), + (GLint) bswap_CARD32(pc + 4), + (GLenum) bswap_ENUM(pc + 8), + (GLsizei) bswap_CARD32(pc + 12), + (GLsizei) bswap_CARD32(pc + 16), + (GLint) bswap_CARD32(pc + 20), + imageSize, (const GLvoid *) (pc + 28)); } void __glXDispSwap_CompressedTexImage3D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D = + __glGetProcAddress("glCompressedTexImage3D"); const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 28); - glCompressedTexImage3D((GLenum) bswap_ENUM(pc + 0), - (GLint) bswap_CARD32(pc + 4), - (GLenum) bswap_ENUM(pc + 8), - (GLsizei) bswap_CARD32(pc + 12), - (GLsizei) bswap_CARD32(pc + 16), - (GLsizei) bswap_CARD32(pc + 20), - (GLint) bswap_CARD32(pc + 24), - imageSize, (const GLvoid *) (pc + 32)); + CompressedTexImage3D((GLenum) bswap_ENUM(pc + 0), + (GLint) bswap_CARD32(pc + 4), + (GLenum) bswap_ENUM(pc + 8), + (GLsizei) bswap_CARD32(pc + 12), + (GLsizei) bswap_CARD32(pc + 16), + (GLsizei) bswap_CARD32(pc + 20), + (GLint) bswap_CARD32(pc + 24), + imageSize, (const GLvoid *) (pc + 32)); } void __glXDispSwap_CompressedTexSubImage1D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D = + __glGetProcAddress("glCompressedTexSubImage1D"); const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 20); - glCompressedTexSubImage1D((GLenum) bswap_ENUM(pc + 0), - (GLint) bswap_CARD32(pc + 4), - (GLint) bswap_CARD32(pc + 8), - (GLsizei) bswap_CARD32(pc + 12), - (GLenum) bswap_ENUM(pc + 16), - imageSize, (const GLvoid *) (pc + 24)); + CompressedTexSubImage1D((GLenum) bswap_ENUM(pc + 0), + (GLint) bswap_CARD32(pc + 4), + (GLint) bswap_CARD32(pc + 8), + (GLsizei) bswap_CARD32(pc + 12), + (GLenum) bswap_ENUM(pc + 16), + imageSize, (const GLvoid *) (pc + 24)); } void __glXDispSwap_CompressedTexSubImage2D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D = + __glGetProcAddress("glCompressedTexSubImage2D"); const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 28); - glCompressedTexSubImage2D((GLenum) bswap_ENUM(pc + 0), - (GLint) bswap_CARD32(pc + 4), - (GLint) bswap_CARD32(pc + 8), - (GLint) bswap_CARD32(pc + 12), - (GLsizei) bswap_CARD32(pc + 16), - (GLsizei) bswap_CARD32(pc + 20), - (GLenum) bswap_ENUM(pc + 24), - imageSize, (const GLvoid *) (pc + 32)); + CompressedTexSubImage2D((GLenum) bswap_ENUM(pc + 0), + (GLint) bswap_CARD32(pc + 4), + (GLint) bswap_CARD32(pc + 8), + (GLint) bswap_CARD32(pc + 12), + (GLsizei) bswap_CARD32(pc + 16), + (GLsizei) bswap_CARD32(pc + 20), + (GLenum) bswap_ENUM(pc + 24), + imageSize, (const GLvoid *) (pc + 32)); } void __glXDispSwap_CompressedTexSubImage3D(GLbyte * pc) { + PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D = + __glGetProcAddress("glCompressedTexSubImage3D"); const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 36); - glCompressedTexSubImage3D((GLenum) bswap_ENUM(pc + 0), - (GLint) bswap_CARD32(pc + 4), - (GLint) bswap_CARD32(pc + 8), - (GLint) bswap_CARD32(pc + 12), - (GLint) bswap_CARD32(pc + 16), - (GLsizei) bswap_CARD32(pc + 20), - (GLsizei) bswap_CARD32(pc + 24), - (GLsizei) bswap_CARD32(pc + 28), - (GLenum) bswap_ENUM(pc + 32), - imageSize, (const GLvoid *) (pc + 40)); + CompressedTexSubImage3D((GLenum) bswap_ENUM(pc + 0), + (GLint) bswap_CARD32(pc + 4), + (GLint) bswap_CARD32(pc + 8), + (GLint) bswap_CARD32(pc + 12), + (GLint) bswap_CARD32(pc + 16), + (GLsizei) bswap_CARD32(pc + 20), + (GLsizei) bswap_CARD32(pc + 24), + (GLsizei) bswap_CARD32(pc + 28), + (GLenum) bswap_ENUM(pc + 32), + imageSize, (const GLvoid *) (pc + 40)); } void __glXDispSwap_SampleCoverage(GLbyte * pc) { - glSampleCoverage((GLclampf) bswap_FLOAT32(pc + 0), *(GLboolean *) (pc + 4)); + PFNGLSAMPLECOVERAGEPROC SampleCoverage = + __glGetProcAddress("glSampleCoverage"); + SampleCoverage((GLclampf) bswap_FLOAT32(pc + 0), *(GLboolean *) (pc + 4)); } void __glXDispSwap_BlendFuncSeparate(GLbyte * pc) { - glBlendFuncSeparate((GLenum) bswap_ENUM(pc + 0), - (GLenum) bswap_ENUM(pc + 4), - (GLenum) bswap_ENUM(pc + 8), - (GLenum) bswap_ENUM(pc + 12)); + PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate = + __glGetProcAddress("glBlendFuncSeparate"); + BlendFuncSeparate((GLenum) bswap_ENUM(pc + 0), (GLenum) bswap_ENUM(pc + 4), + (GLenum) bswap_ENUM(pc + 8), + (GLenum) bswap_ENUM(pc + 12)); } void __glXDispSwap_FogCoorddv(GLbyte * pc) { + PFNGLFOGCOORDDVPROC FogCoorddv = __glGetProcAddress("glFogCoorddv"); + #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 8); @@ -4092,19 +4109,23 @@ __glXDispSwap_FogCoorddv(GLbyte * pc) } #endif - glFogCoorddv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 1)); + FogCoorddv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 1)); } void __glXDispSwap_PointParameterf(GLbyte * pc) { - glPointParameterf((GLenum) bswap_ENUM(pc + 0), - (GLfloat) bswap_FLOAT32(pc + 4)); + PFNGLPOINTPARAMETERFPROC PointParameterf = + __glGetProcAddress("glPointParameterf"); + PointParameterf((GLenum) bswap_ENUM(pc + 0), + (GLfloat) bswap_FLOAT32(pc + 4)); } void __glXDispSwap_PointParameterfv(GLbyte * pc) { + PFNGLPOINTPARAMETERFVPROC PointParameterfv = + __glGetProcAddress("glPointParameterfv"); const GLenum pname = (GLenum) bswap_ENUM(pc + 0); const GLfloat *params; @@ -4112,19 +4133,22 @@ __glXDispSwap_PointParameterfv(GLbyte * pc) (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), __glPointParameterfv_size(pname)); - glPointParameterfv(pname, params); + PointParameterfv(pname, params); } void __glXDispSwap_PointParameteri(GLbyte * pc) { - glPointParameteri((GLenum) bswap_ENUM(pc + 0), - (GLint) bswap_CARD32(pc + 4)); + PFNGLPOINTPARAMETERIPROC PointParameteri = + __glGetProcAddress("glPointParameteri"); + PointParameteri((GLenum) bswap_ENUM(pc + 0), (GLint) bswap_CARD32(pc + 4)); } void __glXDispSwap_PointParameteriv(GLbyte * pc) { + PFNGLPOINTPARAMETERIVPROC PointParameteriv = + __glGetProcAddress("glPointParameteriv"); const GLenum pname = (GLenum) bswap_ENUM(pc + 0); const GLint *params; @@ -4132,18 +4156,22 @@ __glXDispSwap_PointParameteriv(GLbyte * pc) (const GLint *) bswap_32_array((uint32_t *) (pc + 4), __glPointParameteriv_size(pname)); - glPointParameteriv(pname, params); + PointParameteriv(pname, params); } void __glXDispSwap_SecondaryColor3bv(GLbyte * pc) { - glSecondaryColor3bv((const GLbyte *) (pc + 0)); + PFNGLSECONDARYCOLOR3BVPROC SecondaryColor3bv = + __glGetProcAddress("glSecondaryColor3bv"); + SecondaryColor3bv((const GLbyte *) (pc + 0)); } void __glXDispSwap_SecondaryColor3dv(GLbyte * pc) { + PFNGLSECONDARYCOLOR3DVPROC SecondaryColor3dv = + __glGetProcAddress("glSecondaryColor3dv"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 24); @@ -4151,59 +4179,74 @@ __glXDispSwap_SecondaryColor3dv(GLbyte * pc) } #endif - glSecondaryColor3dv((const GLdouble *) - bswap_64_array((uint64_t *) (pc + 0), 3)); + SecondaryColor3dv((const GLdouble *) + bswap_64_array((uint64_t *) (pc + 0), 3)); } void __glXDispSwap_SecondaryColor3iv(GLbyte * pc) { - glSecondaryColor3iv((const GLint *) - bswap_32_array((uint32_t *) (pc + 0), 3)); + PFNGLSECONDARYCOLOR3IVPROC SecondaryColor3iv = + __glGetProcAddress("glSecondaryColor3iv"); + SecondaryColor3iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 3)); } void __glXDispSwap_SecondaryColor3sv(GLbyte * pc) { - glSecondaryColor3sv((const GLshort *) - bswap_16_array((uint16_t *) (pc + 0), 3)); + PFNGLSECONDARYCOLOR3SVPROC SecondaryColor3sv = + __glGetProcAddress("glSecondaryColor3sv"); + SecondaryColor3sv((const GLshort *) + bswap_16_array((uint16_t *) (pc + 0), 3)); } void __glXDispSwap_SecondaryColor3ubv(GLbyte * pc) { - glSecondaryColor3ubv((const GLubyte *) (pc + 0)); + PFNGLSECONDARYCOLOR3UBVPROC SecondaryColor3ubv = + __glGetProcAddress("glSecondaryColor3ubv"); + SecondaryColor3ubv((const GLubyte *) (pc + 0)); } void __glXDispSwap_SecondaryColor3uiv(GLbyte * pc) { - glSecondaryColor3uiv((const GLuint *) - bswap_32_array((uint32_t *) (pc + 0), 3)); + PFNGLSECONDARYCOLOR3UIVPROC SecondaryColor3uiv = + __glGetProcAddress("glSecondaryColor3uiv"); + SecondaryColor3uiv((const GLuint *) + bswap_32_array((uint32_t *) (pc + 0), 3)); } void __glXDispSwap_SecondaryColor3usv(GLbyte * pc) { - glSecondaryColor3usv((const GLushort *) - bswap_16_array((uint16_t *) (pc + 0), 3)); + PFNGLSECONDARYCOLOR3USVPROC SecondaryColor3usv = + __glGetProcAddress("glSecondaryColor3usv"); + SecondaryColor3usv((const GLushort *) + bswap_16_array((uint16_t *) (pc + 0), 3)); } void __glXDispSwap_WindowPos3fv(GLbyte * pc) { - glWindowPos3fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 3)); + PFNGLWINDOWPOS3FVPROC WindowPos3fv = __glGetProcAddress("glWindowPos3fv"); + + WindowPos3fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 3)); } void __glXDispSwap_BeginQuery(GLbyte * pc) { - glBeginQuery((GLenum) bswap_ENUM(pc + 0), (GLuint) bswap_CARD32(pc + 4)); + PFNGLBEGINQUERYPROC BeginQuery = __glGetProcAddress("glBeginQuery"); + + BeginQuery((GLenum) bswap_ENUM(pc + 0), (GLuint) bswap_CARD32(pc + 4)); } int __glXDispSwap_DeleteQueries(__GLXclientState * cl, GLbyte * pc) { + PFNGLDELETEQUERIESPROC DeleteQueries = + __glGetProcAddress("glDeleteQueries"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = @@ -4213,9 +4256,9 @@ __glXDispSwap_DeleteQueries(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { const GLsizei n = (GLsizei) bswap_CARD32(pc + 0); - glDeleteQueries(n, - (const GLuint *) bswap_32_array((uint32_t *) (pc + 4), - 0)); + DeleteQueries(n, + (const GLuint *) bswap_32_array((uint32_t *) (pc + 4), + 0)); error = Success; } @@ -4225,12 +4268,15 @@ __glXDispSwap_DeleteQueries(__GLXclientState * cl, GLbyte * pc) void __glXDispSwap_EndQuery(GLbyte * pc) { - glEndQuery((GLenum) bswap_ENUM(pc + 0)); + PFNGLENDQUERYPROC EndQuery = __glGetProcAddress("glEndQuery"); + + EndQuery((GLenum) bswap_ENUM(pc + 0)); } int __glXDispSwap_GenQueries(__GLXclientState * cl, GLbyte * pc) { + PFNGLGENQUERIESPROC GenQueries = __glGetProcAddress("glGenQueries"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = @@ -4244,7 +4290,7 @@ __glXDispSwap_GenQueries(__GLXclientState * cl, GLbyte * pc) GLuint *ids = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4); - glGenQueries(n, ids); + GenQueries(n, ids); (void) bswap_32_array((uint32_t *) ids, n); __glXSendReplySwap(cl->client, ids, n, 4, GL_TRUE, 0); error = Success; @@ -4256,6 +4302,8 @@ __glXDispSwap_GenQueries(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_GetQueryObjectiv(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv = + __glGetProcAddress("glGetQueryObjectiv"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = @@ -4275,7 +4323,7 @@ __glXDispSwap_GetQueryObjectiv(__GLXclientState * cl, GLbyte * pc) return BadAlloc; __glXClearErrorOccured(); - glGetQueryObjectiv((GLuint) bswap_CARD32(pc + 0), pname, params); + GetQueryObjectiv((GLuint) bswap_CARD32(pc + 0), pname, params); (void) bswap_32_array((uint32_t *) params, compsize); __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0); error = Success; @@ -4287,6 +4335,8 @@ __glXDispSwap_GetQueryObjectiv(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_GetQueryObjectuiv(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv = + __glGetProcAddress("glGetQueryObjectuiv"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = @@ -4306,7 +4356,7 @@ __glXDispSwap_GetQueryObjectuiv(__GLXclientState * cl, GLbyte * pc) return BadAlloc; __glXClearErrorOccured(); - glGetQueryObjectuiv((GLuint) bswap_CARD32(pc + 0), pname, params); + GetQueryObjectuiv((GLuint) bswap_CARD32(pc + 0), pname, params); (void) bswap_32_array((uint32_t *) params, compsize); __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0); error = Success; @@ -4318,6 +4368,7 @@ __glXDispSwap_GetQueryObjectuiv(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_GetQueryiv(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETQUERYIVPROC GetQueryiv = __glGetProcAddress("glGetQueryiv"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = @@ -4337,7 +4388,7 @@ __glXDispSwap_GetQueryiv(__GLXclientState * cl, GLbyte * pc) return BadAlloc; __glXClearErrorOccured(); - glGetQueryiv((GLenum) bswap_ENUM(pc + 0), pname, params); + GetQueryiv((GLenum) bswap_ENUM(pc + 0), pname, params); (void) bswap_32_array((uint32_t *) params, compsize); __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0); error = Success; @@ -4349,6 +4400,7 @@ __glXDispSwap_GetQueryiv(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_IsQuery(__GLXclientState * cl, GLbyte * pc) { + PFNGLISQUERYPROC IsQuery = __glGetProcAddress("glIsQuery"); xGLXSingleReq *const req = (xGLXSingleReq *) pc; int error; __GLXcontext *const cx = @@ -4358,7 +4410,7 @@ __glXDispSwap_IsQuery(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLboolean retval; - retval = glIsQuery((GLuint) bswap_CARD32(pc + 0)); + retval = IsQuery((GLuint) bswap_CARD32(pc + 0)); __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval); error = Success; } @@ -4369,21 +4421,26 @@ __glXDispSwap_IsQuery(__GLXclientState * cl, GLbyte * pc) void __glXDispSwap_BlendEquationSeparate(GLbyte * pc) { - glBlendEquationSeparate((GLenum) bswap_ENUM(pc + 0), - (GLenum) bswap_ENUM(pc + 4)); + PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate = + __glGetProcAddress("glBlendEquationSeparate"); + BlendEquationSeparate((GLenum) bswap_ENUM(pc + 0), + (GLenum) bswap_ENUM(pc + 4)); } void __glXDispSwap_DrawBuffers(GLbyte * pc) { + PFNGLDRAWBUFFERSPROC DrawBuffers = __glGetProcAddress("glDrawBuffers"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 0); - glDrawBuffers(n, (const GLenum *) bswap_32_array((uint32_t *) (pc + 4), 0)); + DrawBuffers(n, (const GLenum *) bswap_32_array((uint32_t *) (pc + 4), 0)); } void __glXDispSwap_VertexAttrib1dv(GLbyte * pc) { + PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv = + __glGetProcAddress("glVertexAttrib1dv"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 12); @@ -4391,22 +4448,25 @@ __glXDispSwap_VertexAttrib1dv(GLbyte * pc) } #endif - glVertexAttrib1dv((GLuint) bswap_CARD32(pc + 0), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), - 1)); + VertexAttrib1dv((GLuint) bswap_CARD32(pc + 0), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), + 1)); } void __glXDispSwap_VertexAttrib1sv(GLbyte * pc) { - glVertexAttrib1sv((GLuint) bswap_CARD32(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 1)); + PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv = + __glGetProcAddress("glVertexAttrib1sv"); + VertexAttrib1sv((GLuint) bswap_CARD32(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), 1)); } void __glXDispSwap_VertexAttrib2dv(GLbyte * pc) { + PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv = + __glGetProcAddress("glVertexAttrib2dv"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 20); @@ -4414,22 +4474,25 @@ __glXDispSwap_VertexAttrib2dv(GLbyte * pc) } #endif - glVertexAttrib2dv((GLuint) bswap_CARD32(pc + 0), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), - 2)); + VertexAttrib2dv((GLuint) bswap_CARD32(pc + 0), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), + 2)); } void __glXDispSwap_VertexAttrib2sv(GLbyte * pc) { - glVertexAttrib2sv((GLuint) bswap_CARD32(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 2)); + PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv = + __glGetProcAddress("glVertexAttrib2sv"); + VertexAttrib2sv((GLuint) bswap_CARD32(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), 2)); } void __glXDispSwap_VertexAttrib3dv(GLbyte * pc) { + PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv = + __glGetProcAddress("glVertexAttrib3dv"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 28); @@ -4437,74 +4500,89 @@ __glXDispSwap_VertexAttrib3dv(GLbyte * pc) } #endif - glVertexAttrib3dv((GLuint) bswap_CARD32(pc + 0), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), - 3)); + VertexAttrib3dv((GLuint) bswap_CARD32(pc + 0), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), + 3)); } void __glXDispSwap_VertexAttrib3sv(GLbyte * pc) { - glVertexAttrib3sv((GLuint) bswap_CARD32(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 3)); + PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv = + __glGetProcAddress("glVertexAttrib3sv"); + VertexAttrib3sv((GLuint) bswap_CARD32(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), 3)); } void __glXDispSwap_VertexAttrib4Nbv(GLbyte * pc) { - glVertexAttrib4Nbv((GLuint) bswap_CARD32(pc + 0), - (const GLbyte *) (pc + 4)); + PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv = + __glGetProcAddress("glVertexAttrib4Nbv"); + VertexAttrib4Nbv((GLuint) bswap_CARD32(pc + 0), (const GLbyte *) (pc + 4)); } void __glXDispSwap_VertexAttrib4Niv(GLbyte * pc) { - glVertexAttrib4Niv((GLuint) bswap_CARD32(pc + 0), - (const GLint *) bswap_32_array((uint32_t *) (pc + 4), - 4)); + PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv = + __glGetProcAddress("glVertexAttrib4Niv"); + VertexAttrib4Niv((GLuint) bswap_CARD32(pc + 0), + (const GLint *) bswap_32_array((uint32_t *) (pc + 4), 4)); } void __glXDispSwap_VertexAttrib4Nsv(GLbyte * pc) { - glVertexAttrib4Nsv((GLuint) bswap_CARD32(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 4)); + PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv = + __glGetProcAddress("glVertexAttrib4Nsv"); + VertexAttrib4Nsv((GLuint) bswap_CARD32(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), + 4)); } void __glXDispSwap_VertexAttrib4Nubv(GLbyte * pc) { - glVertexAttrib4Nubv((GLuint) bswap_CARD32(pc + 0), - (const GLubyte *) (pc + 4)); + PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv = + __glGetProcAddress("glVertexAttrib4Nubv"); + VertexAttrib4Nubv((GLuint) bswap_CARD32(pc + 0), + (const GLubyte *) (pc + 4)); } void __glXDispSwap_VertexAttrib4Nuiv(GLbyte * pc) { - glVertexAttrib4Nuiv((GLuint) bswap_CARD32(pc + 0), - (const GLuint *) bswap_32_array((uint32_t *) (pc + 4), - 4)); + PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv = + __glGetProcAddress("glVertexAttrib4Nuiv"); + VertexAttrib4Nuiv((GLuint) bswap_CARD32(pc + 0), + (const GLuint *) bswap_32_array((uint32_t *) (pc + 4), + 4)); } void __glXDispSwap_VertexAttrib4Nusv(GLbyte * pc) { - glVertexAttrib4Nusv((GLuint) bswap_CARD32(pc + 0), - (const GLushort *) bswap_16_array((uint16_t *) (pc + 4), - 4)); + PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv = + __glGetProcAddress("glVertexAttrib4Nusv"); + VertexAttrib4Nusv((GLuint) bswap_CARD32(pc + 0), + (const GLushort *) bswap_16_array((uint16_t *) (pc + 4), + 4)); } void __glXDispSwap_VertexAttrib4bv(GLbyte * pc) { - glVertexAttrib4bv((GLuint) bswap_CARD32(pc + 0), (const GLbyte *) (pc + 4)); + PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv = + __glGetProcAddress("glVertexAttrib4bv"); + VertexAttrib4bv((GLuint) bswap_CARD32(pc + 0), (const GLbyte *) (pc + 4)); } void __glXDispSwap_VertexAttrib4dv(GLbyte * pc) { + PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv = + __glGetProcAddress("glVertexAttrib4dv"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 36); @@ -4512,65 +4590,77 @@ __glXDispSwap_VertexAttrib4dv(GLbyte * pc) } #endif - glVertexAttrib4dv((GLuint) bswap_CARD32(pc + 0), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), - 4)); + VertexAttrib4dv((GLuint) bswap_CARD32(pc + 0), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), + 4)); } void __glXDispSwap_VertexAttrib4iv(GLbyte * pc) { - glVertexAttrib4iv((GLuint) bswap_CARD32(pc + 0), - (const GLint *) bswap_32_array((uint32_t *) (pc + 4), 4)); + PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv = + __glGetProcAddress("glVertexAttrib4iv"); + VertexAttrib4iv((GLuint) bswap_CARD32(pc + 0), + (const GLint *) bswap_32_array((uint32_t *) (pc + 4), 4)); } void __glXDispSwap_VertexAttrib4sv(GLbyte * pc) { - glVertexAttrib4sv((GLuint) bswap_CARD32(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 4)); + PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv = + __glGetProcAddress("glVertexAttrib4sv"); + VertexAttrib4sv((GLuint) bswap_CARD32(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), 4)); } void __glXDispSwap_VertexAttrib4ubv(GLbyte * pc) { - glVertexAttrib4ubv((GLuint) bswap_CARD32(pc + 0), - (const GLubyte *) (pc + 4)); + PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv = + __glGetProcAddress("glVertexAttrib4ubv"); + VertexAttrib4ubv((GLuint) bswap_CARD32(pc + 0), (const GLubyte *) (pc + 4)); } void __glXDispSwap_VertexAttrib4uiv(GLbyte * pc) { - glVertexAttrib4uiv((GLuint) bswap_CARD32(pc + 0), - (const GLuint *) bswap_32_array((uint32_t *) (pc + 4), - 4)); + PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv = + __glGetProcAddress("glVertexAttrib4uiv"); + VertexAttrib4uiv((GLuint) bswap_CARD32(pc + 0), + (const GLuint *) bswap_32_array((uint32_t *) (pc + 4), 4)); } void __glXDispSwap_VertexAttrib4usv(GLbyte * pc) { - glVertexAttrib4usv((GLuint) bswap_CARD32(pc + 0), - (const GLushort *) bswap_16_array((uint16_t *) (pc + 4), - 4)); + PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv = + __glGetProcAddress("glVertexAttrib4usv"); + VertexAttrib4usv((GLuint) bswap_CARD32(pc + 0), + (const GLushort *) bswap_16_array((uint16_t *) (pc + 4), + 4)); } void __glXDispSwap_ClampColor(GLbyte * pc) { - glClampColor((GLenum) bswap_ENUM(pc + 0), (GLenum) bswap_ENUM(pc + 4)); + PFNGLCLAMPCOLORPROC ClampColor = __glGetProcAddress("glClampColor"); + + ClampColor((GLenum) bswap_ENUM(pc + 0), (GLenum) bswap_ENUM(pc + 4)); } void __glXDispSwap_BindProgramARB(GLbyte * pc) { - glBindProgramARB((GLenum) bswap_ENUM(pc + 0), - (GLuint) bswap_CARD32(pc + 4)); + PFNGLBINDPROGRAMARBPROC BindProgramARB = + __glGetProcAddress("glBindProgramARB"); + BindProgramARB((GLenum) bswap_ENUM(pc + 0), (GLuint) bswap_CARD32(pc + 4)); } int __glXDispSwap_DeleteProgramsARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLDELETEPROGRAMSARBPROC DeleteProgramsARB = + __glGetProcAddress("glDeleteProgramsARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -4580,9 +4670,9 @@ __glXDispSwap_DeleteProgramsARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { const GLsizei n = (GLsizei) bswap_CARD32(pc + 0); - glDeleteProgramsARB(n, - (const GLuint *) - bswap_32_array((uint32_t *) (pc + 4), 0)); + DeleteProgramsARB(n, + (const GLuint *) bswap_32_array((uint32_t *) (pc + 4), + 0)); error = Success; } @@ -4592,6 +4682,8 @@ __glXDispSwap_DeleteProgramsARB(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_GenProgramsARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGENPROGRAMSARBPROC GenProgramsARB = + __glGetProcAddress("glGenProgramsARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -4605,7 +4697,7 @@ __glXDispSwap_GenProgramsARB(__GLXclientState * cl, GLbyte * pc) GLuint *programs = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4); - glGenProgramsARB(n, programs); + GenProgramsARB(n, programs); (void) bswap_32_array((uint32_t *) programs, n); __glXSendReplySwap(cl->client, programs, n, 4, GL_TRUE, 0); error = Success; @@ -4617,6 +4709,8 @@ __glXDispSwap_GenProgramsARB(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_GetProgramEnvParameterdvARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETPROGRAMENVPARAMETERDVARBPROC GetProgramEnvParameterdvARB = + __glGetProcAddress("glGetProgramEnvParameterdvARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -4626,8 +4720,8 @@ __glXDispSwap_GetProgramEnvParameterdvARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLdouble params[4]; - glGetProgramEnvParameterdvARB((GLenum) bswap_ENUM(pc + 0), - (GLuint) bswap_CARD32(pc + 4), params); + GetProgramEnvParameterdvARB((GLenum) bswap_ENUM(pc + 0), + (GLuint) bswap_CARD32(pc + 4), params); (void) bswap_64_array((uint64_t *) params, 4); __glXSendReplySwap(cl->client, params, 4, 8, GL_FALSE, 0); error = Success; @@ -4639,6 +4733,8 @@ __glXDispSwap_GetProgramEnvParameterdvARB(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_GetProgramEnvParameterfvARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETPROGRAMENVPARAMETERFVARBPROC GetProgramEnvParameterfvARB = + __glGetProcAddress("glGetProgramEnvParameterfvARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -4648,8 +4744,8 @@ __glXDispSwap_GetProgramEnvParameterfvARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLfloat params[4]; - glGetProgramEnvParameterfvARB((GLenum) bswap_ENUM(pc + 0), - (GLuint) bswap_CARD32(pc + 4), params); + GetProgramEnvParameterfvARB((GLenum) bswap_ENUM(pc + 0), + (GLuint) bswap_CARD32(pc + 4), params); (void) bswap_32_array((uint32_t *) params, 4); __glXSendReplySwap(cl->client, params, 4, 4, GL_FALSE, 0); error = Success; @@ -4661,6 +4757,8 @@ __glXDispSwap_GetProgramEnvParameterfvARB(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_GetProgramLocalParameterdvARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC GetProgramLocalParameterdvARB = + __glGetProcAddress("glGetProgramLocalParameterdvARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -4670,8 +4768,8 @@ __glXDispSwap_GetProgramLocalParameterdvARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLdouble params[4]; - glGetProgramLocalParameterdvARB((GLenum) bswap_ENUM(pc + 0), - (GLuint) bswap_CARD32(pc + 4), params); + GetProgramLocalParameterdvARB((GLenum) bswap_ENUM(pc + 0), + (GLuint) bswap_CARD32(pc + 4), params); (void) bswap_64_array((uint64_t *) params, 4); __glXSendReplySwap(cl->client, params, 4, 8, GL_FALSE, 0); error = Success; @@ -4683,6 +4781,8 @@ __glXDispSwap_GetProgramLocalParameterdvARB(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_GetProgramLocalParameterfvARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC GetProgramLocalParameterfvARB = + __glGetProcAddress("glGetProgramLocalParameterfvARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -4692,8 +4792,8 @@ __glXDispSwap_GetProgramLocalParameterfvARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLfloat params[4]; - glGetProgramLocalParameterfvARB((GLenum) bswap_ENUM(pc + 0), - (GLuint) bswap_CARD32(pc + 4), params); + GetProgramLocalParameterfvARB((GLenum) bswap_ENUM(pc + 0), + (GLuint) bswap_CARD32(pc + 4), params); (void) bswap_32_array((uint32_t *) params, 4); __glXSendReplySwap(cl->client, params, 4, 4, GL_FALSE, 0); error = Success; @@ -4705,6 +4805,8 @@ __glXDispSwap_GetProgramLocalParameterfvARB(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_GetProgramivARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETPROGRAMIVARBPROC GetProgramivARB = + __glGetProcAddress("glGetProgramivARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -4724,7 +4826,7 @@ __glXDispSwap_GetProgramivARB(__GLXclientState * cl, GLbyte * pc) return BadAlloc; __glXClearErrorOccured(); - glGetProgramivARB((GLenum) bswap_ENUM(pc + 0), pname, params); + GetProgramivARB((GLenum) bswap_ENUM(pc + 0), pname, params); (void) bswap_32_array((uint32_t *) params, compsize); __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0); error = Success; @@ -4736,6 +4838,7 @@ __glXDispSwap_GetProgramivARB(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_IsProgramARB(__GLXclientState * cl, GLbyte * pc) { + PFNGLISPROGRAMARBPROC IsProgramARB = __glGetProcAddress("glIsProgramARB"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -4745,7 +4848,7 @@ __glXDispSwap_IsProgramARB(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLboolean retval; - retval = glIsProgramARB((GLuint) bswap_CARD32(pc + 0)); + retval = IsProgramARB((GLuint) bswap_CARD32(pc + 0)); __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval); error = Success; } @@ -4756,6 +4859,8 @@ __glXDispSwap_IsProgramARB(__GLXclientState * cl, GLbyte * pc) void __glXDispSwap_ProgramEnvParameter4dvARB(GLbyte * pc) { + PFNGLPROGRAMENVPARAMETER4DVARBPROC ProgramEnvParameter4dvARB = + __glGetProcAddress("glProgramEnvParameter4dvARB"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 40); @@ -4763,24 +4868,28 @@ __glXDispSwap_ProgramEnvParameter4dvARB(GLbyte * pc) } #endif - glProgramEnvParameter4dvARB((GLenum) bswap_ENUM(pc + 0), - (GLuint) bswap_CARD32(pc + 4), - (const GLdouble *) - bswap_64_array((uint64_t *) (pc + 8), 4)); + ProgramEnvParameter4dvARB((GLenum) bswap_ENUM(pc + 0), + (GLuint) bswap_CARD32(pc + 4), + (const GLdouble *) + bswap_64_array((uint64_t *) (pc + 8), 4)); } void __glXDispSwap_ProgramEnvParameter4fvARB(GLbyte * pc) { - glProgramEnvParameter4fvARB((GLenum) bswap_ENUM(pc + 0), - (GLuint) bswap_CARD32(pc + 4), - (const GLfloat *) - bswap_32_array((uint32_t *) (pc + 8), 4)); + PFNGLPROGRAMENVPARAMETER4FVARBPROC ProgramEnvParameter4fvARB = + __glGetProcAddress("glProgramEnvParameter4fvARB"); + ProgramEnvParameter4fvARB((GLenum) bswap_ENUM(pc + 0), + (GLuint) bswap_CARD32(pc + 4), + (const GLfloat *) + bswap_32_array((uint32_t *) (pc + 8), 4)); } void __glXDispSwap_ProgramLocalParameter4dvARB(GLbyte * pc) { + PFNGLPROGRAMLOCALPARAMETER4DVARBPROC ProgramLocalParameter4dvARB = + __glGetProcAddress("glProgramLocalParameter4dvARB"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 40); @@ -4788,95 +4897,112 @@ __glXDispSwap_ProgramLocalParameter4dvARB(GLbyte * pc) } #endif - glProgramLocalParameter4dvARB((GLenum) bswap_ENUM(pc + 0), - (GLuint) bswap_CARD32(pc + 4), - (const GLdouble *) - bswap_64_array((uint64_t *) (pc + 8), 4)); + ProgramLocalParameter4dvARB((GLenum) bswap_ENUM(pc + 0), + (GLuint) bswap_CARD32(pc + 4), + (const GLdouble *) + bswap_64_array((uint64_t *) (pc + 8), 4)); } void __glXDispSwap_ProgramLocalParameter4fvARB(GLbyte * pc) { - glProgramLocalParameter4fvARB((GLenum) bswap_ENUM(pc + 0), - (GLuint) bswap_CARD32(pc + 4), - (const GLfloat *) - bswap_32_array((uint32_t *) (pc + 8), 4)); + PFNGLPROGRAMLOCALPARAMETER4FVARBPROC ProgramLocalParameter4fvARB = + __glGetProcAddress("glProgramLocalParameter4fvARB"); + ProgramLocalParameter4fvARB((GLenum) bswap_ENUM(pc + 0), + (GLuint) bswap_CARD32(pc + 4), + (const GLfloat *) + bswap_32_array((uint32_t *) (pc + 8), 4)); } void __glXDispSwap_ProgramStringARB(GLbyte * pc) { + PFNGLPROGRAMSTRINGARBPROC ProgramStringARB = + __glGetProcAddress("glProgramStringARB"); const GLsizei len = (GLsizei) bswap_CARD32(pc + 8); - glProgramStringARB((GLenum) bswap_ENUM(pc + 0), - (GLenum) bswap_ENUM(pc + 4), - len, (const GLvoid *) (pc + 12)); + ProgramStringARB((GLenum) bswap_ENUM(pc + 0), + (GLenum) bswap_ENUM(pc + 4), + len, (const GLvoid *) (pc + 12)); } void __glXDispSwap_VertexAttrib1fvARB(GLbyte * pc) { - glVertexAttrib1fvARB((GLuint) bswap_CARD32(pc + 0), - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), - 1)); + PFNGLVERTEXATTRIB1FVARBPROC VertexAttrib1fvARB = + __glGetProcAddress("glVertexAttrib1fvARB"); + VertexAttrib1fvARB((GLuint) bswap_CARD32(pc + 0), + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), + 1)); } void __glXDispSwap_VertexAttrib2fvARB(GLbyte * pc) { - glVertexAttrib2fvARB((GLuint) bswap_CARD32(pc + 0), - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), - 2)); + PFNGLVERTEXATTRIB2FVARBPROC VertexAttrib2fvARB = + __glGetProcAddress("glVertexAttrib2fvARB"); + VertexAttrib2fvARB((GLuint) bswap_CARD32(pc + 0), + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), + 2)); } void __glXDispSwap_VertexAttrib3fvARB(GLbyte * pc) { - glVertexAttrib3fvARB((GLuint) bswap_CARD32(pc + 0), - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), - 3)); + PFNGLVERTEXATTRIB3FVARBPROC VertexAttrib3fvARB = + __glGetProcAddress("glVertexAttrib3fvARB"); + VertexAttrib3fvARB((GLuint) bswap_CARD32(pc + 0), + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), + 3)); } void __glXDispSwap_VertexAttrib4fvARB(GLbyte * pc) { - glVertexAttrib4fvARB((GLuint) bswap_CARD32(pc + 0), - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), - 4)); + PFNGLVERTEXATTRIB4FVARBPROC VertexAttrib4fvARB = + __glGetProcAddress("glVertexAttrib4fvARB"); + VertexAttrib4fvARB((GLuint) bswap_CARD32(pc + 0), + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), + 4)); } void __glXDispSwap_BindFramebuffer(GLbyte * pc) { - glBindFramebuffer((GLenum) bswap_ENUM(pc + 0), - (GLuint) bswap_CARD32(pc + 4)); + PFNGLBINDFRAMEBUFFERPROC BindFramebuffer = + __glGetProcAddress("glBindFramebuffer"); + BindFramebuffer((GLenum) bswap_ENUM(pc + 0), (GLuint) bswap_CARD32(pc + 4)); } void __glXDispSwap_BindRenderbuffer(GLbyte * pc) { - glBindRenderbuffer((GLenum) bswap_ENUM(pc + 0), - (GLuint) bswap_CARD32(pc + 4)); + PFNGLBINDRENDERBUFFERPROC BindRenderbuffer = + __glGetProcAddress("glBindRenderbuffer"); + BindRenderbuffer((GLenum) bswap_ENUM(pc + 0), + (GLuint) bswap_CARD32(pc + 4)); } void __glXDispSwap_BlitFramebuffer(GLbyte * pc) { - glBlitFramebuffer((GLint) bswap_CARD32(pc + 0), - (GLint) bswap_CARD32(pc + 4), - (GLint) bswap_CARD32(pc + 8), - (GLint) bswap_CARD32(pc + 12), - (GLint) bswap_CARD32(pc + 16), - (GLint) bswap_CARD32(pc + 20), - (GLint) bswap_CARD32(pc + 24), - (GLint) bswap_CARD32(pc + 28), - (GLbitfield) bswap_CARD32(pc + 32), - (GLenum) bswap_ENUM(pc + 36)); + PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer = + __glGetProcAddress("glBlitFramebuffer"); + BlitFramebuffer((GLint) bswap_CARD32(pc + 0), (GLint) bswap_CARD32(pc + 4), + (GLint) bswap_CARD32(pc + 8), (GLint) bswap_CARD32(pc + 12), + (GLint) bswap_CARD32(pc + 16), + (GLint) bswap_CARD32(pc + 20), + (GLint) bswap_CARD32(pc + 24), + (GLint) bswap_CARD32(pc + 28), + (GLbitfield) bswap_CARD32(pc + 32), + (GLenum) bswap_ENUM(pc + 36)); } int __glXDispSwap_CheckFramebufferStatus(__GLXclientState * cl, GLbyte * pc) { + PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus = + __glGetProcAddress("glCheckFramebufferStatus"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -4886,7 +5012,7 @@ __glXDispSwap_CheckFramebufferStatus(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLenum retval; - retval = glCheckFramebufferStatus((GLenum) bswap_ENUM(pc + 0)); + retval = CheckFramebufferStatus((GLenum) bswap_ENUM(pc + 0)); __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval); error = Success; } @@ -4897,76 +5023,92 @@ __glXDispSwap_CheckFramebufferStatus(__GLXclientState * cl, GLbyte * pc) void __glXDispSwap_DeleteFramebuffers(GLbyte * pc) { + PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers = + __glGetProcAddress("glDeleteFramebuffers"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 0); - glDeleteFramebuffers(n, - (const GLuint *) bswap_32_array((uint32_t *) (pc + 4), - 0)); + DeleteFramebuffers(n, + (const GLuint *) bswap_32_array((uint32_t *) (pc + 4), + 0)); } void __glXDispSwap_DeleteRenderbuffers(GLbyte * pc) { + PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers = + __glGetProcAddress("glDeleteRenderbuffers"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 0); - glDeleteRenderbuffers(n, - (const GLuint *) bswap_32_array((uint32_t *) (pc + 4), - 0)); + DeleteRenderbuffers(n, + (const GLuint *) bswap_32_array((uint32_t *) (pc + 4), + 0)); } void __glXDispSwap_FramebufferRenderbuffer(GLbyte * pc) { - glFramebufferRenderbuffer((GLenum) bswap_ENUM(pc + 0), - (GLenum) bswap_ENUM(pc + 4), - (GLenum) bswap_ENUM(pc + 8), - (GLuint) bswap_CARD32(pc + 12)); + PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer = + __glGetProcAddress("glFramebufferRenderbuffer"); + FramebufferRenderbuffer((GLenum) bswap_ENUM(pc + 0), + (GLenum) bswap_ENUM(pc + 4), + (GLenum) bswap_ENUM(pc + 8), + (GLuint) bswap_CARD32(pc + 12)); } void __glXDispSwap_FramebufferTexture1D(GLbyte * pc) { - glFramebufferTexture1D((GLenum) bswap_ENUM(pc + 0), - (GLenum) bswap_ENUM(pc + 4), - (GLenum) bswap_ENUM(pc + 8), - (GLuint) bswap_CARD32(pc + 12), - (GLint) bswap_CARD32(pc + 16)); + PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D = + __glGetProcAddress("glFramebufferTexture1D"); + FramebufferTexture1D((GLenum) bswap_ENUM(pc + 0), + (GLenum) bswap_ENUM(pc + 4), + (GLenum) bswap_ENUM(pc + 8), + (GLuint) bswap_CARD32(pc + 12), + (GLint) bswap_CARD32(pc + 16)); } void __glXDispSwap_FramebufferTexture2D(GLbyte * pc) { - glFramebufferTexture2D((GLenum) bswap_ENUM(pc + 0), - (GLenum) bswap_ENUM(pc + 4), - (GLenum) bswap_ENUM(pc + 8), - (GLuint) bswap_CARD32(pc + 12), - (GLint) bswap_CARD32(pc + 16)); + PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D = + __glGetProcAddress("glFramebufferTexture2D"); + FramebufferTexture2D((GLenum) bswap_ENUM(pc + 0), + (GLenum) bswap_ENUM(pc + 4), + (GLenum) bswap_ENUM(pc + 8), + (GLuint) bswap_CARD32(pc + 12), + (GLint) bswap_CARD32(pc + 16)); } void __glXDispSwap_FramebufferTexture3D(GLbyte * pc) { - glFramebufferTexture3D((GLenum) bswap_ENUM(pc + 0), - (GLenum) bswap_ENUM(pc + 4), - (GLenum) bswap_ENUM(pc + 8), - (GLuint) bswap_CARD32(pc + 12), - (GLint) bswap_CARD32(pc + 16), - (GLint) bswap_CARD32(pc + 20)); + PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D = + __glGetProcAddress("glFramebufferTexture3D"); + FramebufferTexture3D((GLenum) bswap_ENUM(pc + 0), + (GLenum) bswap_ENUM(pc + 4), + (GLenum) bswap_ENUM(pc + 8), + (GLuint) bswap_CARD32(pc + 12), + (GLint) bswap_CARD32(pc + 16), + (GLint) bswap_CARD32(pc + 20)); } void __glXDispSwap_FramebufferTextureLayer(GLbyte * pc) { - glFramebufferTextureLayer((GLenum) bswap_ENUM(pc + 0), - (GLenum) bswap_ENUM(pc + 4), - (GLuint) bswap_CARD32(pc + 8), - (GLint) bswap_CARD32(pc + 12), - (GLint) bswap_CARD32(pc + 16)); + PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer = + __glGetProcAddress("glFramebufferTextureLayer"); + FramebufferTextureLayer((GLenum) bswap_ENUM(pc + 0), + (GLenum) bswap_ENUM(pc + 4), + (GLuint) bswap_CARD32(pc + 8), + (GLint) bswap_CARD32(pc + 12), + (GLint) bswap_CARD32(pc + 16)); } int __glXDispSwap_GenFramebuffers(__GLXclientState * cl, GLbyte * pc) { + PFNGLGENFRAMEBUFFERSPROC GenFramebuffers = + __glGetProcAddress("glGenFramebuffers"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -4980,7 +5122,7 @@ __glXDispSwap_GenFramebuffers(__GLXclientState * cl, GLbyte * pc) GLuint *framebuffers = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4); - glGenFramebuffers(n, framebuffers); + GenFramebuffers(n, framebuffers); (void) bswap_32_array((uint32_t *) framebuffers, n); __glXSendReplySwap(cl->client, framebuffers, n, 4, GL_TRUE, 0); error = Success; @@ -4992,6 +5134,8 @@ __glXDispSwap_GenFramebuffers(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_GenRenderbuffers(__GLXclientState * cl, GLbyte * pc) { + PFNGLGENRENDERBUFFERSPROC GenRenderbuffers = + __glGetProcAddress("glGenRenderbuffers"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -5005,7 +5149,7 @@ __glXDispSwap_GenRenderbuffers(__GLXclientState * cl, GLbyte * pc) GLuint *renderbuffers = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4); - glGenRenderbuffers(n, renderbuffers); + GenRenderbuffers(n, renderbuffers); (void) bswap_32_array((uint32_t *) renderbuffers, n); __glXSendReplySwap(cl->client, renderbuffers, n, 4, GL_TRUE, 0); error = Success; @@ -5017,13 +5161,18 @@ __glXDispSwap_GenRenderbuffers(__GLXclientState * cl, GLbyte * pc) void __glXDispSwap_GenerateMipmap(GLbyte * pc) { - glGenerateMipmap((GLenum) bswap_ENUM(pc + 0)); + PFNGLGENERATEMIPMAPPROC GenerateMipmap = + __glGetProcAddress("glGenerateMipmap"); + GenerateMipmap((GLenum) bswap_ENUM(pc + 0)); } int __glXDispSwap_GetFramebufferAttachmentParameteriv(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC + GetFramebufferAttachmentParameteriv = + __glGetProcAddress("glGetFramebufferAttachmentParameteriv"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -5033,10 +5182,10 @@ __glXDispSwap_GetFramebufferAttachmentParameteriv(__GLXclientState * cl, if (cx != NULL) { GLint params[1]; - glGetFramebufferAttachmentParameteriv((GLenum) bswap_ENUM(pc + 0), - (GLenum) bswap_ENUM(pc + 4), - (GLenum) bswap_ENUM(pc + 8), - params); + GetFramebufferAttachmentParameteriv((GLenum) bswap_ENUM(pc + 0), + (GLenum) bswap_ENUM(pc + 4), + (GLenum) bswap_ENUM(pc + 8), + params); (void) bswap_32_array((uint32_t *) params, 1); __glXSendReplySwap(cl->client, params, 1, 4, GL_FALSE, 0); error = Success; @@ -5048,6 +5197,8 @@ __glXDispSwap_GetFramebufferAttachmentParameteriv(__GLXclientState * cl, int __glXDispSwap_GetRenderbufferParameteriv(__GLXclientState * cl, GLbyte * pc) { + PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv = + __glGetProcAddress("glGetRenderbufferParameteriv"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -5057,8 +5208,8 @@ __glXDispSwap_GetRenderbufferParameteriv(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLint params[1]; - glGetRenderbufferParameteriv((GLenum) bswap_ENUM(pc + 0), - (GLenum) bswap_ENUM(pc + 4), params); + GetRenderbufferParameteriv((GLenum) bswap_ENUM(pc + 0), + (GLenum) bswap_ENUM(pc + 4), params); (void) bswap_32_array((uint32_t *) params, 1); __glXSendReplySwap(cl->client, params, 1, 4, GL_FALSE, 0); error = Success; @@ -5070,6 +5221,8 @@ __glXDispSwap_GetRenderbufferParameteriv(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_IsFramebuffer(__GLXclientState * cl, GLbyte * pc) { + PFNGLISFRAMEBUFFERPROC IsFramebuffer = + __glGetProcAddress("glIsFramebuffer"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -5079,7 +5232,7 @@ __glXDispSwap_IsFramebuffer(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLboolean retval; - retval = glIsFramebuffer((GLuint) bswap_CARD32(pc + 0)); + retval = IsFramebuffer((GLuint) bswap_CARD32(pc + 0)); __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval); error = Success; } @@ -5090,6 +5243,8 @@ __glXDispSwap_IsFramebuffer(__GLXclientState * cl, GLbyte * pc) int __glXDispSwap_IsRenderbuffer(__GLXclientState * cl, GLbyte * pc) { + PFNGLISRENDERBUFFERPROC IsRenderbuffer = + __glGetProcAddress("glIsRenderbuffer"); xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; int error; __GLXcontext *const cx = @@ -5099,7 +5254,7 @@ __glXDispSwap_IsRenderbuffer(__GLXclientState * cl, GLbyte * pc) if (cx != NULL) { GLboolean retval; - retval = glIsRenderbuffer((GLuint) bswap_CARD32(pc + 0)); + retval = IsRenderbuffer((GLuint) bswap_CARD32(pc + 0)); __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval); error = Success; } @@ -5110,38 +5265,48 @@ __glXDispSwap_IsRenderbuffer(__GLXclientState * cl, GLbyte * pc) void __glXDispSwap_RenderbufferStorage(GLbyte * pc) { - glRenderbufferStorage((GLenum) bswap_ENUM(pc + 0), - (GLenum) bswap_ENUM(pc + 4), - (GLsizei) bswap_CARD32(pc + 8), - (GLsizei) bswap_CARD32(pc + 12)); + PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage = + __glGetProcAddress("glRenderbufferStorage"); + RenderbufferStorage((GLenum) bswap_ENUM(pc + 0), + (GLenum) bswap_ENUM(pc + 4), + (GLsizei) bswap_CARD32(pc + 8), + (GLsizei) bswap_CARD32(pc + 12)); } void __glXDispSwap_RenderbufferStorageMultisample(GLbyte * pc) { - glRenderbufferStorageMultisample((GLenum) bswap_ENUM(pc + 0), - (GLsizei) bswap_CARD32(pc + 4), - (GLenum) bswap_ENUM(pc + 8), - (GLsizei) bswap_CARD32(pc + 12), - (GLsizei) bswap_CARD32(pc + 16)); + PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample = + __glGetProcAddress("glRenderbufferStorageMultisample"); + RenderbufferStorageMultisample((GLenum) bswap_ENUM(pc + 0), + (GLsizei) bswap_CARD32(pc + 4), + (GLenum) bswap_ENUM(pc + 8), + (GLsizei) bswap_CARD32(pc + 12), + (GLsizei) bswap_CARD32(pc + 16)); } void __glXDispSwap_SecondaryColor3fvEXT(GLbyte * pc) { - glSecondaryColor3fvEXT((const GLfloat *) - bswap_32_array((uint32_t *) (pc + 0), 3)); + PFNGLSECONDARYCOLOR3FVEXTPROC SecondaryColor3fvEXT = + __glGetProcAddress("glSecondaryColor3fvEXT"); + SecondaryColor3fvEXT((const GLfloat *) + bswap_32_array((uint32_t *) (pc + 0), 3)); } void __glXDispSwap_FogCoordfvEXT(GLbyte * pc) { - glFogCoordfvEXT((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 1)); + PFNGLFOGCOORDFVEXTPROC FogCoordfvEXT = + __glGetProcAddress("glFogCoordfvEXT"); + FogCoordfvEXT((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 1)); } void __glXDispSwap_VertexAttrib1dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIB1DVNVPROC VertexAttrib1dvNV = + __glGetProcAddress("glVertexAttrib1dvNV"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 12); @@ -5149,30 +5314,36 @@ __glXDispSwap_VertexAttrib1dvNV(GLbyte * pc) } #endif - glVertexAttrib1dvNV((GLuint) bswap_CARD32(pc + 0), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), - 1)); + VertexAttrib1dvNV((GLuint) bswap_CARD32(pc + 0), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), + 1)); } void __glXDispSwap_VertexAttrib1fvNV(GLbyte * pc) { - glVertexAttrib1fvNV((GLuint) bswap_CARD32(pc + 0), - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), - 1)); + PFNGLVERTEXATTRIB1FVNVPROC VertexAttrib1fvNV = + __glGetProcAddress("glVertexAttrib1fvNV"); + VertexAttrib1fvNV((GLuint) bswap_CARD32(pc + 0), + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), + 1)); } void __glXDispSwap_VertexAttrib1svNV(GLbyte * pc) { - glVertexAttrib1svNV((GLuint) bswap_CARD32(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 1)); + PFNGLVERTEXATTRIB1SVNVPROC VertexAttrib1svNV = + __glGetProcAddress("glVertexAttrib1svNV"); + VertexAttrib1svNV((GLuint) bswap_CARD32(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), + 1)); } void __glXDispSwap_VertexAttrib2dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIB2DVNVPROC VertexAttrib2dvNV = + __glGetProcAddress("glVertexAttrib2dvNV"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 20); @@ -5180,30 +5351,36 @@ __glXDispSwap_VertexAttrib2dvNV(GLbyte * pc) } #endif - glVertexAttrib2dvNV((GLuint) bswap_CARD32(pc + 0), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), - 2)); + VertexAttrib2dvNV((GLuint) bswap_CARD32(pc + 0), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), + 2)); } void __glXDispSwap_VertexAttrib2fvNV(GLbyte * pc) { - glVertexAttrib2fvNV((GLuint) bswap_CARD32(pc + 0), - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), - 2)); + PFNGLVERTEXATTRIB2FVNVPROC VertexAttrib2fvNV = + __glGetProcAddress("glVertexAttrib2fvNV"); + VertexAttrib2fvNV((GLuint) bswap_CARD32(pc + 0), + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), + 2)); } void __glXDispSwap_VertexAttrib2svNV(GLbyte * pc) { - glVertexAttrib2svNV((GLuint) bswap_CARD32(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 2)); + PFNGLVERTEXATTRIB2SVNVPROC VertexAttrib2svNV = + __glGetProcAddress("glVertexAttrib2svNV"); + VertexAttrib2svNV((GLuint) bswap_CARD32(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), + 2)); } void __glXDispSwap_VertexAttrib3dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIB3DVNVPROC VertexAttrib3dvNV = + __glGetProcAddress("glVertexAttrib3dvNV"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 28); @@ -5211,30 +5388,36 @@ __glXDispSwap_VertexAttrib3dvNV(GLbyte * pc) } #endif - glVertexAttrib3dvNV((GLuint) bswap_CARD32(pc + 0), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), - 3)); + VertexAttrib3dvNV((GLuint) bswap_CARD32(pc + 0), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), + 3)); } void __glXDispSwap_VertexAttrib3fvNV(GLbyte * pc) { - glVertexAttrib3fvNV((GLuint) bswap_CARD32(pc + 0), - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), - 3)); + PFNGLVERTEXATTRIB3FVNVPROC VertexAttrib3fvNV = + __glGetProcAddress("glVertexAttrib3fvNV"); + VertexAttrib3fvNV((GLuint) bswap_CARD32(pc + 0), + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), + 3)); } void __glXDispSwap_VertexAttrib3svNV(GLbyte * pc) { - glVertexAttrib3svNV((GLuint) bswap_CARD32(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 3)); + PFNGLVERTEXATTRIB3SVNVPROC VertexAttrib3svNV = + __glGetProcAddress("glVertexAttrib3svNV"); + VertexAttrib3svNV((GLuint) bswap_CARD32(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), + 3)); } void __glXDispSwap_VertexAttrib4dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIB4DVNVPROC VertexAttrib4dvNV = + __glGetProcAddress("glVertexAttrib4dvNV"); #ifdef __GLX_ALIGN64 if ((unsigned long) (pc) & 7) { (void) memmove(pc - 4, pc, 36); @@ -5242,37 +5425,45 @@ __glXDispSwap_VertexAttrib4dvNV(GLbyte * pc) } #endif - glVertexAttrib4dvNV((GLuint) bswap_CARD32(pc + 0), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), - 4)); + VertexAttrib4dvNV((GLuint) bswap_CARD32(pc + 0), + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4), + 4)); } void __glXDispSwap_VertexAttrib4fvNV(GLbyte * pc) { - glVertexAttrib4fvNV((GLuint) bswap_CARD32(pc + 0), - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), - 4)); + PFNGLVERTEXATTRIB4FVNVPROC VertexAttrib4fvNV = + __glGetProcAddress("glVertexAttrib4fvNV"); + VertexAttrib4fvNV((GLuint) bswap_CARD32(pc + 0), + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4), + 4)); } void __glXDispSwap_VertexAttrib4svNV(GLbyte * pc) { - glVertexAttrib4svNV((GLuint) bswap_CARD32(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 4)); + PFNGLVERTEXATTRIB4SVNVPROC VertexAttrib4svNV = + __glGetProcAddress("glVertexAttrib4svNV"); + VertexAttrib4svNV((GLuint) bswap_CARD32(pc + 0), + (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), + 4)); } void __glXDispSwap_VertexAttrib4ubvNV(GLbyte * pc) { - glVertexAttrib4ubvNV((GLuint) bswap_CARD32(pc + 0), - (const GLubyte *) (pc + 4)); + PFNGLVERTEXATTRIB4UBVNVPROC VertexAttrib4ubvNV = + __glGetProcAddress("glVertexAttrib4ubvNV"); + VertexAttrib4ubvNV((GLuint) bswap_CARD32(pc + 0), + (const GLubyte *) (pc + 4)); } void __glXDispSwap_VertexAttribs1dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS1DVNVPROC VertexAttribs1dvNV = + __glGetProcAddress("glVertexAttribs1dvNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); #ifdef __GLX_ALIGN64 @@ -5284,37 +5475,43 @@ __glXDispSwap_VertexAttribs1dvNV(GLbyte * pc) } #endif - glVertexAttribs1dvNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLdouble *) - bswap_64_array((uint64_t *) (pc + 8), 0)); + VertexAttribs1dvNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs1fvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS1FVNVPROC VertexAttribs1fvNV = + __glGetProcAddress("glVertexAttribs1fvNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); - glVertexAttribs1fvNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8), - 0)); + VertexAttribs1fvNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs1svNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS1SVNVPROC VertexAttribs1svNV = + __glGetProcAddress("glVertexAttribs1svNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); - glVertexAttribs1svNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLshort *) bswap_16_array((uint16_t *) (pc + 8), - 0)); + VertexAttribs1svNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLshort *) bswap_16_array((uint16_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs2dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS2DVNVPROC VertexAttribs2dvNV = + __glGetProcAddress("glVertexAttribs2dvNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); #ifdef __GLX_ALIGN64 @@ -5326,37 +5523,43 @@ __glXDispSwap_VertexAttribs2dvNV(GLbyte * pc) } #endif - glVertexAttribs2dvNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLdouble *) - bswap_64_array((uint64_t *) (pc + 8), 0)); + VertexAttribs2dvNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs2fvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS2FVNVPROC VertexAttribs2fvNV = + __glGetProcAddress("glVertexAttribs2fvNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); - glVertexAttribs2fvNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8), - 0)); + VertexAttribs2fvNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs2svNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS2SVNVPROC VertexAttribs2svNV = + __glGetProcAddress("glVertexAttribs2svNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); - glVertexAttribs2svNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLshort *) bswap_16_array((uint16_t *) (pc + 8), - 0)); + VertexAttribs2svNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLshort *) bswap_16_array((uint16_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs3dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS3DVNVPROC VertexAttribs3dvNV = + __glGetProcAddress("glVertexAttribs3dvNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); #ifdef __GLX_ALIGN64 @@ -5368,37 +5571,43 @@ __glXDispSwap_VertexAttribs3dvNV(GLbyte * pc) } #endif - glVertexAttribs3dvNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLdouble *) - bswap_64_array((uint64_t *) (pc + 8), 0)); + VertexAttribs3dvNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs3fvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS3FVNVPROC VertexAttribs3fvNV = + __glGetProcAddress("glVertexAttribs3fvNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); - glVertexAttribs3fvNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8), - 0)); + VertexAttribs3fvNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs3svNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS3SVNVPROC VertexAttribs3svNV = + __glGetProcAddress("glVertexAttribs3svNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); - glVertexAttribs3svNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLshort *) bswap_16_array((uint16_t *) (pc + 8), - 0)); + VertexAttribs3svNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLshort *) bswap_16_array((uint16_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs4dvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS4DVNVPROC VertexAttribs4dvNV = + __glGetProcAddress("glVertexAttribs4dvNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); #ifdef __GLX_ALIGN64 @@ -5410,45 +5619,53 @@ __glXDispSwap_VertexAttribs4dvNV(GLbyte * pc) } #endif - glVertexAttribs4dvNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLdouble *) - bswap_64_array((uint64_t *) (pc + 8), 0)); + VertexAttribs4dvNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLdouble *) bswap_64_array((uint64_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs4fvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS4FVNVPROC VertexAttribs4fvNV = + __glGetProcAddress("glVertexAttribs4fvNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); - glVertexAttribs4fvNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8), - 0)); + VertexAttribs4fvNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs4svNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS4SVNVPROC VertexAttribs4svNV = + __glGetProcAddress("glVertexAttribs4svNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); - glVertexAttribs4svNV((GLuint) bswap_CARD32(pc + 0), - n, - (const GLshort *) bswap_16_array((uint16_t *) (pc + 8), - 0)); + VertexAttribs4svNV((GLuint) bswap_CARD32(pc + 0), + n, + (const GLshort *) bswap_16_array((uint16_t *) (pc + 8), + 0)); } void __glXDispSwap_VertexAttribs4ubvNV(GLbyte * pc) { + PFNGLVERTEXATTRIBS4UBVNVPROC VertexAttribs4ubvNV = + __glGetProcAddress("glVertexAttribs4ubvNV"); const GLsizei n = (GLsizei) bswap_CARD32(pc + 4); - glVertexAttribs4ubvNV((GLuint) bswap_CARD32(pc + 0), - n, (const GLubyte *) (pc + 8)); + VertexAttribs4ubvNV((GLuint) bswap_CARD32(pc + 0), + n, (const GLubyte *) (pc + 8)); } void __glXDispSwap_ActiveStencilFaceEXT(GLbyte * pc) { - glActiveStencilFaceEXT((GLenum) bswap_ENUM(pc + 0)); + PFNGLACTIVESTENCILFACEEXTPROC ActiveStencilFaceEXT = + __glGetProcAddress("glActiveStencilFaceEXT"); + ActiveStencilFaceEXT((GLenum) bswap_ENUM(pc + 0)); } diff --git a/xorg-server/glx/indirect_program.c b/xorg-server/glx/indirect_program.c index db22d845d..fa4a2408b 100644 --- a/xorg-server/glx/indirect_program.c +++ b/xorg-server/glx/indirect_program.c @@ -104,29 +104,43 @@ DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte * pc, int __glXDisp_GetProgramStringARB(struct __GLXclientStateRec *cl, GLbyte * pc) { - return DoGetProgramString(cl, pc, glGetProgramivARB, - glGetProgramStringARB, False); + PFNGLGETPROGRAMIVARBPROC get_program = + __glGetProcAddress("glGetProgramivARB"); + PFNGLGETPROGRAMSTRINGARBPROC get_program_string = + __glGetProcAddress("glGetProgramStringARB"); + + return DoGetProgramString(cl, pc, get_program, get_program_string, False); } int __glXDispSwap_GetProgramStringARB(struct __GLXclientStateRec *cl, GLbyte * pc) { - return DoGetProgramString(cl, pc, glGetProgramivARB, - glGetProgramStringARB, True); + PFNGLGETPROGRAMIVARBPROC get_program = + __glGetProcAddress("glGetProgramivARB"); + PFNGLGETPROGRAMSTRINGARBPROC get_program_string = + __glGetProcAddress("glGetProgramStringARB"); + + return DoGetProgramString(cl, pc, get_program, get_program_string, True); } int __glXDisp_GetProgramStringNV(struct __GLXclientStateRec *cl, GLbyte * pc) { - return DoGetProgramString(cl, pc, (PFNGLGETPROGRAMIVARBPROC)glGetProgramivNV, - (PFNGLGETPROGRAMSTRINGARBPROC)glGetProgramStringNV, - False); + PFNGLGETPROGRAMIVARBPROC get_program = + __glGetProcAddress("glGetProgramivARB"); + PFNGLGETPROGRAMSTRINGARBPROC get_program_string = + __glGetProcAddress("glGetProgramStringARB"); + + return DoGetProgramString(cl, pc, get_program, get_program_string, False); } int __glXDispSwap_GetProgramStringNV(struct __GLXclientStateRec *cl, GLbyte * pc) { - return DoGetProgramString(cl, pc, (PFNGLGETPROGRAMIVARBPROC)glGetProgramivNV, - (PFNGLGETPROGRAMSTRINGARBPROC)glGetProgramStringNV, - True); + PFNGLGETPROGRAMIVARBPROC get_program = + __glGetProcAddress("glGetProgramivARB"); + PFNGLGETPROGRAMSTRINGARBPROC get_program_string = + __glGetProcAddress("glGetProgramStringARB"); + + return DoGetProgramString(cl, pc, get_program, get_program_string, True); } diff --git a/xorg-server/glx/render2.c b/xorg-server/glx/render2.c index 5a2f4827e..8d9b5f4d2 100644 --- a/xorg-server/glx/render2.c +++ b/xorg-server/glx/render2.c @@ -231,13 +231,21 @@ __glXDisp_DrawArrays(GLbyte * pc) glEdgeFlagPointer(stride, (const GLboolean *) pc); break; case GL_SECONDARY_COLOR_ARRAY: + { + PFNGLSECONDARYCOLORPOINTERPROC SecondaryColorPointerEXT = + __glGetProcAddress("glSecondaryColorPointerEXT"); glEnableClientState(GL_SECONDARY_COLOR_ARRAY); - glSecondaryColorPointerEXT(numVals, datatype, stride, pc); + SecondaryColorPointerEXT(numVals, datatype, stride, pc); break; + } case GL_FOG_COORD_ARRAY: + { + PFNGLFOGCOORDPOINTERPROC FogCoordPointerEXT = + __glGetProcAddress("glFogCoordPointerEXT"); glEnableClientState(GL_FOG_COORD_ARRAY); - glFogCoordPointerEXT(datatype, stride, pc); + FogCoordPointerEXT(datatype, stride, pc); break; + } default: break; } diff --git a/xorg-server/glx/render2swap.c b/xorg-server/glx/render2swap.c index e6f73b896..6ed364f75 100644 --- a/xorg-server/glx/render2swap.c +++ b/xorg-server/glx/render2swap.c @@ -353,13 +353,21 @@ __glXDispSwap_DrawArrays(GLbyte * pc) glEdgeFlagPointer(stride, (const GLboolean *) pc); break; case GL_SECONDARY_COLOR_ARRAY: + { + PFNGLSECONDARYCOLORPOINTERPROC SecondaryColorPointerEXT = + __glGetProcAddress("glSecondaryColorPointerEXT"); glEnableClientState(GL_SECONDARY_COLOR_ARRAY); - glSecondaryColorPointerEXT(numVals, datatype, stride, pc); + SecondaryColorPointerEXT(numVals, datatype, stride, pc); break; + } case GL_FOG_COORD_ARRAY: + { + PFNGLFOGCOORDPOINTERPROC FogCoordPointerEXT = + __glGetProcAddress("glFogCoordPointerEXT"); glEnableClientState(GL_FOG_COORD_ARRAY); - glFogCoordPointerEXT(datatype, stride, pc); + FogCoordPointerEXT(datatype, stride, pc); break; + } default: break; } diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.c b/xorg-server/hw/kdrive/ephyr/ephyr.c index ef4b3210c..b2a79855c 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyr.c +++ b/xorg-server/hw/kdrive/ephyr/ephyr.c @@ -943,7 +943,7 @@ ephyrProcessMouseMotion(xcb_generic_event_t *xev) #ifdef XF86DRI EphyrWindowPair *pair = NULL; #endif - EPHYR_LOG("enqueuing mouse motion:%d\n", ephyrCurScreen); + EPHYR_LOG("enqueuing mouse motion:%d\n", screen->pScreen->myNum); x = motion->event_x; y = motion->event_y; EPHYR_LOG("initial (x,y):(%d,%d)\n", x, y); @@ -977,7 +977,7 @@ ephyrProcessButtonPress(xcb_generic_event_t *xev) if (!ephyrMouse || !((EphyrPointerPrivate *) ephyrMouse->driverPrivate)->enabled) { - EPHYR_LOG("skipping mouse press:%d\n", ephyrCurScreen); + EPHYR_LOG("skipping mouse press:%d\n", screen_from_window(button->event)->pScreen->myNum); return; } @@ -987,7 +987,7 @@ ephyrProcessButtonPress(xcb_generic_event_t *xev) */ mouseState |= 1 << (button->detail - 1); - EPHYR_LOG("enqueuing mouse press:%d\n", ephyrCurScreen); + EPHYR_LOG("enqueuing mouse press:%d\n", screen_from_window(button->event)->pScreen->myNum); KdEnqueuePointerEvent(ephyrMouse, mouseState | KD_MOUSE_DELTA, 0, 0, 0); } @@ -1004,7 +1004,7 @@ ephyrProcessButtonRelease(xcb_generic_event_t *xev) ephyrUpdateModifierState(button->state); mouseState &= ~(1 << (button->detail - 1)); - EPHYR_LOG("enqueuing mouse release:%d\n", ephyrCurScreen); + EPHYR_LOG("enqueuing mouse release:%d\n", screen_from_window(button->event)->pScreen->myNum); KdEnqueuePointerEvent(ephyrMouse, mouseState | KD_MOUSE_DELTA, 0, 0, 0); } diff --git a/xorg-server/hw/xfree86/common/xf86AutoConfig.c b/xorg-server/hw/xfree86/common/xf86AutoConfig.c index 95d58fe43..af2b7f8f2 100644 --- a/xorg-server/hw/xfree86/common/xf86AutoConfig.c +++ b/xorg-server/hw/xfree86/common/xf86AutoConfig.c @@ -267,14 +267,6 @@ listPossibleVideoDrivers(char *matches[], int nmatches) if (i < (nmatches - 1)) i = xf86PciMatchDriver(matches, nmatches); #endif - /* Fallback to platform default hardware */ - if (i < (nmatches - 1)) { -#if defined(__i386__) || defined(__amd64__) || defined(__hurd__) - matches[i++] = xnfstrdup("vesa"); -#elif defined(__sparc__) && !defined(sun) - matches[i++] = xnfstrdup("sunffb"); -#endif - } #if defined(__linux__) matches[i++] = xnfstrdup("modesetting"); @@ -290,6 +282,15 @@ listPossibleVideoDrivers(char *matches[], int nmatches) #endif } #endif /* !sun */ + + /* Fallback to platform default hardware */ + if (i < (nmatches - 1)) { +#if defined(__i386__) || defined(__amd64__) || defined(__hurd__) + matches[i++] = xnfstrdup("vesa"); +#elif defined(__sparc__) && !defined(sun) + matches[i++] = xnfstrdup("sunffb"); +#endif + } } /* copy a screen section and enter the desired driver diff --git a/xorg-server/hw/xfree86/common/xf86Config.c b/xorg-server/hw/xfree86/common/xf86Config.c index 74d5ed3b7..b5efc02af 100644 --- a/xorg-server/hw/xfree86/common/xf86Config.c +++ b/xorg-server/hw/xfree86/common/xf86Config.c @@ -507,7 +507,7 @@ xf86InputDriverlistFromConfig(void) static void fixup_video_driver_list(char **drivers) { - static const char *fallback[4] = { "vesa", "fbdev", "wsfb", NULL }; + static const char *fallback[4] = { "fbdev", "vesa", "wsfb", NULL }; char **end, **drv; char *x; int i; diff --git a/xorg-server/hw/xfree86/common/xf86Helper.c b/xorg-server/hw/xfree86/common/xf86Helper.c index 721159d0b..f1e6783a7 100644 --- a/xorg-server/hw/xfree86/common/xf86Helper.c +++ b/xorg-server/hw/xfree86/common/xf86Helper.c @@ -1638,9 +1638,14 @@ xf86SetBackingStore(ScreenPtr pScreen) else { if (xf86GetOptValBool(options, OPTION_BACKING_STORE, &useBS)) from = X_CONFIG; +#ifdef COMPOSITE + if (from != X_CONFIG) + useBS = xf86ReturnOptValBool(options, OPTION_BACKING_STORE, + !noCompositeExtension); +#endif } free(options); - pScreen->backingStoreSupport = useBS ? Always : NotUseful; + pScreen->backingStoreSupport = useBS ? WhenMapped : NotUseful; if (serverGeneration == 1) xf86DrvMsg(pScreen->myNum, from, "Backing store %s\n", useBS ? "enabled" : "disabled"); diff --git a/xorg-server/hw/xfree86/dri2/dri2ext.c b/xorg-server/hw/xfree86/dri2/dri2ext.c index e1decec9e..ffd66fad6 100644 --- a/xorg-server/hw/xfree86/dri2/dri2ext.c +++ b/xorg-server/hw/xfree86/dri2/dri2ext.c @@ -672,6 +672,11 @@ DRI2ExtensionInit(void) { ExtensionEntry *dri2Extension; +#ifdef PANORAMIX + if (!noPanoramiXExtension) + return; +#endif + dri2Extension = AddExtension(DRI2_NAME, DRI2NumberEvents, DRI2NumberErrors, diff --git a/xorg-server/hw/xquartz/GL/indirect.c b/xorg-server/hw/xquartz/GL/indirect.c index c4999b5ff..8dabda14d 100644 --- a/xorg-server/hw/xquartz/GL/indirect.c +++ b/xorg-server/hw/xquartz/GL/indirect.c @@ -48,8 +48,6 @@ #include <glxserver.h> #include <glxutil.h> -#include <glapi.h> - #include "x-hash.h" #include "visualConfigs.h" @@ -643,15 +641,20 @@ __glFloorLog2(GLuint val) "/System/Library/Frameworks/OpenGL.framework/OpenGL" #endif +static void *opengl_framework_handle; + +static glx_gpa_proc +get_proc_address(const char *sym) +{ + return (glx_gpa_proc) dlsym(opengl_framework_handle, sym); +} + static void setup_dispatch_table(void) { - static struct _glapi_table *disp = NULL; - static void *handle; const char *opengl_framework_path; - if (disp) { - _glapi_set_dispatch(disp); + if (opengl_framework_handle) { return; } @@ -661,16 +664,13 @@ setup_dispatch_table(void) } (void)dlerror(); /*drain dlerror */ - handle = dlopen(opengl_framework_path, RTLD_LOCAL); + opengl_framework_handle = dlopen(opengl_framework_path, RTLD_LOCAL); - if (!handle) { + if (!opengl_framework_handle) { ErrorF("unable to dlopen %s : %s, using RTLD_DEFAULT\n", opengl_framework_path, dlerror()); - handle = RTLD_DEFAULT; + opengl_framework_handle = RTLD_DEFAULT; } - disp = _glapi_create_table_from_handle(handle, "gl"); - assert(disp); - - _glapi_set_dispatch(disp); + __glXsetGetProcAddress(get_proc_address); } diff --git a/xorg-server/hw/xquartz/X11Controller.m b/xorg-server/hw/xquartz/X11Controller.m index 3d094bfc7..752bda35c 100644 --- a/xorg-server/hw/xquartz/X11Controller.m +++ b/xorg-server/hw/xquartz/X11Controller.m @@ -347,7 +347,7 @@ extern char *bundle_id_prefix; const char *newargv[4]; char buf[128]; char *s; -#if 0 && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 int stdout_pipe[2]; int stderr_pipe[2]; #endif @@ -363,7 +363,7 @@ extern char *bundle_id_prefix; setenv("DISPLAY", buf, TRUE); } -#if 0 && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 if (asl_log_descriptor) { char *asl_sender; aslmsg amsg = asl_new(ASL_TYPE_MSG); @@ -413,7 +413,7 @@ extern char *bundle_id_prefix; _exit(1); case 0: /* child2 */ -#if 0 && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 if (asl_log_descriptor) { /* Replace our stdout/stderr */ dup2(stdout_pipe[1], STDOUT_FILENO); @@ -442,7 +442,7 @@ extern char *bundle_id_prefix; waitpid(child1, &status, 0); } -#if 0 && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 if (asl_log_descriptor) { /* Close the write ends of the pipe */ close(stdout_pipe[1]); diff --git a/xorg-server/hw/xwin/Makefile.am b/xorg-server/hw/xwin/Makefile.am index c7006959c..7f0eaf097 100644 --- a/xorg-server/hw/xwin/Makefile.am +++ b/xorg-server/hw/xwin/Makefile.am @@ -157,7 +157,7 @@ XWIN_LIBS += $(top_builddir)/pseudoramiX/libPseudoramiX.la XWin_DEPENDENCIES = $(MULTIWINDOWEXTWM_LIBS) $(XWIN_GLX_LIBS) $(XWIN_LIBS) $(XSERVER_LIBS) XWin_LDADD = $(MULTIWINDOW_LIBS) $(MULTIWINDOWEXTWM_LIBS) $(XWIN_GLX_LIBS) $(XWIN_GLX_LINK_FLAGS) $(XWIN_LIBS) $(MAIN_LIB) $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XWIN_SYS_LIBS) -XWin_LDFLAGS = -mwindows -static +XWin_LDFLAGS = -mwindows -static -Wl,--disable-stdcall-fixup .rc.o: $(AM_V_GEN)$(WINDRES) --use-temp-file -i $< --input-format=rc -o $@ -O coff -I $(top_builddir)/include diff --git a/xorg-server/hw/xwin/glx/Makefile.am b/xorg-server/hw/xwin/glx/Makefile.am index 067ee5b3c..f2dffbffb 100644 --- a/xorg-server/hw/xwin/glx/Makefile.am +++ b/xorg-server/hw/xwin/glx/Makefile.am @@ -1,14 +1,18 @@ noinst_LTLIBRARIES = libXwinGLX.la +lib_LTLIBRARIES = libnativeGLthunk.la libXwinGLX_la_SOURCES = \ winpriv.c \ winpriv.h \ glwindows.h \ - glwrap.c \ + glshim.c \ indirect.c \ wgl_ext_api.c \ wgl_ext_api.h +libnativeGLthunk_la_SOURCES = \ + glthunk.c + if XWIN_MULTIWINDOW DEFS_MULTIWINDOW = -DXWIN_MULTIWINDOW endif @@ -30,16 +34,32 @@ AM_CFLAGS = -DHAVE_XWIN_CONFIG_H $(DIX_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/hw/xwin/ +libnativeGLthunk_la_CFLAGS = $(AM_CFLAGS) -Wno-unused-function -Wno-missing-prototypes -Wno-missing-declarations +libnativeGLthunk_la_LDFLAGS = -shared -no-undefined -avoid-version -lopengl32 -export-symbols generated_gl_thunks.def +EXTRA_libnativeGLthunk_la_DEPENDENCIES = generated_gl_thunks.def + if XWIN_GLX_WINDOWS -generated_gl_wrappers.c: gen_gl_wrappers.py $(KHRONOS_SPEC_DIR)/gl.spec $(KHRONOS_SPEC_DIR)/gl.tm - $(AM_V_GEN)$(PYTHON) $(srcdir)/gen_gl_wrappers.py --spec=$(KHRONOS_SPEC_DIR)/gl.spec --typemap=$(KHRONOS_SPEC_DIR)/gl.tm --dispatch-header=$(top_srcdir)/glx/dispatch.h --staticwrappers >generated_gl_wrappers.c +if DEBUG +GENGLWRAPPERSOPTS="" +else +GENGLWRAPPERSOPTS="-nodebug" +endif + +generated_wgl_wrappers.c: $(srcdir)/gen_gl_wrappers.py $(KHRONOS_SPEC_DIR)/wgl.xml $(KHRONOS_SPEC_DIR)/reg.py + $(AM_V_GEN)PYTHONPATH=$(KHRONOS_SPEC_DIR) $(PYTHON3) $(srcdir)/gen_gl_wrappers.py -registry $(KHRONOS_SPEC_DIR)/wgl.xml -prefix wgl -wrapper -preresolve $(GENGLWRAPPERSOPTS) -outfile $@ + +generated_gl_shim.c: $(srcdir)/gen_gl_wrappers.py $(KHRONOS_SPEC_DIR)/gl.xml $(KHRONOS_SPEC_DIR)/reg.py + $(AM_V_GEN)PYTHONPATH=$(KHRONOS_SPEC_DIR) $(PYTHON3) $(srcdir)/gen_gl_wrappers.py -registry $(KHRONOS_SPEC_DIR)/gl.xml -shim $(GENGLWRAPPERSOPTS) -outfile $@ + +generated_gl_thunks.c: $(srcdir)/gen_gl_wrappers.py $(KHRONOS_SPEC_DIR)/gl.xml $(KHRONOS_SPEC_DIR)/reg.py + $(AM_V_GEN)PYTHONPATH=$(KHRONOS_SPEC_DIR) $(PYTHON3) $(srcdir)/gen_gl_wrappers.py -registry $(KHRONOS_SPEC_DIR)/gl.xml -thunk $(GENGLWRAPPERSOPTS) -outfile $@ -generated_wgl_wrappers.c: gen_gl_wrappers.py $(KHRONOS_SPEC_DIR)/wglext.spec $(KHRONOS_SPEC_DIR)/wgl.tm - $(AM_V_GEN)$(PYTHON) $(srcdir)/gen_gl_wrappers.py --spec=$(KHRONOS_SPEC_DIR)/wglext.spec --typemap=$(KHRONOS_SPEC_DIR)/wgl.tm --prefix=wgl --preresolve >generated_wgl_wrappers.c +generated_gl_thunks.def: $(srcdir)/gen_gl_wrappers.py $(KHRONOS_SPEC_DIR)/gl.xml $(KHRONOS_SPEC_DIR)/reg.py + $(AM_V_GEN)PYTHONPATH=$(KHRONOS_SPEC_DIR) $(PYTHON3) $(srcdir)/gen_gl_wrappers.py -registry $(KHRONOS_SPEC_DIR)/gl.xml -thunkdefs $(GENGLWRAPPERSOPTS) -outfile $@ endif -BUILT_SOURCES = generated_gl_wrappers.c generated_wgl_wrappers.c +BUILT_SOURCES = generated_gl_shim.c generated_gl_thunks.c generated_gl_thunks.def generated_wgl_wrappers.c CLEANFILES = $(BUILT_SOURCES) EXTRA_DIST = gen_gl_wrappers.py diff --git a/xorg-server/hw/xwin/glx/gen_gl_wrappers.py b/xorg-server/hw/xwin/glx/gen_gl_wrappers.py index 2273589c9..683b9d903 100644 --- a/xorg-server/hw/xwin/glx/gen_gl_wrappers.py +++ b/xorg-server/hw/xwin/glx/gen_gl_wrappers.py @@ -1,325 +1,485 @@ -#!/usr/bin/python +#!/usr/bin/python3 # -# Comedy python script to generate cdecl to stdcall wrappers for GL functions +# python script to generate cdecl to stdcall wrappers for GL functions +# adapted from genheaders.py # -# This is designed to operate on OpenGL spec files from -# http://www.opengl.org/registry/api/ -# -# -# Copyright (c) Jon TURNEY 2009 +# Copyright (c) 2013 The Khronos Group Inc. # # Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR -# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -# DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name(s) of the above copyright -# holders shall not be used in advertising or otherwise to promote the sale, -# use or other dealings in this Software without prior written authorization. -# - -import sys -import re -import getopt - -dispatchheader = '' -prefix = 'gl' -preresolve = False -staticwrappers = False - -opts, args = getopt.getopt(sys.argv[1:], "", ['spec=', 'typemap=', 'dispatch-header=', 'prefix=', 'preresolve', 'staticwrappers' ]) - -for o,a in opts: - if o == '--typemap' : - typemapfile = a - elif o == '--dispatch-header' : - dispatchheader = a - elif o == '--spec' : - specfile = a - elif o == '--prefix' : - prefix = a - elif o == '--preresolve' : - preresolve = True - elif o == '--staticwrappers' : - staticwrappers = True - +# copy of this software and/or associated documentation files (the +# "Materials"), to deal in the Materials without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Materials, and to +# permit persons to whom the Materials are furnished to do so, subject to +# the following conditions: # -# look for all the SET_ macros in dispatch.h, this is the set of functions -# we need to generate -# - -dispatch = {} - -if dispatchheader : - fh = open(dispatchheader) - dispatchh = fh.readlines() - - dispatch_regex = re.compile(r'^SET_(\S*)\(') - - for line in dispatchh : - line = line.strip() - m1 = dispatch_regex.search(line) - - if m1 : - dispatch[m1.group(1)] = 1 - - del dispatch['by_offset'] - +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Materials. # -# read the typemap .tm file -# - -typemap = {} - -fh = open(typemapfile) -tm = fh.readlines() - -typemap_regex = re.compile(r'#define\sSET_(\S*)\(') - -for line in tm : - # ignore everything after a '#' as a comment - hash = line.find('#') - if hash != -1 : - line = line[:hash-1] - - # ignore blank lines - if line.startswith('#') or len(line) == 0 : - continue - - l = line.split(',') - typemap[l[0]] = l[3].strip() - -# interestingly, * is not a C type -if typemap['void'] == '*' : - typemap['void'] = 'void' - -# -# crudely parse the .spec file -# - -r1 = re.compile(r'\t(\S*)\s+(\S*.*)') -r2 = re.compile(r'(.*)\((.*)\)') -r3 = re.compile(r'glWindowPos.*MESA') -r4 = re.compile(r'gl.*Program(s|)NV') -r5 = re.compile(r'glGetVertexAttribfvNV') - -wrappers = {} - -fh = open(specfile) -glspec = fh.readlines() -param_count = 0 - -for line in glspec : - line = line.rstrip() - - # ignore everything after a '#' as a comment - hash = line.find('#') - if hash != -1 : - line = line[:hash-1] - - # ignore blank lines - if line.startswith('#') or len(line) == 0 : - continue - - # lines containing ':' aren't intersting to us - if line.count(':') != 0 : - continue - - # attributes of each function follow the name, indented by a tab - if not line.startswith('\t') : - m1 = r2.search(line) - if m1 : - function = m1.group(1) - arglist_use = m1.group(2) - wrappers[function] = {} - - # ensure formal parameter names don't collide with reserved names or shadow global declarations - arglist_use = ',' .join([i.rstrip() + '_' for i in arglist_use.split(",")]) - - wrappers[function]['arglist_use'] = arglist_use - param_count = 0 - else : - m1 = r1.search(line) - if m1 : - attribute = m1.group(1) - value = m1.group(2) - - # make param attributes unique and ordered - if attribute == 'param' : - attribute = 'param' + '%02d' % param_count - param_count += 1 - - wrappers[function][attribute] = value - -# -# now emit code -# - -print '/* Automatically generated by ' + sys.argv[0] + ' DO NOT EDIT */' -print '/* from ' + specfile + ' and typemap ' + typemapfile + ' */' -print '' - -# -# if required, emit code for non-lazy function resolving -# - -if preresolve : - for w in sorted(wrappers.keys()) : - funcname = prefix + w - print 'RESOLVE_DECL(PFN' + funcname.upper() + 'PROC);' - - print '' - print 'void ' + prefix + 'ResolveExtensionProcs(void)' - print '{' - - for w in sorted(wrappers.keys()) : - funcname = prefix + w - print ' PRERESOLVE(PFN' + funcname.upper() + 'PROC, "' + funcname + '");' - - print '}\n' +# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + +import sys, time, pdb, string, cProfile +from reg import * + +# Default input / log files +errFilename = None +diagFilename = 'diag.txt' +regFilename = 'gl.xml' +outFilename = 'gen_gl_wrappers.c' + +protect=True +prefix="gl" +preresolve=False +wrapper=False +shim=False +thunk=False +thunkdefs=False +staticwrappers=False +nodebug=False + +#exclude base WGL API +WinGDI={key: 1 for key in [ + "wglCopyContext" + ,"wglCreateContext" + ,"wglCreateLayerContext" + ,"wglDeleteContext" + ,"wglGetCurrentContext" + ,"wglGetCurrentDC" + ,"wglGetProcAddress" + ,"wglMakeCurrent" + ,"wglShareLists" + ,"wglUseFontBitmapsA" + ,"wglUseFontBitmapsW" + ,"wglUseFontBitmaps" + ,"SwapBuffers" + ,"wglUseFontOutlinesA" + ,"wglUseFontOutlinesW" + ,"wglUseFontOutlines" + ,"wglDescribeLayerPlane" + ,"wglSetLayerPaletteEntries" + ,"wglGetLayerPaletteEntries" + ,"wglRealizeLayerPalette" + ,"wglSwapLayerBuffers" + ,"wglSwapMultipleBuffers" + ,"ChoosePixelFormat" + ,"DescribePixelFormat" + ,"GetEnhMetaFilePixelFormat" + ,"GetPixelFormat" + ,"SetPixelFormat" +]} + +if __name__ == '__main__': + i = 1 + while (i < len(sys.argv)): + arg = sys.argv[i] + i = i + 1 + if (arg == '-noprotect'): + print('Disabling inclusion protection in output headers', file=sys.stderr) + protect = False + elif (arg == '-registry'): + regFilename = sys.argv[i] + i = i+1 + print('Using registry', regFilename, file=sys.stderr) + elif (arg == '-outfile'): + outFilename = sys.argv[i] + i = i+1 + elif (arg == '-preresolve'): + preresolve=True + elif (arg == '-wrapper'): + wrapper=True + elif (arg == '-shim'): + shim=True + elif (arg == '-thunk'): + thunk=True + elif (arg == '-thunkdefs'): + thunkdefs=True + elif (arg == '-staticwrappers'): + staticwrappers=True + elif (arg == '-prefix'): + prefix = sys.argv[i] + i = i+1 + elif (arg == '-nodebug'): + nodebug = True + elif (arg[0:1] == '-'): + print('Unrecognized argument:', arg, file=sys.stderr) + exit(1) + +print('Generating', outFilename, file=sys.stderr) + +# Load & parse registry +reg = Registry() +tree = etree.parse(regFilename) +reg.loadElementTree(tree) + +allVersions = '.*' + +genOpts = CGeneratorOptions( + apiname = prefix, + profile = 'compatibility', + versions = allVersions, + emitversions = allVersions, + defaultExtensions = prefix, # Default extensions for GL + protectFile = protect, + protectFeature = protect, + protectProto = protect, + ) + +# create error/warning & diagnostic files +if (errFilename): + errWarn = open(errFilename,'w') +else: + errWarn = sys.stderr +diag = open(diagFilename, 'w') + +class PreResolveOutputGenerator(OutputGenerator): + def __init__(self, + errFile = sys.stderr, + warnFile = sys.stderr, + diagFile = sys.stdout): + OutputGenerator.__init__(self, errFile, warnFile, diagFile) + self.wrappers={} + def beginFile(self, genOpts): + self.outFile.write('/* Automatically generated from %s - DO NOT EDIT */\n\n'%regFilename) + def endFile(self): + self.outFile.write('\nvoid ' + prefix + 'ResolveExtensionProcs(void)\n{\n') + for funcname in self.wrappers.keys(): + self.outFile.write( ' PRERESOLVE(PFN' + funcname.upper() + 'PROC, "' + funcname + '");\n') + self.outFile.write('}\n\n') + def beginFeature(self, interface, emit): + OutputGenerator.beginFeature(self, interface, emit) + def endFeature(self): + OutputGenerator.endFeature(self) + def genType(self, typeinfo, name): + OutputGenerator.genType(self, typeinfo, name) + def genEnum(self, enuminfo, name): + OutputGenerator.genEnum(self, enuminfo, name) + def genCmd(self, cmd, name): + OutputGenerator.genCmd(self, cmd, name) + + if name in WinGDI: + return + + self.outFile.write('RESOLVE_DECL(PFN' + name.upper() + 'PROC);\n') + self.wrappers[name]=1 + +class WrapperOutputGenerator(OutputGenerator): + def __init__(self, + errFile = sys.stderr, + warnFile = sys.stderr, + diagFile = sys.stdout): + OutputGenerator.__init__(self, errFile, warnFile, diagFile) + def beginFile(self, genOpts): + self.outFile.write('/* Automatically generated from %s - DO NOT EDIT */\n\n'%regFilename) + def endFile(self): + pass + def beginFeature(self, interface, emit): + OutputGenerator.beginFeature(self, interface, emit) + self.OldVersion = self.featureName.startswith('GL_VERSION_1_0') or self.featureName.startswith('GL_VERSION_1_1') + def endFeature(self): + OutputGenerator.endFeature(self) + def genType(self, typeinfo, name): + OutputGenerator.genType(self, typeinfo, name) + def genEnum(self, enuminfo, name): + OutputGenerator.genEnum(self, enuminfo, name) + def genCmd(self, cmd, name): + OutputGenerator.genCmd(self, cmd, name) + + if name in WinGDI: + return + + proto=noneStr(cmd.elem.find('proto')) + rettype=noneStr(proto.text) + if rettype.lower()!="void ": + plist = ([t for t in proto.itertext()]) + rettype = ''.join(plist[:-1]) + rettype=rettype.strip() + if staticwrappers: self.outFile.write("static ") + self.outFile.write("%s %sWrapper("%(rettype, name)) + params = cmd.elem.findall('param') + plist=[] + for param in params: + paramlist = ([t for t in param.itertext()]) + paramtype = ''.join(paramlist[:-1]) + paramname = paramlist[-1] + plist.append((paramtype, paramname)) + Comma="" + if len(plist): + for ptype, pname in plist: + self.outFile.write("%s%s%s_"%(Comma, ptype, pname)) + Comma=", " + else: + self.outFile.write("void") -# -# now emit the wrappers -# for GL 1.0 and 1.1 functions, generate stdcall wrappers which call the function directly -# for GL 1.2+ functions, generate wrappers which use wglGetProcAddress() -# + self.outFile.write(")\n{\n") -for w in sorted(wrappers.keys()) : + # for GL 1.0 and 1.1 functions, generate stdcall wrappers which call the function directly + if self.OldVersion: + if not nodebug: + self.outFile.write(' if (glxWinDebugSettings.enable%scallTrace) ErrorF("%s\\n");\n'%(prefix.upper(), name)) + self.outFile.write(" glWinDirectProcCalls++;\n") + self.outFile.write("\n") - funcname = prefix + w - returntype = wrappers[w]['return'] - if returntype != 'void' : - returntype = typemap[returntype] + if rettype.lower()=="void": + self.outFile.write(" %s( "%(name)) + else: + self.outFile.write(" return %s( "%(name)) - # Avoid generating wrappers which aren't referenced by the dispatch table - if dispatchheader and not dispatch.has_key(w) : - print '/* No wrapper for ' + funcname + ', not in dispatch table */' - continue + Comma="" + for ptype, pname in plist: + self.outFile.write("%s%s_"%(Comma, pname)) + Comma=", " - # manufacture arglist - # if no param attributes were found, it should be 'void' - al = [] - for k in sorted(wrappers[w].keys()) : - if k.startswith('param') : - l = wrappers[w][k].split() + # for GL 1.2+ functions, generate stdcall wrappers which use wglGetProcAddress() + else: + if rettype.lower()=="void": + self.outFile.write(' RESOLVE(PFN%sPROC, "%s");\n'%(name.upper(), name)) + + if not nodebug: + self.outFile.write("\n") + self.outFile.write(' if (glxWinDebugSettings.enable%scallTrace) ErrorF("%s\\n");\n'%(prefix.upper(), name)) + self.outFile.write("\n") + + self.outFile.write(" RESOLVED_PROC(PFN%sPROC)( """%(name.upper())) + else: + self.outFile.write(' RESOLVE_RET(PFN%sPROC, "%s", FALSE);\n'%(name.upper(), name)) + + if not nodebug: + self.outFile.write("\n") + self.outFile.write(' if (glxWinDebugSettings.enable%scallTrace) ErrorF("%s\\n");\n'%(prefix.upper(), name)) + self.outFile.write("\n") + + self.outFile.write(" return RESOLVED_PROC(PFN%sPROC)("%(name.upper())) + + Comma="" + for ptype, pname in plist: + self.outFile.write("%s%s_"%(Comma, pname)) + Comma=", " + self.outFile.write(" );\n}\n\n") + +class ThunkOutputGenerator(OutputGenerator): + def __init__(self, + errFile = sys.stderr, + warnFile = sys.stderr, + diagFile = sys.stdout): + OutputGenerator.__init__(self, errFile, warnFile, diagFile) + def beginFile(self, genOpts): + self.outFile.write('/* Automatically generated from %s - DO NOT EDIT */\n\n'%regFilename) + def endFile(self): + pass + def beginFeature(self, interface, emit): + OutputGenerator.beginFeature(self, interface, emit) + self.OldVersion = self.featureName.startswith('GL_VERSION_1_0') or self.featureName.startswith('GL_VERSION_1_1') + def endFeature(self): + OutputGenerator.endFeature(self) + def genType(self, typeinfo, name): + OutputGenerator.genType(self, typeinfo, name) + def genEnum(self, enuminfo, name): + OutputGenerator.genEnum(self, enuminfo, name) + def genCmd(self, cmd, name): + OutputGenerator.genCmd(self, cmd, name) + + proto=noneStr(cmd.elem.find('proto')) + rettype=noneStr(proto.text) + if rettype.lower()!="void ": + plist = ([t for t in proto.itertext()]) + rettype = ''.join(plist[:-1]) + rettype=rettype.strip() + self.outFile.write("%s %sWrapper("%(rettype, name)) + params = cmd.elem.findall('param') + plist=[] + for param in params: + paramlist = ([t for t in param.itertext()]) + paramtype = ''.join(paramlist[:-1]) + paramname = paramlist[-1] + plist.append((paramtype, paramname)) + Comma="" + if len(plist): + for ptype, pname in plist: + self.outFile.write("%s%s%s_"%(Comma, ptype, pname)) + Comma=", " + else: + self.outFile.write("void") - # ensure formal parameter names don't collide with reserved names or shadow global declarations - l[0] = l[0] + '_' + self.outFile.write(")\n{\n") - if l[2] == 'in' : - if l[3] == 'array' : - arg = 'const ' + typemap[l[1]] + ' *' + l[0] - else : - arg = typemap[l[1]] + ' ' + l[0] - elif l[2] == 'out' : - arg = typemap[l[1]] + ' *' + l[0] + # for GL 1.0 and 1.1 functions, generate stdcall thunk wrappers which call the function directly + if self.OldVersion: + if rettype.lower()=="void": + self.outFile.write(" %s( "%(name)) + else: + self.outFile.write(" return %s( "%(name)) - al.append(arg) + Comma="" + for ptype, pname in plist: + self.outFile.write("%s%s_"%(Comma, pname)) + Comma=", " - if len(al) == 0 : - arglist = 'void' + # for GL 1.2+ functions, generate wrappers which use wglGetProcAddress() else: - arglist = ', '.join(al) - - if wrappers[w]['category'].startswith('VERSION_1_0') or wrappers[w]['category'].startswith('VERSION_1_1') : - if staticwrappers : - print 'static', - print returntype + ' ' + funcname + 'Wrapper(' + arglist + ')' - print '{' - print ' if (glxWinDebugSettings.enable' + prefix.upper() + 'callTrace) ErrorF("'+ funcname + '\\n");' - print ' glWinDirectProcCalls++;' - if returntype.lower() == 'void' : - print ' ' + funcname + '(', - else : - print ' /* returntype was ' + returntype.lower() + '*/' - print ' return ' + funcname + '(', - - if arglist != 'void' : - print wrappers[w]['arglist_use'], - - print ');' - print "}\n" + if rettype.lower()=="void": + self.outFile.write(' RESOLVE(PFN%sPROC, "%s");\n'%(name.upper(), name)) + self.outFile.write(" RESOLVED_PROC(PFN%sPROC)( """%(name.upper())) + else: + self.outFile.write(' RESOLVE_RET(PFN%sPROC, "%s", FALSE);\n'%(name.upper(), name)) + self.outFile.write(" return RESOLVED_PROC(PFN%sPROC)("%(name.upper())) + + Comma="" + for ptype, pname in plist: + self.outFile.write("%s%s_"%(Comma, pname)) + Comma=", " + self.outFile.write(" );\n}\n\n") + +class ThunkDefsOutputGenerator(OutputGenerator): + def __init__(self, + errFile = sys.stderr, + warnFile = sys.stderr, + diagFile = sys.stdout): + OutputGenerator.__init__(self, errFile, warnFile, diagFile) + def beginFile(self, genOpts): + self.outFile.write("EXPORTS\n"); # this must be the first line for libtool to realize this is a .def file + self.outFile.write('; Automatically generated from %s - DO NOT EDIT\n\n'%regFilename) + def endFile(self): + pass + def beginFeature(self, interface, emit): + OutputGenerator.beginFeature(self, interface, emit) + def endFeature(self): + OutputGenerator.endFeature(self) + def genType(self, typeinfo, name): + OutputGenerator.genType(self, typeinfo, name) + def genEnum(self, enuminfo, name): + OutputGenerator.genEnum(self, enuminfo, name) + def genCmd(self, cmd, name): + OutputGenerator.genCmd(self, cmd, name) + + # export the wrapper function with the name of the function it wraps + self.outFile.write("%s = %sWrapper\n"%(name, name)) + +class ShimOutputGenerator(OutputGenerator): + def __init__(self, + errFile = sys.stderr, + warnFile = sys.stderr, + diagFile = sys.stdout): + OutputGenerator.__init__(self, errFile, warnFile, diagFile) + def beginFile(self, genOpts): + self.outFile.write('/* Automatically generated from %s - DO NOT EDIT */\n\n'%regFilename) + def endFile(self): + pass + def beginFeature(self, interface, emit): + OutputGenerator.beginFeature(self, interface, emit) + self.OldVersion = self.featureName.startswith('GL_VERSION_1_0') or self.featureName.startswith('GL_VERSION_1_1') or self.featureName.startswith('GL_VERSION_1_2') or self.featureName.startswith('GL_ARB_imaging') or self.featureName.startswith('GL_ARB_multitexture') or self.featureName.startswith('GL_ARB_texture_compression') + def endFeature(self): + OutputGenerator.endFeature(self) + def genType(self, typeinfo, name): + OutputGenerator.genType(self, typeinfo, name) + def genEnum(self, enuminfo, name): + OutputGenerator.genEnum(self, enuminfo, name) + def genCmd(self, cmd, name): + OutputGenerator.genCmd(self, cmd, name) + + if not self.OldVersion: + return + + # for GL functions which are in the ABI, generate a shim which calls the function via GetProcAddress + proto=noneStr(cmd.elem.find('proto')) + rettype=noneStr(proto.text) + if rettype.lower()!="void ": + plist = ([t for t in proto.itertext()]) + rettype = ''.join(plist[:-1]) + rettype=rettype.strip() + self.outFile.write("%s %s("%(rettype, name)) + params = cmd.elem.findall('param') + plist=[] + for param in params: + paramlist = ([t for t in param.itertext()]) + paramtype = ''.join(paramlist[:-1]) + paramname = paramlist[-1] + plist.append((paramtype, paramname)) + Comma="" + if len(plist): + for ptype, pname in plist: + self.outFile.write("%s%s%s_"%(Comma, ptype, pname)) + Comma=", " else: - if staticwrappers : - print 'static', - print returntype + ' ' + funcname + 'Wrapper(' + arglist + ')' - print '{' + self.outFile.write("void") - stringname = funcname + self.outFile.write(")\n{\n") -# -# special case: Windows OpenGL implementations are far more likely to have GL_ARB_window_pos than GL_MESA_window_pos, -# so arrange for the wrapper to use the ARB strings to find functions... -# + self.outFile.write(' typedef %s (* PFN%sPROC)(' % (rettype, name.upper())) - m2 = r3.search(funcname) - if m2 : - stringname = stringname.replace('MESA','ARB') + if len(plist): + Comma="" + for ptype, pname in plist: + self.outFile.write("%s %s %s_"%(Comma, ptype, pname)) + Comma=", " + else: + self.outFile.write("void") -# -# special case: likewise, implementations are more likely to have GL_ARB_vertex_program than GL_NV_vertex_program, -# especially if they are not NV implementations, so arrange for the wrapper to use ARB strings to find functions -# + self.outFile.write(');\n') - m3 = r4.search(funcname) - if m3 : - stringname = stringname.replace('NV','ARB') - m4 = r5.search(funcname) - if m4 : - stringname = stringname.replace('NV','ARB') - - pfntypename = 'PFN' + funcname.upper() + 'PROC' - - if returntype.lower() == 'void' : - print ' RESOLVE(' + pfntypename + ', "' + stringname + '");' - print ' if (glxWinDebugSettings.enable' + prefix.upper() + 'callTrace) ErrorF("'+ funcname + '\\n");' - print ' RESOLVED_PROC(' + pfntypename + ')(', - else : - print ' RESOLVE_RET(' + pfntypename + ', "' + stringname + '", FALSE);' - print ' if (glxWinDebugSettings.enable' + prefix.upper() + 'callTrace) ErrorF("'+ funcname + '\\n");' - print ' return RESOLVED_PROC(' + pfntypename + ')(', - - if arglist != 'void' : - print wrappers[w]['arglist_use'], - - print ');' - print "}\n" - - -# generate function to setup the dispatch table, which sets each -# dispatch table entry to point to it's wrapper function -# (assuming we were able to make one) - -if dispatchheader : - print 'void glWinSetupDispatchTable(void)' - print '{' - print ' static struct _glapi_table *disp = NULL;' - print '' - print ' if (!disp)' - print ' {' - print ' disp = calloc(sizeof(void *), _glapi_get_dispatch_table_size());' - print ' assert(disp);' - - for d in sorted(dispatch.keys()) : - if wrappers.has_key(d) : - print ' SET_'+ d + '(disp, (void *)' + prefix + d + 'Wrapper);' - else : - print '#warning No wrapper for ' + prefix + d + ' !' - - print ' }' - print '' - print ' _glapi_set_dispatch(disp);' - print '}' + if rettype.lower()=="void": + self.outFile.write(' RESOLVE(PFN%sPROC, "%s");\n'%(name.upper(), name)) + self.outFile.write(' RESOLVED_PROC(') + else: + self.outFile.write(' RESOLVE_RET(PFN%sPROC, "%s", 0);\n'%(name.upper(), name)) + self.outFile.write(' return RESOLVED_PROC(') + + Comma="" + for ptype, pname in plist: + self.outFile.write("%s%s_"%(Comma, pname)) + Comma=", " + + self.outFile.write(" );\n}\n\n") + +def genHeaders(): + outFile = open(outFilename,"w") + + if preresolve: + gen = PreResolveOutputGenerator(errFile=errWarn, + warnFile=errWarn, + diagFile=diag) + gen.outFile=outFile + reg.setGenerator(gen) + reg.apiGen(genOpts) + + if wrapper: + gen = WrapperOutputGenerator(errFile=errWarn, + warnFile=errWarn, + diagFile=diag) + gen.outFile=outFile + reg.setGenerator(gen) + reg.apiGen(genOpts) + + if shim: + gen = ShimOutputGenerator(errFile=errWarn, + warnFile=errWarn, + diagFile=diag) + gen.outFile=outFile + reg.setGenerator(gen) + reg.apiGen(genOpts) + + if thunk: + gen = ThunkOutputGenerator(errFile=errWarn, + warnFile=errWarn, + diagFile=diag) + gen.outFile=outFile + reg.setGenerator(gen) + reg.apiGen(genOpts) + + + if thunkdefs: + gen = ThunkDefsOutputGenerator(errFile=errWarn, + warnFile=errWarn, + diagFile=diag) + gen.outFile=outFile + reg.setGenerator(gen) + reg.apiGen(genOpts) + + outFile.close() + +genHeaders() diff --git a/xorg-server/hw/xwin/glx/glshim.c b/xorg-server/hw/xwin/glx/glshim.c new file mode 100644 index 000000000..7109196c0 --- /dev/null +++ b/xorg-server/hw/xwin/glx/glshim.c @@ -0,0 +1,124 @@ +/* + * File: glshim.c + * Purpose: GL shim which redirects to a specified DLL + * + * Copyright (c) Jon TURNEY 2013 + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + A GL shim which redirects to a specified DLL + + XWin is statically linked with this, rather than the system libGL, so that + GL calls can be directed to mesa cygGL-1.dll, or cygnativeGLthunk.dll + (which contains cdecl-to-stdcall thunks to the native openGL32.dll) +*/ + +#ifdef HAVE_XWIN_CONFIG_H +#include <xwin-config.h> +#endif + +#define GL_GLEXT_LEGACY +#include <GL/gl.h> +#undef GL_ARB_imaging +#undef GL_VERSION_1_3 +#include <GL/glext.h> + +#include <X11/Xwindows.h> +#include <os.h> +#include "glwindows.h" +#include <glx/glxserver.h> + +static HMODULE hMod = NULL; + +/* + Implement the __glGetProcAddress function by just using GetProcAddress() on the selected DLL +*/ +void *glXGetProcAddressARB(const char *symbol) +{ + void *proc; + + /* Default to the mesa GL implementation if one hasn't been selected yet */ + if (!hMod) + glWinSelectImplementation(0); + + proc = GetProcAddress(hMod, symbol); + + if (glxWinDebugSettings.enableGLcallTrace) + ErrorF("glXGetProcAddressARB: Resolved '%s' in %p to %p\n", symbol, hMod, proc); + + return proc; +} + +/* + Select a GL implementation DLL +*/ +int glWinSelectImplementation(int native) +{ + const char *dllname; + + if (native) { + dllname = "cygnativeGLthunk.dll"; + } + else { + dllname = "cygGL-1.dll"; + } + + hMod = LoadLibraryEx(dllname, NULL, 0); + if (hMod == NULL) { + ErrorF("glWinSelectGLimplementation: Could not load '%s'\n", dllname); + return -1; + } + + ErrorF("glWinSelectGLimplementation: Loaded '%s'\n", dllname); + + /* Connect __glGetProcAddress() to our implementation of glXGetProcAddressARB() above */ + __glXsetGetProcAddress((glx_gpa_proc)glXGetProcAddressARB); + + return 0; +} + +#define RESOLVE_RET(proctype, symbol, retval) \ + proctype proc = (proctype)glXGetProcAddressARB(symbol); \ + if (proc == NULL) return retval; + +#define RESOLVE(proctype, symbol) RESOLVE_RET(proctype, symbol,) +#define RESOLVED_PROC proc + +/* Include generated shims for direct linkage to GL functions which are in the ABI */ +#include "generated_gl_shim.c" + +/* + Special wrapper for glAddSwapHintRectWIN for copySubBuffers + + Only used with native GL if the GL_WIN_swap_hint extension is present, so we enable + GLX_MESA_copy_sub_buffer +*/ +typedef void (__stdcall * PFNGLADDSWAPHINTRECTWIN) (GLint x, GLint y, + GLsizei width, + GLsizei height); + +void +glAddSwapHintRectWINWrapper(GLint x, GLint y, GLsizei width, + GLsizei height) +{ + RESOLVE(PFNGLADDSWAPHINTRECTWIN, "glAddSwapHintRectWIN"); + RESOLVED_PROC(x, y, width, height); +} diff --git a/xorg-server/hw/xwin/glx/glwrap.c b/xorg-server/hw/xwin/glx/glthunk.c index 73cff3cc1..d49fe487c 100644 --- a/xorg-server/hw/xwin/glx/glwrap.c +++ b/xorg-server/hw/xwin/glx/glthunk.c @@ -1,13 +1,8 @@ /* - * File: glwrap.c - * Purpose: Wrapper functions for Win32 OpenGL functions - * - * Authors: Alexander Gottwald - * Jon TURNEY - * - * Copyright (c) Jon TURNEY 2009 - * Copyright (c) Alexander Gottwald 2004 + * File: glthunk.c + * Purpose: cdecl thunk wrapper library for Win32 stdcall OpenGL library * + * Copyright (c) Jon TURNEY 2009,2013 * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,34 +32,12 @@ #endif #include <X11/Xwindows.h> + +#define GL_GLEXT_LEGACY #include <GL/gl.h> +#undef GL_ARB_imaging +#undef GL_VERSION_1_3 #include <GL/glext.h> -#include <glx/glxserver.h> -#include <glx/glxext.h> -#include <glx/glapi.h> -#include <glx/dispatch.h> -#include <glwindows.h> - -static unsigned int glWinIndirectProcCalls = 0; -static unsigned int glWinDirectProcCalls = 0; - -void -glWinCallDelta(void) -{ - static unsigned int glWinIndirectProcCallsLast = 0; - static unsigned int glWinDirectProcCallsLast = 0; - - if ((glWinIndirectProcCalls != glWinIndirectProcCallsLast) || - (glWinDirectProcCalls != glWinDirectProcCallsLast)) { - if (glxWinDebugSettings.enableTrace) { - ErrorF("after %d direct and %d indirect GL calls\n", - glWinDirectProcCalls - glWinDirectProcCallsLast, - glWinIndirectProcCalls - glWinIndirectProcCallsLast); - } - glWinDirectProcCallsLast = glWinDirectProcCalls; - glWinIndirectProcCallsLast = glWinIndirectProcCalls; - } -} static PROC glWinResolveHelper(PROC * cache, const char *symbol) @@ -75,11 +48,9 @@ glWinResolveHelper(PROC * cache, const char *symbol) if ((*cache) == NULL) { proc = wglGetProcAddress(symbol); if (proc == NULL) { - ErrorF("glwrap: Can't resolve \"%s\"\n", symbol); (*cache) = (PROC) - 1; } else { - ErrorF("glwrap: Resolved \"%s\"\n", symbol); (*cache) = proc; } } @@ -99,10 +70,8 @@ glWinResolveHelper(PROC * cache, const char *symbol) static PROC cache = NULL; \ __stdcall proctype proc = (proctype)glWinResolveHelper(&cache, symbol); \ if (proc == NULL) { \ - __glXErrorCallBack(0); \ return retval; \ - } \ - glWinIndirectProcCalls++; + } #define RESOLVE(proctype, symbol) RESOLVE_RET(proctype, symbol,) @@ -113,34 +82,6 @@ glWinResolveHelper(PROC * cache, const char *symbol) OpenGL 1.2 and upward is treated as extensions, function address must found using wglGetProcAddress(), but also stdcall so still need wrappers... - - Include generated dispatch table setup function */ -#include "generated_gl_wrappers.c" - -/* - Special non-static wrapper for glGetString for debug output -*/ - -const GLubyte * -glGetStringWrapperNonstatic(GLenum name) -{ - return glGetString(name); -} - -/* - Special non-static wrapper for glAddSwapHintRectWIN for copySubBuffers -*/ - -typedef void (__stdcall * PFNGLADDSWAPHINTRECTWIN) (GLint x, GLint y, - GLsizei width, - GLsizei height); - -void -glAddSwapHintRectWINWrapperNonstatic(GLint x, GLint y, GLsizei width, - GLsizei height) -{ - RESOLVE(PFNGLADDSWAPHINTRECTWIN, "glAddSwapHintRectWIN"); - proc(x, y, width, height); -} +#include "generated_gl_thunks.c" diff --git a/xorg-server/hw/xwin/glx/glwindows.h b/xorg-server/hw/xwin/glx/glwindows.h index ec1d1f51b..4f859b498 100644 --- a/xorg-server/hw/xwin/glx/glwindows.h +++ b/xorg-server/hw/xwin/glx/glwindows.h @@ -42,12 +42,9 @@ typedef struct { extern glxWinDebugSettingsRec glxWinDebugSettings; -void glWinCallDelta(void); void glxWinPushNativeProvider(void); -const GLubyte *glGetStringWrapperNonstatic(GLenum name); -void glAddSwapHintRectWINWrapperNonstatic(GLint x, GLint y, GLsizei width, - GLsizei height); -void glWinSetupDispatchTable(void); +void glAddSwapHintRectWINWrapper(GLint x, GLint y, GLsizei width, GLsizei height); +int glWinSelectImplementation(int native); #if 1 #define GLWIN_TRACE_MSG(msg, args...) if (glxWinDebugSettings.enableTrace) ErrorF(msg " [%s:%d]\n" , ##args , __FUNCTION__, __LINE__ ) diff --git a/xorg-server/hw/xwin/glx/indirect.c b/xorg-server/hw/xwin/glx/indirect.c index 4f09652f0..3d01bed39 100644 --- a/xorg-server/hw/xwin/glx/indirect.c +++ b/xorg-server/hw/xwin/glx/indirect.c @@ -550,7 +550,9 @@ glxWinScreenProbe(ScreenPtr pScreen) if (NULL == screen) return NULL; - /* Dump out some useful information about the native renderer */ + // Select the native GL implementation (WGL) + if (glWinSelectImplementation(1)) + return NULL; // create window class #define WIN_GL_TEST_WINDOW_CLASS "XWinGLTest" @@ -597,11 +599,12 @@ glxWinScreenProbe(ScreenPtr pScreen) // (but we need to have a current context for them to be resolvable) wglResolveExtensionProcs(); - ErrorF("GL_VERSION: %s\n", glGetStringWrapperNonstatic(GL_VERSION)); - ErrorF("GL_VENDOR: %s\n", glGetStringWrapperNonstatic(GL_VENDOR)); - gl_renderer = (const char *) glGetStringWrapperNonstatic(GL_RENDERER); + /* Dump out some useful information about the native renderer */ + ErrorF("GL_VERSION: %s\n", glGetString(GL_VERSION)); + ErrorF("GL_VENDOR: %s\n", glGetString(GL_VENDOR)); + gl_renderer = (const char *) glGetString(GL_RENDERER); ErrorF("GL_RENDERER: %s\n", gl_renderer); - gl_extensions = (const char *) glGetStringWrapperNonstatic(GL_EXTENSIONS); + gl_extensions = (const char *) glGetString(GL_EXTENSIONS); wgl_extensions = wglGetExtensionsStringARBWrapper(hdc); if (!wgl_extensions) wgl_extensions = ""; @@ -615,7 +618,7 @@ glxWinScreenProbe(ScreenPtr pScreen) free(screen); LogMessage(X_ERROR, "AIGLX: Won't use generic native renderer as it is not accelerated\n"); - return NULL; + goto error; } // Can you see the problem here? The extensions string is DC specific @@ -726,7 +729,7 @@ glxWinScreenProbe(ScreenPtr pScreen) free(screen); LogMessage(X_ERROR, "AIGLX: No fbConfigs could be made from native OpenGL pixel formats\n"); - return NULL; + goto error; } /* These will be set by __glXScreenInit */ @@ -789,6 +792,13 @@ glxWinScreenProbe(ScreenPtr pScreen) pScreen->CopyWindow = glxWinCopyWindow; return &screen->base; + + error: + // Something went wrong and we can't use the native GL implementation + // so make sure the mesa GL implementation is selected instead + glWinSelectImplementation(0); + + return NULL; } /* ---------------------------------------------------------------------- */ @@ -910,7 +920,7 @@ static void glxWinDrawableCopySubBuffer(__GLXdrawable * drawable, int x, int y, int w, int h) { - glAddSwapHintRectWINWrapperNonstatic(x, y, w, h); + glAddSwapHintRectWINWrapper(x, y, w, h); glxWinDrawableSwapBuffers(NULL, drawable); } @@ -1458,7 +1468,6 @@ glxWinContextMakeCurrent(__GLXcontext * base) GLWIN_TRACE_MSG("glxWinContextMakeCurrent context %p (native ctx %p)", gc, gc->ctx); - glWinCallDelta(); /* Keep a note of the last active context in the drawable */ drawPriv = gc->base.drawPriv; @@ -1528,7 +1537,6 @@ glxWinContextLoseCurrent(__GLXcontext * base) GLWIN_TRACE_MSG("glxWinContextLoseCurrent context %p (native ctx %p)", gc, gc->ctx); - glWinCallDelta(); /* An error seems to be reported if we try to make no context current @@ -1623,8 +1631,6 @@ glxWinCreateContext(__GLXscreen * screen, context->ctx = NULL; context->shareContext = shareContext; - glWinSetupDispatchTable(); - GLWIN_DEBUG_MSG("GLXcontext %p created", context); return &(context->base); diff --git a/xorg-server/include/dix-config.h.in b/xorg-server/include/dix-config.h.in index d4fbe99fa..306610000 100644 --- a/xorg-server/include/dix-config.h.in +++ b/xorg-server/include/dix-config.h.in @@ -466,4 +466,7 @@ /* Wrap SIGBUS to catch MIT-SHM faults */ #undef BUSFAULT +/* Directory for shared memory temp files */ +#undef SHMDIR + #endif /* _DIX_CONFIG_H_ */ diff --git a/xorg-server/include/os.h b/xorg-server/include/os.h index 450e1a8e8..9b6729421 100644 --- a/xorg-server/include/os.h +++ b/xorg-server/include/os.h @@ -686,4 +686,7 @@ LogPrintMarkers(void); extern _X_EXPORT void xorg_backtrace(void); +extern _X_EXPORT int +os_move_fd(int fd); + #endif /* OS_H */ diff --git a/xorg-server/include/protocol-versions.h b/xorg-server/include/protocol-versions.h index 95df8ce1a..fc428c8cf 100644 --- a/xorg-server/include/protocol-versions.h +++ b/xorg-server/include/protocol-versions.h @@ -46,6 +46,10 @@ #define SERVER_DAMAGE_MAJOR_VERSION 1 #define SERVER_DAMAGE_MINOR_VERSION 1 +/* DRI3 */ +#define SERVER_DRI3_MAJOR_VERSION 1 +#define SERVER_DRI3_MINOR_VERSION 0 + /* DMX */ #define SERVER_DMX_MAJOR_VERSION 2 #define SERVER_DMX_MINOR_VERSION 2 @@ -63,6 +67,10 @@ #define SERVER_PANORAMIX_MAJOR_VERSION 1 #define SERVER_PANORAMIX_MINOR_VERSION 1 +/* Present */ +#define SERVER_PRESENT_MAJOR_VERSION 1 +#define SERVER_PRESENT_MINOR_VERSION 0 + /* RandR */ #define SERVER_RANDR_MAJOR_VERSION 1 #define SERVER_RANDR_MINOR_VERSION 4 diff --git a/xorg-server/miext/sync/misyncshm.c b/xorg-server/miext/sync/misyncshm.c index 3f9350af5..01f82fc00 100644 --- a/xorg-server/miext/sync/misyncshm.c +++ b/xorg-server/miext/sync/misyncshm.c @@ -32,12 +32,13 @@ #include "pixmapstr.h" #include <sys/mman.h> #include <unistd.h> +#include <fcntl.h> #include <X11/xshmfence.h> static DevPrivateKeyRec syncShmFencePrivateKey; typedef struct _SyncShmFencePrivate { - int32_t *fence; + struct xshmfence *fence; int fd; } SyncShmFencePrivateRec, *SyncShmFencePrivatePtr; @@ -126,6 +127,7 @@ miSyncShmCreateFenceFromFd(ScreenPtr pScreen, SyncFence *pFence, int fd, Bool in miSyncInitFence(pScreen, pFence, initially_triggered); + fd = os_move_fd(fd); pPriv->fence = xshmfence_map_shm(fd); if (pPriv->fence) { pPriv->fd = fd; @@ -145,6 +147,7 @@ miSyncShmGetFenceFd(ScreenPtr pScreen, SyncFence *pFence) pPriv->fd = xshmfence_alloc_shm(); if (pPriv->fd < 0) return -1; + pPriv->fd = os_move_fd(pPriv->fd); pPriv->fence = xshmfence_map_shm(pPriv->fd); if (!pPriv->fence) { close (pPriv->fd); diff --git a/xorg-server/os/osinit.c b/xorg-server/os/osinit.c index 60d10694b..4d48ea94e 100644 --- a/xorg-server/os/osinit.c +++ b/xorg-server/os/osinit.c @@ -213,10 +213,18 @@ OsInit(void) dlinfo(RTLD_SELF, RTLD_DI_SETSIGNAL, &failure_signal); #endif -#if !defined(__CYGWIN__) +#if !defined(XQUARTZ) /* STDIN is already /dev/null and STDOUT/STDERR is managed by console_redirect.c */ +# if defined(__APPLE__) + int devnullfd = open(devnull, O_RDWR, 0); + assert(devnullfd > 2); + + dup2(devnullfd, STDIN_FILENO); + dup2(devnullfd, STDOUT_FILENO); + close(devnullfd); +# elif !defined(__CYGWIN__) fclose(stdin); fclose(stdout); -#endif +# endif /* * If a write of zero bytes to stderr returns non-zero, i.e. -1, * then writing to stderr failed, and we'll write somewhere else @@ -250,6 +258,7 @@ OsInit(void) setlinebuf(stderr); #endif } +#endif /* !XQUARTZ */ #if !defined(WIN32) || defined(__CYGWIN__) if (getpgrp() == 0) diff --git a/xorg-server/os/utils.c b/xorg-server/os/utils.c index fb20da755..608ee6ab0 100644 --- a/xorg-server/os/utils.c +++ b/xorg-server/os/utils.c @@ -2071,3 +2071,27 @@ FormatUInt64Hex(uint64_t num, char *string) string[len] = '\0'; } + +/* Move a file descriptor out of the way of our select mask; this + * is useful for file descriptors which will never appear in the + * select mask to avoid reducing the number of clients that can + * connect to the server + */ +int +os_move_fd(int fd) +{ + int newfd; + +#ifdef F_DUPFD_CLOEXEC + newfd = fcntl(fd, F_DUPFD_CLOEXEC, MAXCLIENTS); +#else + newfd = fcntl(fd, F_DUPFD, MAXCLIENTS); +#endif + if (newfd < 0) + return fd; +#ifndef F_DUPFD_CLOEXEC + fcntl(newfd, F_SETFD, FD_CLOEXEC); +#endif + close(fd); + return newfd; +} diff --git a/xorg-server/present/present.c b/xorg-server/present/present.c index f9eef6b26..50bd05539 100644 --- a/xorg-server/present/present.c +++ b/xorg-server/present/present.c @@ -115,7 +115,8 @@ present_check_flip(RRCrtcPtr crtc, } /* Make sure the window hasn't been redirected with Composite */ - if (screen->GetWindowPixmap(window) != screen->GetScreenPixmap(screen)) + if (screen->GetWindowPixmap(window) != screen->GetScreenPixmap(screen) && + screen->GetWindowPixmap(window) != screen_priv->flip_pixmap) return FALSE; /* Check for full-screen window */ @@ -311,6 +312,36 @@ present_flip_idle(ScreenPtr screen) } } +struct pixmap_visit { + PixmapPtr old; + PixmapPtr new; +}; + +static int +present_set_tree_pixmap_visit(WindowPtr window, pointer data) +{ + struct pixmap_visit *visit = data; + ScreenPtr screen = window->drawable.pScreen; + + if ((*screen->GetWindowPixmap)(window) != visit->old) + return WT_DONTWALKCHILDREN; + (*screen->SetWindowPixmap)(window, visit->new); + return WT_WALKCHILDREN; +} + +static void +present_set_tree_pixmap(WindowPtr window, PixmapPtr pixmap) +{ + struct pixmap_visit visit; + ScreenPtr screen = window->drawable.pScreen; + + visit.old = (*screen->GetWindowPixmap)(window); + visit.new = pixmap; + if (visit.old == visit.new) + return; + TraverseTree(window, present_set_tree_pixmap_visit, &visit); +} + static void present_unflip(ScreenPtr screen) { @@ -319,6 +350,12 @@ present_unflip(ScreenPtr screen) assert (!screen_priv->unflip_event_id); assert (!screen_priv->flip_pending); + if (screen_priv->flip_window) + present_set_tree_pixmap(screen_priv->flip_window, + (*screen->GetScreenPixmap)(screen)); + + present_set_tree_pixmap(screen->root, (*screen->GetScreenPixmap)(screen)); + /* Update the screen pixmap with the current flip pixmap contents */ if (screen_priv->flip_pixmap && screen_priv->flip_window) { @@ -348,6 +385,8 @@ present_flip_notify(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc) present_flip_idle(screen); + xorg_list_del(&vblank->event_queue); + /* Transfer reference for pixmap and fence from vblank to screen_priv */ screen_priv->flip_crtc = vblank->crtc; screen_priv->flip_window = vblank->window; @@ -378,14 +417,12 @@ present_event_notify(uint64_t event_id, uint64_t ust, uint64_t msc) DebugPresent(("\te %lld ust %lld msc %lld\n", event_id, ust, msc)); xorg_list_for_each_entry_safe(vblank, tmp, &present_exec_queue, event_queue) { if (vblank->event_id == event_id) { - xorg_list_del(&vblank->event_queue); present_execute(vblank, ust, msc); return; } } xorg_list_for_each_entry_safe(vblank, tmp, &present_flip_queue, event_queue) { if (vblank->event_id == event_id) { - xorg_list_del(&vblank->event_queue); present_flip_notify(vblank, ust, msc); return; } @@ -447,7 +484,7 @@ present_check_flip_window (WindowPtr window) /* Now check any queued vblanks */ xorg_list_for_each_entry(vblank, &window_priv->vblank, window_list) { - if (vblank->flip && !present_check_flip(vblank->crtc, window, vblank->pixmap, FALSE, NULL, 0, 0)) + if (vblank->queued && vblank->flip && !present_check_flip(vblank->crtc, window, vblank->pixmap, FALSE, NULL, 0, 0)) vblank->flip = FALSE; } } @@ -486,7 +523,8 @@ static void present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc) { WindowPtr window = vblank->window; - present_screen_priv_ptr screen_priv = present_screen_priv(window->drawable.pScreen); + ScreenPtr screen = window->drawable.pScreen; + present_screen_priv_ptr screen_priv = present_screen_priv(screen); if (vblank->wait_fence) { if (!present_fence_check_triggered(vblank->wait_fence)) { @@ -496,22 +534,45 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc) } xorg_list_del(&vblank->event_queue); + vblank->queued = FALSE; + if (vblank->pixmap && vblank->window) { if (vblank->flip && screen_priv->flip_pending == NULL && !screen_priv->unflip_event_id) { DebugPresent(("\tf %p %8lld: %08lx -> %08lx\n", vblank, crtc_msc, vblank->pixmap->drawable.id, vblank->window->drawable.id)); - /* Prepare to flip by removing from the window/screen lists + /* Prepare to flip by placing it in the flip queue and * and sticking it into the flip_pending field */ screen_priv->flip_pending = vblank; - xorg_list_del(&vblank->window_list); xorg_list_add(&vblank->event_queue, &present_flip_queue); /* Try to flip */ - if (present_flip(vblank->crtc, vblank->event_id, vblank->target_msc, vblank->pixmap, vblank->sync_flip)) + if (present_flip(vblank->crtc, vblank->event_id, vblank->target_msc, vblank->pixmap, vblank->sync_flip)) { + RegionPtr damage; + + /* Fix window pixmaps: + * 1) Restore previous flip window pixmap + * 2) Set current flip window pixmap to the new pixmap + */ + if (screen_priv->flip_window && screen_priv->flip_window != window) + present_set_tree_pixmap(screen_priv->flip_window, + (*screen->GetScreenPixmap)(screen)); + present_set_tree_pixmap(vblank->window, vblank->pixmap); + present_set_tree_pixmap(screen->root, vblank->pixmap); + + /* Report update region as damaged + */ + if (vblank->update) { + damage = vblank->update; + RegionIntersect(damage, damage, &window->clipList); + } else + damage = &window->clipList; + + DamageDamageRegion(&vblank->window->drawable, damage); return; + } xorg_list_del(&vblank->event_queue); /* Oops, flip failed. Clear the flip_pending field @@ -531,7 +592,7 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc) /* Check current flip */ if (window == screen_priv->flip_window) - present_unflip(window->drawable.pScreen); + present_unflip(screen); } present_copy_region(&window->drawable, vblank->pixmap, vblank->update, vblank->x_off, vblank->y_off); @@ -577,7 +638,9 @@ present_pixmap(WindowPtr window, if (!window_priv) return BadAlloc; - if (!target_crtc) { + if (!screen_priv || !screen_priv->info) + target_crtc = NULL; + else if (!target_crtc) { /* Update the CRTC if we have a pixmap or we don't have a CRTC */ if (!pixmap) @@ -621,6 +684,11 @@ present_pixmap(WindowPtr window, if (vblank->crtc != target_crtc || vblank->target_msc != target_msc) continue; + DebugPresent(("\tx %lld %p %8lld: %08lx -> %08lx (crtc %p)\n", + vblank->event_id, vblank, target_msc, + vblank->pixmap->drawable.id, vblank->window->drawable.id, + vblank->crtc)); + present_pixmap_idle(vblank->pixmap, vblank->window, vblank->serial, vblank->idle_fence); present_fence_destroy(vblank->idle_fence); dixDestroyPixmap(vblank->pixmap, vblank->pixmap->drawable.id); @@ -696,10 +764,12 @@ present_pixmap(WindowPtr window, target_crtc)); xorg_list_add(&vblank->event_queue, &present_exec_queue); + vblank->queued = TRUE; if (target_msc >= crtc_msc) { ret = present_queue_vblank(screen, target_crtc, vblank->event_id, target_msc); if (ret != Success) { xorg_list_del(&vblank->event_queue); + vblank->queued = FALSE; goto failure; } } else @@ -732,6 +802,7 @@ present_abort_vblank(ScreenPtr screen, RRCrtcPtr crtc, uint64_t event_id, uint64 xorg_list_for_each_entry_safe(vblank, tmp, &present_exec_queue, event_queue) { if (vblank->event_id == event_id) { xorg_list_del(&vblank->event_queue); + vblank->queued = FALSE; return; } } diff --git a/xorg-server/present/present.h b/xorg-server/present/present.h index 6a451fb23..0e3bdc08e 100644 --- a/xorg-server/present/present.h +++ b/xorg-server/present/present.h @@ -115,4 +115,13 @@ present_event_abandon(RRCrtcPtr crtc); extern _X_EXPORT Bool present_screen_init(ScreenPtr screen, present_screen_info_ptr info); +typedef void (*present_complete_notify_proc)(WindowPtr window, + CARD8 mode, + CARD32 serial, + uint64_t ust, + uint64_t msc); + +extern _X_EXPORT void +present_register_complete_notify(present_complete_notify_proc proc); + #endif /* _PRESENT_H_ */ diff --git a/xorg-server/present/present_event.c b/xorg-server/present/present_event.c index a8f7176eb..f0d509ed4 100644 --- a/xorg-server/present/present_event.c +++ b/xorg-server/present/present_event.c @@ -137,6 +137,14 @@ present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw, } } +static present_complete_notify_proc complete_notify; + +void +present_register_complete_notify(present_complete_notify_proc proc) +{ + complete_notify = proc; +} + void present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 serial, uint64_t ust, uint64_t msc) { @@ -165,6 +173,8 @@ present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 se } } } + if (complete_notify) + (*complete_notify)(window, mode, serial, ust, msc); } void diff --git a/xorg-server/present/present_priv.h b/xorg-server/present/present_priv.h index 500c7c265..8d3e0079c 100644 --- a/xorg-server/present/present_priv.h +++ b/xorg-server/present/present_priv.h @@ -69,9 +69,10 @@ struct present_vblank { present_fence_ptr wait_fence; present_notify_ptr notifies; int num_notifies; - Bool flip; - Bool sync_flip; - Bool abort_flip; + Bool queued; /* on present_exec_queue */ + Bool flip; /* planning on using flip */ + Bool sync_flip; /* do flip synchronous to vblank */ + Bool abort_flip; /* aborting this flip */ }; typedef struct present_screen_priv { diff --git a/xorg-server/present/present_request.c b/xorg-server/present/present_request.c index 095fa2daf..1064dcb3b 100644 --- a/xorg-server/present/present_request.c +++ b/xorg-server/present/present_request.c @@ -26,6 +26,7 @@ #include "present_priv.h" #include "randrstr.h" +#include <protocol-versions.h> static int proc_present_query_version(ClientPtr client) @@ -35,8 +36,8 @@ proc_present_query_version(ClientPtr client) .type = X_Reply, .sequenceNumber = client->sequence, .length = 0, - .majorVersion = PRESENT_MAJOR, - .minorVersion = PRESENT_MINOR + .majorVersion = SERVER_PRESENT_MAJOR_VERSION, + .minorVersion = SERVER_PRESENT_MINOR_VERSION }; REQUEST_SIZE_MATCH(xPresentQueryVersionReq); diff --git a/xorg-server/present/present_screen.c b/xorg-server/present/present_screen.c index 2702cd6ca..25ef6818d 100644 --- a/xorg-server/present/present_screen.c +++ b/xorg-server/present/present_screen.c @@ -206,6 +206,11 @@ present_extension_init(void) ExtensionEntry *extension; int i; +#ifdef PANORAMIX + if (!noPanoramiXExtension) + return; +#endif + extension = AddExtension(PRESENT_NAME, PresentNumberEvents, PresentNumberErrors, proc_present_dispatch, sproc_present_dispatch, NULL, StandardMinorOpcode); diff --git a/xorg-server/xfixes/region.c b/xorg-server/xfixes/region.c index 0e9ca443f..14a02ba1d 100644 --- a/xorg-server/xfixes/region.c +++ b/xorg-server/xfixes/region.c @@ -857,6 +857,7 @@ PanoramiXFixesSetWindowShapeRegion(ClientPtr client) { int result = Success, j; PanoramiXRes *win; + RegionPtr reg = NULL; REQUEST(xXFixesSetWindowShapeRegionReq); @@ -869,10 +870,22 @@ PanoramiXFixesSetWindowShapeRegion(ClientPtr client) return result; } + if (win->u.win.root) + VERIFY_REGION_OR_NONE(reg, stuff->region, client, DixReadAccess); + FOR_NSCREENS_FORWARD(j) { + ScreenPtr screen = screenInfo.screens[j]; stuff->dest = win->info[j].id; + + if (reg) + RegionTranslate(reg, -screen->x, -screen->y); + result = (*PanoramiXSaveXFixesVector[X_XFixesSetWindowShapeRegion]) (client); + + if (reg) + RegionTranslate(reg, screen->x, screen->y); + if (result != Success) break; } @@ -886,6 +899,7 @@ PanoramiXFixesSetPictureClipRegion(ClientPtr client) REQUEST(xXFixesSetPictureClipRegionReq); int result = Success, j; PanoramiXRes *pict; + RegionPtr reg = NULL; REQUEST_SIZE_MATCH(xXFixesSetPictureClipRegionReq); @@ -896,10 +910,22 @@ PanoramiXFixesSetPictureClipRegion(ClientPtr client) return result; } + if (pict->u.pict.root) + VERIFY_REGION_OR_NONE(reg, stuff->region, client, DixReadAccess); + FOR_NSCREENS_BACKWARD(j) { + ScreenPtr screen = screenInfo.screens[j]; stuff->picture = pict->info[j].id; + + if (reg) + RegionTranslate(reg, -screen->x, -screen->y); + result = (*PanoramiXSaveXFixesVector[X_XFixesSetPictureClipRegion]) (client); + + if (reg) + RegionTranslate(reg, screen->x, screen->y); + if (result != Success) break; } diff --git a/xorg-server/xkeyboard-config/rules/HDR b/xorg-server/xkeyboard-config/rules/HDR index 769b8fc7f..9ee3e39d8 100644 --- a/xorg-server/xkeyboard-config/rules/HDR +++ b/xorg-server/xkeyboard-config/rules/HDR @@ -15,6 +15,7 @@ ! model layout[3] variant[3] = symbols ! model layout[4] variant[4] = symbols ! model = symbols +! model layout = symbols ! layout variant = compat ! layout[1] variant[1] = compat ! layout[2] variant[2] = compat diff --git a/xorg-server/xkeyboard-config/rules/Makefile.am b/xorg-server/xkeyboard-config/rules/Makefile.am index f2d73ce80..9ab91dcf3 100644 --- a/xorg-server/xkeyboard-config/rules/Makefile.am +++ b/xorg-server/xkeyboard-config/rules/Makefile.am @@ -23,6 +23,7 @@ endif if USE_COMPAT_RULES base_parts = base.hdr.part base.lists.part \ +base.lists.base.part \ compat/base.lists.part \ HDR base.m_k.part \ HDR base.l1_k.part \ @@ -41,6 +42,7 @@ HDR compat/base.ml2v2_s.part \ HDR compat/base.ml3v3_s.part \ HDR compat/base.ml4v4_s.part \ HDR base.m_s.part \ +HDR base.ml_s1.part \ HDR compat/base.lv_c.part \ HDR compat/base.l1v1_c.part \ HDR compat/base.l2v2_c.part \ @@ -59,6 +61,7 @@ HDR base.o_c.part \ HDR base.o_t.part evdev_parts = base.hdr.part base.lists.part \ +evdev.lists.part \ compat/base.lists.part \ HDR evdev.m_k.part \ HDR base.l1_k.part \ @@ -77,6 +80,7 @@ HDR compat/base.ml2v2_s.part \ HDR compat/base.ml3v3_s.part \ HDR compat/base.ml4v4_s.part \ HDR evdev.m_s.part \ +HDR \ HDR compat/base.lv_c.part \ HDR compat/base.l1v1_c.part \ HDR compat/base.l2v2_c.part \ @@ -97,6 +101,7 @@ HDR base.o_t.part else base_parts = base.hdr.part base.lists.part \ +base.lists.base.part \ HDR base.m_k.part \ HDR base.l1_k.part \ HDR base.l_k.part \ @@ -114,6 +119,7 @@ HDR \ HDR \ HDR \ HDR base.m_s.part \ +HDR base.ml_s1.part \ HDR \ HDR \ HDR \ @@ -132,6 +138,7 @@ HDR base.o_c.part \ HDR base.o_t.part evdev_parts = base.hdr.part base.lists.part \ +evdev.lists.part \ HDR evdev.m_k.part \ HDR base.l1_k.part \ HDR base.l_k.part \ @@ -154,6 +161,7 @@ HDR \ HDR \ HDR \ HDR \ +HDR \ HDR base.ml_c.part \ HDR base.ml1_c.part \ HDR base.m_t.part \ @@ -170,6 +178,8 @@ endif all_parts_dist = HDR base.hdr.part \ base.lists.part \ +base.lists.base.part \ +evdev.lists.part \ base.m_k.part \ base.l1_k.part \ base.l_k.part \ @@ -183,6 +193,7 @@ base.ml2_s.part \ base.ml3_s.part \ base.ml4_s.part \ base.m_s.part \ +base.ml_s1.part \ base.ml_c.part \ base.ml1_c.part \ base.m_t.part \ diff --git a/xorg-server/xkeyboard-config/rules/base.extras.xml.in b/xorg-server/xkeyboard-config/rules/base.extras.xml.in index c05fe0a08..aa47e3da0 100644 --- a/xorg-server/xkeyboard-config/rules/base.extras.xml.in +++ b/xorg-server/xkeyboard-config/rules/base.extras.xml.in @@ -685,8 +685,16 @@ <name>se</name> <_shortDescription>sv</_shortDescription> <_description>Swedish</_description> - </configItem> - <variantList> + </configItem> + <variantList> + <variant> + <configItem> + <name>dvorak_a5</name> + <_description>Swedish (Dvorak A5)</_description> + </configItem> + </variant> + </variantList> + <variantList> <variant> <configItem> <name>sun_type6</name> diff --git a/xorg-server/xkeyboard-config/rules/base.lists.base.part b/xorg-server/xkeyboard-config/rules/base.lists.base.part new file mode 100644 index 000000000..1b2094894 --- /dev/null +++ b/xorg-server/xkeyboard-config/rules/base.lists.base.part @@ -0,0 +1,54 @@ +! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \ + airkey \ + apple armada azonaRF2300 \ + benqx brother \ + btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \ + cherryblue cherrybluea cherryblueb \ + cherrycyboard cherrycmexpert \ + chicony chicony0108 chicony0420 chicony9885 \ + compalfl90 \ + compaqeak8 compaqik7 compaqik13 compaqik18 \ + creativedw7000 \ + cymotionlinux \ + dell dellm65 inspiron dellusbmm \ + emachines ennyah_dkb1008 evdev \ + genius geniuscomfy2 \ + gyration honeywell_euroboard \ + hp250x hp5xx hp500fa hpdv5 \ + hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \ + ibm_spacesaver ipaq inspiron intel \ + logiaccess logicda logicink \ + logiex110 logiclx300 \ + logiinkse logiinkseusb logiitc logiik \ + logitech_base itouch logiultrax \ + logitech_g15 \ + logidinovo logidinovoedge \ + microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \ + microsoftoffice microsoftmult \ + mx1998 mx2500 mx2750 \ + oretec \ + pc105 \ + presario propeller \ + qtronix \ + rapidaccess rapidaccess2 thinkpad60 \ + samsung4500 samsung4510 \ + silvercrest \ + sk1300 sk2500 sk6200 sk7100 \ + sven sven303 symplon \ + toshiba_s3000 trust trustda \ + unitekkb1925 yahoo + +! $inetmediakbds = acer_ferrari4k acer_laptop btc5090 btc9019u cherryblueb \ + cherrybluea herrycyboard chicony042 compaqik13 compaqik18 \ + armada presario dellm65 inspiron dellusbmm diamond \ + ennyah_dkb1008 genius geniuscomfy2 hpi6 hpxe3gc hpxe3gf \ + hpxt1000 hpzt11xx hpdv5 hpxe4xxx hp5xx thinkpad60 ogitech_base \ + logidinovo logidinovoedge logitech_g15 mx1998 mx2500 mx2750 \ + microsoft4000 microsoft7000 microsoftprooem microsoftmult \ + propeller samsung4500 samsung4510 sk1300 sk2500 sk7100 \ + toshiba_s3000 trust trustda cymotionlinux silvercrest \ + emachines benqx unitekkb1925 creativedw7000 compalfl90 \ + pc105 a4techKB21 a4techKBS8 a4_rfkb23 asus_laptop btc6301urf \ + dexxa dtk2000 fscaa1667g geniuskb19e geniuscomfy latitude \ + microsoftpro precision_m scorpius sp_inet targa_v811 thinkpad \ + tm2030USB-102 tm2030USB-106 trust_slimline diff --git a/xorg-server/xkeyboard-config/rules/base.lists.part b/xorg-server/xkeyboard-config/rules/base.lists.part index 97b3b907f..08c081821 100644 --- a/xorg-server/xkeyboard-config/rules/base.lists.part +++ b/xorg-server/xkeyboard-config/rules/base.lists.part @@ -33,45 +33,6 @@ ! $azerty = be fr ! $qwertz = al cz de hr hu ro si sk -! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \ - airkey \ - apple armada azonaRF2300 \ - benqx brother \ - btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \ - cherryblue cherrybluea cherryblueb \ - cherrycyboard cherrycmexpert \ - chicony chicony0108 chicony0420 chicony9885 \ - compalfl90 \ - compaqeak8 compaqik7 compaqik13 compaqik18 \ - creativedw7000 \ - cymotionlinux \ - dell dellm65 inspiron dellusbmm \ - emachines ennyah_dkb1008 evdev \ - genius geniuscomfy2 \ - gyration honeywell_euroboard \ - hp250x hp5xx hp500fa hpdv5 \ - hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \ - ibm_spacesaver ipaq inspiron intel \ - logiaccess logicda logicink \ - logiex110 logiclx300 \ - logiinkse logiinkseusb logiitc logiik \ - logitech_base itouch logiultrax \ - logitech_g15 \ - logidinovo logidinovoedge \ - microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \ - microsoftoffice microsoftmult \ - mx1998 mx2500 mx2750 \ - oretec \ - pc105 \ - presario propeller \ - qtronix \ - rapidaccess rapidaccess2 thinkpad60 \ - samsung4500 samsung4510 \ - silvercrest \ - sk1300 sk2500 sk6200 sk7100 \ - sven sven303 symplon \ - toshiba_s3000 trust trustda \ - unitekkb1925 yahoo // all layouts with 3rd and 4th groups ! $threelevellayouts = al az \ @@ -95,8 +56,6 @@ vn \ za -! $evdevkbds = ibm_spacesaver - ! $thinkpads = thinkpad thinkpad60 thinkpadz60 ! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \ @@ -117,3 +76,4 @@ ! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat ! $htcdreamlayouts = us it de + diff --git a/xorg-server/xkeyboard-config/rules/base.ml_s1.part b/xorg-server/xkeyboard-config/rules/base.ml_s1.part new file mode 100644 index 000000000..1a35202da --- /dev/null +++ b/xorg-server/xkeyboard-config/rules/base.ml_s1.part @@ -0,0 +1 @@ + $inetmediakbds jp = +jp(henkan) diff --git a/xorg-server/xkeyboard-config/rules/base.o_s.part b/xorg-server/xkeyboard-config/rules/base.o_s.part index 35b6ef3b6..a31556b55 100644 --- a/xorg-server/xkeyboard-config/rules/base.o_s.part +++ b/xorg-server/xkeyboard-config/rules/base.o_s.part @@ -8,6 +8,7 @@ altwin:hyper_win = +altwin(hyper_win) altwin:alt_super_win = +altwin(alt_super_win) altwin:swap_alt_win = +altwin(swap_alt_win) + grab:debug = +srvr_ctrl(grab_debug) grp:switch = +group(switch) grp:lswitch = +group(lswitch) grp:win_switch = +group(win_switch) diff --git a/xorg-server/xkeyboard-config/rules/base.xml.in b/xorg-server/xkeyboard-config/rules/base.xml.in index 1c75531d8..42fda3fb2 100644 --- a/xorg-server/xkeyboard-config/rules/base.xml.in +++ b/xorg-server/xkeyboard-config/rules/base.xml.in @@ -1762,9 +1762,9 @@ <layout> <configItem> <name>bd</name> - <!-- Keyboard indicator for Bengali layouts --> + <!-- Keyboard indicator for Bangla layouts --> <_shortDescription>bn</_shortDescription> - <_description>Bengali</_description> + <_description>Bangla</_description> <languageList> <iso639Id>ben</iso639Id> </languageList> @@ -1773,7 +1773,7 @@ <variant> <configItem> <name>probhat</name> - <_description>Bengali (Probhat)</_description> + <_description>Bangla (Probhat)</_description> </configItem> </variant> </variantList> @@ -1789,9 +1789,9 @@ <variant> <configItem> <name>ben</name> - <!-- Keyboard indicator for Bengali layouts --> + <!-- Keyboard indicator for Bangla layouts --> <_shortDescription>bn</_shortDescription> - <_description>Bengali (India)</_description> + <_description>Bangla (India)</_description> <languageList> <iso639Id>ben</iso639Id> </languageList> @@ -1800,9 +1800,9 @@ <variant> <configItem> <name>ben_probhat</name> - <!-- Keyboard indicator for Bengali layouts --> + <!-- Keyboard indicator for Bangla layouts --> <_shortDescription>bn</_shortDescription> - <_description>Bengali (India, Probhat)</_description> + <_description>Bangla (India, Probhat)</_description> <languageList> <iso639Id>ben</iso639Id> </languageList> @@ -1811,28 +1811,28 @@ <variant> <configItem> <name>ben_baishakhi</name> - <_description>Bengali (India, Baishakhi)</_description> + <_description>Bangla (India, Baishakhi)</_description> <languageList><iso639Id>ben</iso639Id></languageList> </configItem> </variant> <variant> <configItem> <name>ben_bornona</name> - <_description>Bengali (India, Bornona)</_description> + <_description>Bangla (India, Bornona)</_description> <languageList><iso639Id>ben</iso639Id></languageList> </configItem> </variant> <variant> <configItem> <name>ben_gitanjali</name> - <_description>Bengali (India, Uni Gitanjali)</_description> + <_description>Bangla (India, Uni Gitanjali)</_description> <languageList><iso639Id>ben</iso639Id></languageList> </configItem> </variant> <variant> <configItem> <name>ben_inscript</name> - <_description>Bengali (India, Baishakhi Inscript)</_description> + <_description>Bangla (India, Baishakhi Inscript)</_description> <languageList><iso639Id>ben</iso639Id></languageList> </configItem> </variant> @@ -6033,6 +6033,24 @@ <_description>Right Alt as Right Ctrl</_description> </configItem> </option> + <option> + <configItem> + <name>ctrl:swap_lalt_lctl</name> + <_description>Swap Left Alt key with Left Ctrl key</_description> + </configItem> + </option> + <option> + <configItem> + <name>ctrl:swap_lwin_lctl</name> + <_description>Swap Left Win key with Left Ctrl key</_description> + </configItem> + </option> + <option> + <configItem> + <name>ctrl:swap_lalt_lctl_lwin</name> + <_description>Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt</_description> + </configItem> + </option> </group> <group allowMultipleSelection="true"> <!-- Using startard LEDs to indicate the alternative (not first) group(s) --> @@ -6532,6 +6550,12 @@ <_description>Allow breaking grabs with keyboard actions (warning: security risk)</_description> </configItem> </option> + <option> + <configItem> + <name>grab:debug_actions</name> + <_description>Allow grab and window tree logging</_description> + </configItem> + </option> </group> <group allowMultipleSelection="true"> <!-- Special shortcuts for the Euro character --> diff --git a/xorg-server/xkeyboard-config/rules/evdev.lists.part b/xorg-server/xkeyboard-config/rules/evdev.lists.part new file mode 100644 index 000000000..7b5d0d46d --- /dev/null +++ b/xorg-server/xkeyboard-config/rules/evdev.lists.part @@ -0,0 +1 @@ +! $evdevkbds = ibm_spacesaver diff --git a/xorg-server/xkeyboard-config/symbols/af b/xorg-server/xkeyboard-config/symbols/af index 972769b36..b93019a95 100644 --- a/xorg-server/xkeyboard-config/symbols/af +++ b/xorg-server/xkeyboard-config/symbols/af @@ -81,7 +81,7 @@ xkb_symbols "basic" { // // 2006-02-15 file created by M. Emal Alekozai <memala@gmx.net> -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "ps" { name[Group1]= "Pashto"; @@ -152,7 +152,7 @@ xkb_symbols "ps" { // // 2006-02-15 file created by M. Emal Alekozai <memala@gmx.net> -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "uz" { name[Group1]= "Uzbek (Afghanistan)"; @@ -212,7 +212,7 @@ xkb_symbols "uz" { include "level3(ralt_switch)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "olpc-ps" { name[Group1]= "Pashto (Afghanistan, OLPC)"; @@ -273,7 +273,7 @@ xkb_symbols "olpc-ps" { include "group(olpc)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "fa-olpc" { name[Group1]= "Persian (Afghanistan, Dari OLPC)"; @@ -334,7 +334,7 @@ xkb_symbols "fa-olpc" { include "group(olpc)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "uz-olpc" { name[Group1]= "Uzbek (Afghanistan, OLPC)"; diff --git a/xorg-server/xkeyboard-config/symbols/altwin b/xorg-server/xkeyboard-config/symbols/altwin index 333b7dacd..239d4878c 100644 --- a/xorg-server/xkeyboard-config/symbols/altwin +++ b/xorg-server/xkeyboard-config/symbols/altwin @@ -1,5 +1,5 @@ // Meta is mapped to second level of Alt keys. -partial modifier_keys +partial modifier_keys xkb_symbols "meta_alt" { key <LALT> { [ Alt_L, Meta_L ] }; key <RALT> { type[Group1] = "TWO_LEVEL", @@ -9,7 +9,7 @@ xkb_symbols "meta_alt" { }; // Alt is mapped to the Win keys (and the usual Alt keys). -partial modifier_keys +partial modifier_keys xkb_symbols "alt_win" { key <LWIN> { [ Alt_L ] }; key <RWIN> { [ Alt_R ] }; @@ -17,7 +17,7 @@ xkb_symbols "alt_win" { }; // Ctrl is mapped to the Win keys (and the usual Ctrl keys). -partial modifier_keys +partial modifier_keys xkb_symbols "ctrl_win" { key <LWIN> { [ Control_L ] }; key <RWIN> { [ Control_R ] }; @@ -25,19 +25,22 @@ xkb_symbols "ctrl_win" { }; // Ctrl is mapped to the Alt keys, Alt to the Win keys, and Win to the Ctrl keys. -partial modifier_keys +partial modifier_keys xkb_symbols "ctrl_alt_win" { key <LALT> { [ Control_L, Control_L ] }; key <RALT> { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Control_R, Control_R ] }; key <LWIN> { [ Alt_L, Meta_L ] }; key <RWIN> { [ Alt_R, Meta_R ] }; + key <LCTL> { [ Super_L ] }; + key <RCTL> { [ Super_R ] }; modifier_map Control { <RALT>, <LALT> }; modifier_map Mod1 { <LWIN>, <RWIN> }; + modifier_map Mod4 { <LCTL>, <RCTL> }; }; // Meta is mapped to the Win keys. -partial modifier_keys +partial modifier_keys xkb_symbols "meta_win" { key <LALT> { [ Alt_L, Alt_L ] }; key <RALT> { type[Group1] = "TWO_LEVEL", @@ -49,7 +52,7 @@ xkb_symbols "meta_win" { }; // Meta is mapped to the left Win key. -partial modifier_keys +partial modifier_keys xkb_symbols "left_meta_win" { key <LALT> { [ Alt_L, Alt_L ] }; key <LWIN> { [ Meta_L ] }; @@ -58,7 +61,7 @@ xkb_symbols "left_meta_win" { }; // Hyper is mapped to the Win keys. -partial modifier_keys +partial modifier_keys xkb_symbols "hyper_win" { key <LWIN> { [ Hyper_L ] }; key <RWIN> { [ Hyper_R ] }; @@ -66,13 +69,13 @@ xkb_symbols "hyper_win" { }; // Menu is mapped to the Menu key. -partial modifier_keys +partial modifier_keys xkb_symbols "menu" { key <MENU> { [ Menu ] }; }; // Layout for Tux key caps with additional right Alt key -partial modifier_keys +partial modifier_keys xkb_symbols "alt_super_win" { key <LALT> { [ Alt_L, Meta_L ] }; key <RWIN> { [ Alt_R, Meta_R ] }; @@ -83,14 +86,14 @@ xkb_symbols "alt_super_win" { }; // Swap the Alt and Win keys. -partial modifier_keys +partial modifier_keys xkb_symbols "swap_alt_win" { include "altwin(swap_lalt_lwin)" include "altwin(swap_ralt_rwin)" }; // Swap the left Alt and Win keys. -partial hidden modifier_keys +partial hidden modifier_keys xkb_symbols "swap_lalt_lwin" { key <LALT> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Super_L ] }; @@ -98,7 +101,7 @@ xkb_symbols "swap_lalt_lwin" { }; // Swap the right Alt and Win keys. -partial hidden modifier_keys +partial hidden modifier_keys xkb_symbols "swap_ralt_rwin" { key <RALT> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Super_R ] }; diff --git a/xorg-server/xkeyboard-config/symbols/am b/xorg-server/xkeyboard-config/symbols/am index b7cc6f69e..dbe6e96d8 100644 --- a/xorg-server/xkeyboard-config/symbols/am +++ b/xorg-server/xkeyboard-config/symbols/am @@ -71,9 +71,9 @@ xkb_symbols "olpc" { xkb_symbols "phonetic" { include "am(basic)" name[Group1]= "Armenian (phonetic)"; - + key <BKSL> { [ 0x1000577, 0x1000547 ] }; - + key <AE01> { [ 0x1000567, 0x1000537 ] }; key <AE02> { [ 0x1000569, 0x1000539 ] }; key <AE03> { [ 0x1000583, 0x1000553 ] }; diff --git a/xorg-server/xkeyboard-config/symbols/apl b/xorg-server/xkeyboard-config/symbols/apl index 4262d2480..0800b5bbd 100644 --- a/xorg-server/xkeyboard-config/symbols/apl +++ b/xorg-server/xkeyboard-config/symbols/apl @@ -5,7 +5,7 @@ // This file supports: // - The Sharp APL for Unix (SAX) layout // - The IBM APL2 layout -// - The Manugistics APL*PLUS II (Version 5.1, 1993) keyboard layout +// - The Manugistics APL*PLUS II layout (version 5.1, 1993) // - The Dyalog APL layout - with additions for box drawing and commands // Unicode APL table: http://aplwiki.com/UnicodeAplTable @@ -16,27 +16,27 @@ // This file doesn't deal with all the combining stuff -- I'm not an APL programmer, // and am not quite sure what's needed here. However, it may be possible to get this -// working with dead keys and the like. Patches gratefully accepted. +// working with dead keys and the like. Patches gratefully accepted. // Some of the shift-key assignments may differ from the APL tradition. If -// that's not considered acceptable, it should be possible to remap the +// that's not considered acceptable, it should be possible to remap the // shift keys. I have striven, however, to ensure that the use of shift keys -// in these maps is at least self-consistent. +// in these maps is at least self-consistent. -// I'm assuming that this will be used with another keyboard layout (ie. for -// your language), with a special shift key to use these maps. +// I'm assuming that this will be used with another keyboard layout (i.e. for +// your language), with a special shift key to use these maps. -// 2011-12-22 Geoff Streeter: geoff@dyalog.com -// Added the Dyalog support. -// Corrected (what he thinks) are some errors. -// Resolving the confusion between APL's and Unicode's concept of Left and Right tacks. -// Unsure about some of the inheritance from APL2 into APLPLUS. Patches welcome. -// Complied with freedesktop.org requirement that the keycodes be in sorted order. Which -// leads to the bottom to top (roughly) definitions. +// 2011-12-22 Geoff Streeter <geoff@dyalog.com>, +// added the Dyalog support; +// corrected (what he thinks) are some errors: +// resolving the confusion between APL's and Unicode's concept of Left and Right tacks; +// unsure about some of the inheritance from APL2 into APLPLUS -- patches welcome; +// complied with freedesktop.org requirement that the keycodes be in sorted order, +// which leads to the bottom to top (roughly) definitions. -// default layout seems to have to be the first one. Choosing the basic Dyalog layout is definitely -// better than using the "common" one. Choosing the complete Dyalog layout is not useful to non-Dyalog -// users. +// The default layout still has to be the first one. Choosing the basic Dyalog layout is +// definitely better than using the "common" one. Choosing the complete Dyalog layout is +// not useful to non-Dyalog users. default partial alphanumeric_keys xkb_symbols "basic" { @@ -235,7 +235,7 @@ xkb_symbols "apl2" { key <AB10> { [ slash, backslash, U233F ] }; // /: ⌿ -- AFS Slash Bar key <AC10> { [ bracketleft, parenleft, U234E ] }; // ;: ⍎ -- [See B key in SAX layout] - key <AC11> { [ bracketright, parenright, U2355 ] }; // ': ⍕ -- [See N key in SAX layout] + key <AC11> { [ bracketright, parenright, U2355 ] }; // ': ⍕ -- [See N key in SAX layout] key <AD11> { [ NoSymbol, U2192, U235E ] }; // [: (←) → ⍞ -- Rightwards Arrow / AFS Quote Quad key <AD12> { [ U2337, U2378, U2359 ] }; // ]: ⌷ ⍸ ⍙ -- AFS Squish Quad / AFS Iota Underbar / AFS Delta Underbar @@ -255,7 +255,7 @@ xkb_symbols "apl2" { key <BKSL> { [ U2261, U2377, U2364 ] }; // \: ≡ ⍷ ⍤ -- Identical To / AFS Epsilon Underbar / AFS Jot Diaeresis - key <TLDE> { [ NoSymbol, U233B, U2342 ] }; // `: ⌻ ⍂ -- + key <TLDE> { [ NoSymbol, U233B, U2342 ] }; // `: ⌻ ⍂ -- include "level3(ralt_switch)" }; @@ -289,7 +289,7 @@ xkb_symbols "aplplusII" { name[Group1]= "APL keyboard symbols (Manugistics APL*PLUS II)"; key <AC10> { [ bracketleft, parenleft, U234E ] }; // ;: ⍎ -- [See B key in SAX layout] - key <AC11> { [ bracketright, parenright, U2355 ] }; // ': ⍕ -- [See N key in SAX layout] + key <AC11> { [ bracketright, parenright, U2355 ] }; // ': ⍕ -- [See N key in SAX layout] key <AD11> { [ U2190, NoSymbol, U235E ] }; // [: ← ⍞ -- Leftwards Arrow / AFS Quote Quad key <AD12> { [ U2192, NoSymbol, U236C ] }; // ]: → ⍬ -- Rightwards Arrow / AFS Zilde key <AE01> { [ NoSymbol, NoSymbol, U2261 ] }; // 1: ≡ -- Identical To @@ -350,22 +350,20 @@ xkb_symbols "aplx" { }; // APL language support for the Dyalog keyboard. -// Dyalog Ltd sell this keyboard with APL engravings. The current model is -// engraved on a Cherry G80. Base languages for US, UK and DK are availible. +// Dyalog Ltd sells this keyboard with APL engravings. The current model is +// engraved on a Cherry G80. Base languages for US, UK and DK are available. -// Geoff Streeter, Dyalog Ltd. 2007-09-03 -// geoff@dyalog.com +// Geoff Streeter, Dyalog Ltd. 2007-09-03 <geoff@dyalog.com> // extended for APL special actions 2008-09-09 -// add variant 2010-11-26 +// added a variant 2010-11-26 -// The intention is that this keyboard layout overlays a base keyboard that provides +// The intention is that this keyboard layout overlays a base keyboard that provides // the alphabet and similar. If this keyboard is placed as the 2nd layout then it can // be reached with a latching shift to increase group by one. partial hidden alphanumeric_keys xkb_symbols "dyalog_base" { - // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ │ ⌶ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃ // │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ × │ ÷ ┃ ┃ @@ -383,7 +381,6 @@ xkb_symbols "dyalog_base" { // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ - key <AB01> { [ U2282 ] }; // subset of key <AB02> { [ U2283 ] }; // superset of key <AB03> { [ U2229 ] }; // intersection @@ -460,14 +457,14 @@ xkb_symbols "dyalog_box" { key <KP9> { [ U2510 ] }; // box drawing light down and left key <KPDL> { [ U2502 ] }; // box drawing light vertical -}; +}; partial hidden xkb_symbols "dyalog_codes" { // Layout of private use area for this. In the style of the Unicode book // -// APL special actions F800-F88F +// APL special actions F800-F88F // // │F800 F810 F820 F830 F840 F850 F860 F870 F880 // ├────┬────┬────┬────┬────┬────┬────┬────┬────┐ @@ -504,7 +501,7 @@ xkb_symbols "dyalog_codes" { // F│RL │FD │HK │Lc │BH │PU │ │ │OS │ // └────┴────┴────┴────┴────┴────┴────┴────┴────┘ // -// APL Function Keys F700-F7FF +// APL Function Keys F700-F7FF // // │F700 ... ... F7F0 // ├────┬────┬────┬────┬....┬────┬────┬────┬────┐ @@ -514,9 +511,9 @@ xkb_symbols "dyalog_codes" { // . // F│F15 │F31 │F47 │F63 │ │F207│F223│F239│F255│ // └────┴────┴────┴────┴....┴────┴────┴────┴────┘ -// +// // whilst these locations are defined. Dyalog's "aplkeys/xterm" file copes with -// normal function keys from the base keyboard rather than this overlay +// normal function keys from the base keyboard rather than this overlay. // ┌─────┐ ┌───┐ // │ │ │ZM │ @@ -540,7 +537,6 @@ xkb_symbols "dyalog_codes" { // ┃ ┃ ┃ ┃ TO ┃ ┃ ┃ ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ - key <BKSP> { [ Uf850, Uf855 ] }; // BP CB key <ESC> { [ Uf800 ] }; // QT key <FK11> { [ Uf821, Uf821 ] }; // ZM, ZM put this on both, the unshifted one sometimes gets lost @@ -561,7 +557,6 @@ xkb_symbols "dyalog_codes" { key <RGHT> { [ Uf824, Uf854 ] }; // NX, RM key <UP> { [ Uf820 ] }; // BK - // ┌───┬───┬───┐ // │PT │LL │UL │ // │CP │LS │US │ @@ -589,7 +584,6 @@ xkb_symbols "dyalog_codes" { // │ │ │ │ // └───────┴───┴───┘ - key <KPAD> { [ Uf859 ] }; // TL key <KPDV> { [ Uf819 ] }; // RD key <KPMU> { [ Uf81a ] }; // TG @@ -602,4 +596,3 @@ xkb_symbols "dyalog" { include "apl(dyalog_codes)" name[Group1] = "APL keyboard symbols (Dyalog)"; }; - diff --git a/xorg-server/xkeyboard-config/symbols/ara b/xorg-server/xkeyboard-config/symbols/ara index 71b50daa5..e677aaab1 100644 --- a/xorg-server/xkeyboard-config/symbols/ara +++ b/xorg-server/xkeyboard-config/symbols/ara @@ -1,17 +1,14 @@ -// based on a keyboard map from an 'xkb/symbols/ar' file - default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Arabic"; // NOTES: // -// there is also combined shadda diacritis in AltGr position of simple -// diacritics fatha, fathatan, damma, dammatan, kasra and kasratan -// should a third state be added to Group2 ? -// +// There is also a combined shadda diacritic in the AltGr position of the +// simple diacritics fatha, fathatan, damma, dammatan, kasra and kasratan. (??) +// Should a third state be added to Group2? - key <TLDE> { [ Arabic_thal, Arabic_shadda ] }; + key <TLDE> { [ Arabic_thal, Arabic_shadda ] }; key <AE01> { [ 1, exclam ] }; key <AE02> { [ 2, at ] }; key <AE03> { [ 3, numbersign ] }; @@ -24,42 +21,42 @@ xkb_symbols "basic" { key <AE10> { [ 0, parenleft ] }; key <AE11> { [ minus, underscore ] }; key <AE12> { [ equal, plus ] }; - + key <AD01> { [ Arabic_dad, Arabic_fatha ] }; - key <AD02> { [ Arabic_sad, Arabic_fathatan ] }; + key <AD02> { [ Arabic_sad, Arabic_fathatan ] }; key <AD03> { [ Arabic_theh, Arabic_damma ] }; - key <AD04> { [ Arabic_qaf, Arabic_dammatan ] }; - key <AD05> { [ Arabic_feh, 0x100fef9, 0x10006a4 ] }; - key <AD06> { [ Arabic_ghain, Arabic_hamzaunderalef ] }; - key <AD07> { [ Arabic_ain, grave ] }; - key <AD08> { [ Arabic_ha, division ] }; - key <AD09> { [ Arabic_khah, multiply ] }; - key <AD10> { [ Arabic_hah, Arabic_semicolon ] }; - key <AD11> { [ Arabic_jeem, less, 0x1000686 ] }; - key <AD12> { [ Arabic_dal, greater ] }; - - key <AC01> { [ Arabic_sheen, Arabic_kasra ] }; - key <AC02> { [ Arabic_seen, Arabic_kasratan ] }; - key <AC03> { [ Arabic_yeh, bracketright ] }; - key <AC04> { [ Arabic_beh, bracketleft, 0x100067e ] }; - key <AC05> { [ Arabic_lam, 0x100fef7 ] }; - key <AC06> { [ Arabic_alef, Arabic_hamzaonalef ] }; - key <AC07> { [ Arabic_teh, Arabic_tatweel ] }; - key <AC08> { [ Arabic_noon, Arabic_comma ] }; - key <AC09> { [ Arabic_meem, slash ] }; - key <AC10> { [ Arabic_kaf, colon, 0x10006af ] }; - key <AC11> { [ Arabic_tah, quotedbl ] }; - - key <LSGT> { [ bar, brokenbar ] }; - key <AB01> { [Arabic_hamzaonyeh, asciitilde, guillemotright ] }; - key <AB02> { [ Arabic_hamza, Arabic_sukun, guillemotleft ] }; + key <AD04> { [ Arabic_qaf, Arabic_dammatan ] }; + key <AD05> { [ Arabic_feh, 0x100fef9, 0x10006a4 ] }; + key <AD06> { [ Arabic_ghain, Arabic_hamzaunderalef] }; + key <AD07> { [ Arabic_ain, grave ] }; + key <AD08> { [ Arabic_ha, division ] }; + key <AD09> { [ Arabic_khah, multiply ] }; + key <AD10> { [ Arabic_hah, Arabic_semicolon ] }; + key <AD11> { [ Arabic_jeem, less, 0x1000686 ] }; + key <AD12> { [ Arabic_dal, greater ] }; + + key <AC01> { [ Arabic_sheen, Arabic_kasra ] }; + key <AC02> { [ Arabic_seen, Arabic_kasratan ] }; + key <AC03> { [ Arabic_yeh, bracketright ] }; + key <AC04> { [ Arabic_beh, bracketleft, 0x100067e ] }; + key <AC05> { [ Arabic_lam, 0x100fef7 ] }; + key <AC06> { [ Arabic_alef, Arabic_hamzaonalef ] }; + key <AC07> { [ Arabic_teh, Arabic_tatweel ] }; + key <AC08> { [ Arabic_noon, Arabic_comma ] }; + key <AC09> { [ Arabic_meem, slash ] }; + key <AC10> { [ Arabic_kaf, colon, 0x10006af ] }; + key <AC11> { [ Arabic_tah, quotedbl ] }; + + key <LSGT> { [ bar, brokenbar ] }; + key <AB01> { [Arabic_hamzaonyeh, asciitilde, guillemotright ]}; + key <AB02> { [ Arabic_hamza, Arabic_sukun, guillemotleft ]}; key <AB03> { [Arabic_hamzaonwaw, braceright ] }; - key <AB04> { [ Arabic_ra, braceleft ] }; - key <AB05> { [ 0x100fefb, 0x100fef5 ] }; + key <AB04> { [ Arabic_ra, braceleft ] }; + key <AB05> { [ 0x100fefb, 0x100fef5 ] }; key <AB06> { [Arabic_alefmaksura, Arabic_maddaonalef ] }; - key <AB07> { [Arabic_tehmarbuta, apostrophe ] }; - key <AB08> { [ Arabic_waw, comma ] }; - key <AB09> { [ Arabic_zain, period ] }; + key <AB07> { [Arabic_tehmarbuta, apostrophe ] }; + key <AB08> { [ Arabic_waw, comma ] }; + key <AB09> { [ Arabic_zain, period ] }; key <AB10> { [ Arabic_zah, Arabic_question_mark ] }; }; @@ -74,15 +71,15 @@ xkb_symbols "azerty" { include "ara(basic)" name[Group1]= "Arabic (azerty)"; - // the north african arabic keyboard differs from the middle east one - // by the numeric row; it follows French keyboard style + // The North African Arabic keyboard differs from the Middle East one + // by the numeric row; it follows French keyboard style. // - // PROBLEM: some chars are inaccessible: ! @ # $ % ^ * - // should they go elsewhere? replace " ' that are now in double ? - // also, dead_circumflex and dead_diaeresis from French keyboard + // PROBLEM: some characters are inaccessible: ! @ # $ % ^ * + // Should they go elsewhere? Replacing " ' that are now doubled? + // Also, dead_circumflex and dead_diaeresis from French keyboard // as well as ugrave are missing, which questions the utility of the - // other accentuated latin letters. Maybe this is useful only with - // a French keyboard in Group1 ? Then, shouldn't Group1 be filled ? + // other accentuated Latin letters. Maybe this is useful only with + // a French keyboard in Group1? Then, shouldn't Group1 be filled? key <AE01> { [ ampersand, 1 ] }; key <AE02> { [ eacute, 2 ] }; @@ -101,21 +98,21 @@ partial alphanumeric_keys xkb_symbols "digits_KP" { name[Group1]= "Arabic (digits_KP)"; - // use arabic script digits on KP + // Use Arabic-script digits on the keypad. - key <KP7> { [ KP_Home, 0x1000667 ] }; // - key <KP8> { [ KP_Up, 0x1000668 ] }; // - key <KP9> { [ KP_Prior, 0x1000669 ] }; // + key <KP7> { [ KP_Home, 0x1000667 ] }; + key <KP8> { [ KP_Up, 0x1000668 ] }; + key <KP9> { [ KP_Prior, 0x1000669 ] }; - key <KP4> { [ KP_Left, 0x1000664 ] }; // - key <KP5> { [ KP_Begin, 0x1000665 ] }; // - key <KP6> { [ KP_Right, 0x1000666 ] }; // + key <KP4> { [ KP_Left, 0x1000664 ] }; + key <KP5> { [ KP_Begin, 0x1000665 ] }; + key <KP6> { [ KP_Right, 0x1000666 ] }; - key <KP1> { [ KP_End, 0x1000661 ] }; // - key <KP2> { [ KP_Down, 0x1000662 ] }; // - key <KP3> { [ KP_Next, 0x1000663 ] }; // + key <KP1> { [ KP_End, 0x1000661 ] }; + key <KP2> { [ KP_Down, 0x1000662 ] }; + key <KP3> { [ KP_Next, 0x1000663 ] }; - key <KP0> { [ KP_Insert, 0x1000660 ] }; // + key <KP0> { [ KP_Insert, 0x1000660 ] }; }; partial alphanumeric_keys @@ -123,7 +120,7 @@ xkb_symbols "digits" { include "ara(basic)" name[Group1]= "Arabic (digits)"; - // use arabic script digits + // Use Arabic-script digits on the numberic row. key <AE01> { [ 0x1000661, exclam ] }; key <AE02> { [ 0x1000662, at ] }; @@ -149,7 +146,7 @@ partial alphanumeric_keys xkb_symbols "azerty_digits" { include "ara(azerty)" name[Group1]= "Arabic (azerty/digits)"; - + key <AE01> { [ ampersand, 0x1000661 ] }; key <AE02> { [ eacute, 0x1000662 ] }; key <AE03> { [ quotedbl, 0x1000663 ] }; @@ -166,9 +163,7 @@ xkb_symbols "azerty_digits" { // http://www.qamus.org/transliteration.htm // Martin Vidner -// symbol names: see /usr/X11R6/include/X11/keysymdef.h (XFree86-devel.rpm) - -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "buckwalter" { name[Group1]= "Arabic (Buckwalter)"; @@ -191,7 +186,7 @@ xkb_symbols "buckwalter" { key <AE10> { [ 0x1000660, 0x100fd3f ] }; key <AE11> { [ minus, Arabic_tatweel ] }; key <AE12> { [ equal, plus ] }; - + key <AD01> { [ Arabic_qaf, VoidSymbol ] }; key <AD02> { [ Arabic_waw, Arabic_hamzaonwaw ] }; key <AD03> { [ VoidSymbol, Arabic_ain ] }; @@ -218,9 +213,7 @@ xkb_symbols "buckwalter" { key <AC10> { [ Arabic_semicolon, VoidSymbol ] }; key <AC11> { [ Arabic_hamza, VoidSymbol ] }; - key <BKSL> { [ VoidSymbol, Arabic_maddaonalef ] }; - -// key <LSGT> { [ bar, brokenbar ] }; + key <BKSL> { [ VoidSymbol, Arabic_maddaonalef ] }; key <AB01> { [ Arabic_zain, Arabic_zah ] }; key <AB02> { [ Arabic_khah, VoidSymbol ] }; @@ -285,7 +278,7 @@ xkb_symbols "olpc" { // REH isolated form? key <AB03> { [ Arabic_hamzaonwaw, Arabic_kasra ] }; - key <AB04> { [ Arabic_ra, Arabic_kasratan ] }; + key <AB04> { [ Arabic_ra, Arabic_kasratan ] }; key <AB05> { [ Arabic_thal, asciicircum ] }; include "group(olpc)" diff --git a/xorg-server/xkeyboard-config/symbols/at b/xorg-server/xkeyboard-config/symbols/at index bd4ba988d..c78140f05 100644 --- a/xorg-server/xkeyboard-config/symbols/at +++ b/xorg-server/xkeyboard-config/symbols/at @@ -16,7 +16,7 @@ xkb_symbols "nodeadkeys" { name[Group1]="German (Austria, eliminate dead keys)"; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac" { include "de(mac)" diff --git a/xorg-server/xkeyboard-config/symbols/ba b/xorg-server/xkeyboard-config/symbols/ba index 9a27cbd96..0cc4988d4 100644 --- a/xorg-server/xkeyboard-config/symbols/ba +++ b/xorg-server/xkeyboard-config/symbols/ba @@ -6,7 +6,7 @@ xkb_symbols "basic" { include "rs(latin)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "us" { name[Group1]= "Bosnian (US keyboard with Bosnian letters)"; @@ -15,7 +15,7 @@ xkb_symbols "us" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "alternatequotes" { name[Group1]= "Bosnian (use guillemets for quotes)"; @@ -23,7 +23,7 @@ xkb_symbols "alternatequotes" { include "rs(latinalternatequotes)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "unicode" { name[Group1]= "Bosnian (use Bosnian digraphs)"; @@ -31,7 +31,7 @@ xkb_symbols "unicode" { include "rs(latinunicode)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "unicodeus" { name[Group1]= "Bosnian (US keyboard with Bosnian digraphs)"; diff --git a/xorg-server/xkeyboard-config/symbols/bd b/xorg-server/xkeyboard-config/symbols/bd index 6a70d51a7..0fe144e8b 100644 --- a/xorg-server/xkeyboard-config/symbols/bd +++ b/xorg-server/xkeyboard-config/symbols/bd @@ -16,7 +16,7 @@ default partial alphanumeric_keys xkb_symbols "basic" { - name[Group1]= "Bengali"; + name[Group1]= "Bangla"; key <ESC> { [ Escape ] }; // numbers @@ -92,5 +92,5 @@ xkb_symbols "basic" { xkb_symbols "probhat" { include "in(ben_probhat)" - name[Group1]= "Bengali (Probhat)"; + name[Group1]= "Bangla (Probhat)"; }; diff --git a/xorg-server/xkeyboard-config/symbols/bg b/xorg-server/xkeyboard-config/symbols/bg index 994380c80..f44b5c60d 100644 --- a/xorg-server/xkeyboard-config/symbols/bg +++ b/xorg-server/xkeyboard-config/symbols/bg @@ -5,12 +5,12 @@ // both in source and binary form provided that the above copyright // notice and these terms are retained. The name of the author may not // be used to endorse or promote products derived from this software -// without prior permission. THIS SOFTWARE IS PROVIDES "AS IS" AND +// without prior permission. THIS SOFTWARE IS PROVIDED "AS IS" AND // ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT // SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE. // -////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////// // Version 2.0 // The following variants are defined in this file: @@ -18,14 +18,14 @@ // "bds" - the BDS keyboard layout compliant with the proposed // Bulgarian state standard BDS 5237:2006 -// "phonetic" - Bulgarian phonetic layout with traditional position of -// the letters. +// "phonetic" - the phonetic Bulgarian layout with the traditional position +// of the letters // "bas_phonetic" - the phonetic keyboard layout compliant with the // proposed Bulgarian state standard BDS 5237:2006 -// "latin" - an extended variant of the QWERTY layout with symbols -// Bulgarian users will type while the keyboard is in Latin mode. +// "latin" - an extended variant of the QWERTY layout with symbols that +// Bulgarian users will type while the keyboard is in Latin mode // The reasons behind the layout of the symbols in levels 3 and 4 are // explained in http://arxiv.org/abs/0905.0484 (in Bulgarian). @@ -39,7 +39,7 @@ // 2. The layouts should not include level3(ralt_switch). -////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////// // Describes Bulgarian keyboard "BDS" modified according to the // the new state standard BDS 5237:2006 and extended with symbols in @@ -48,314 +48,204 @@ default partial alphanumeric_keys xkb_symbols "bds" { name[Group1]= "Bulgarian"; - - key <TLDE> { [ parenleft, parenright, - bracketleft, bracketright ] }; - key <AE01> { [ 1, exclam ] }; - key <AE02> { [ 2, question ] }; - key <AE03> { [ 3, plus, - dagger, dagger ] }; - key <AE04> { [ 4, quotedbl ] }; - key <AE05> { [ 5, percent, - U2329, U232A ] }; - key <AE06> { [ 6, equal, - emdash, emdash ] }; - key <AE07> { [ 7, colon, - ellipsis, ellipsis ] }; - key <AE08> { [ 8, slash, - U0300, U0301 ] }; - key <AE09> { [ 9, endash ] }; - key <AE10> { [ 0, numerosign ] }; - key <AE11> { [ minus, dollar, - U2011, EuroSign ] }; - key <AE12> { [ period, EuroSign ] }; - - - key <AD01> { [ comma, Cyrillic_yeru, - rightsinglequotemark, leftsinglequotemark ] }; - key <AD02> { [ Cyrillic_u, Cyrillic_U ] }; - key <AD03> { [ Cyrillic_ie, Cyrillic_IE, - Cyrillic_e, Cyrillic_E ] }; - key <AD04> { [ Cyrillic_i, Cyrillic_I, - U045D, U040D ] }; - key <AD05> { [ Cyrillic_sha, Cyrillic_SHA ] }; - key <AD06> { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; - key <AD07> { [ Cyrillic_ka, Cyrillic_KA, - copyright, copyright ] }; - key <AD08> { [ Cyrillic_es, Cyrillic_ES, - copyright, copyright ] }; - key <AD09> { [ Cyrillic_de, Cyrillic_DE ] }; - key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; - key <AD11> { [ Cyrillic_tse, Cyrillic_TSE ] }; - key <AD12> { [ semicolon, section ] }; - - - key <AC01> { [ Cyrillic_softsign, U045D, - Cyrillic_yeru, Cyrillic_YERU ] }; - key <AC02> { [ Cyrillic_ya, Cyrillic_YA, - U0463, U0462 ] }; - key <AC03> { [ Cyrillic_a, Cyrillic_A ] }; - key <AC04> { [ Cyrillic_o, Cyrillic_O ] }; - key <AC05> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; - key <AC06> { [ Cyrillic_ghe, Cyrillic_GHE ] }; - key <AC07> { [ Cyrillic_te, Cyrillic_TE, - trademark, trademark ] }; - key <AC08> { [ Cyrillic_en, Cyrillic_EN ] }; - key <AC09> { [ Cyrillic_ve, Cyrillic_VE ] }; - key <AC10> { [ Cyrillic_em, Cyrillic_EM ] }; - key <AC11> { [ Cyrillic_che, Cyrillic_CHE ] }; - key <BKSL> { [ doublelowquotemark, leftdoublequotemark, - guillemotleft, guillemotright ] }; - - - key <LSGT> { [ U045D, U040D ] }; - key <AB01> { [ Cyrillic_yu, Cyrillic_YU ] }; - key <AB02> { [ Cyrillic_shorti, Cyrillic_SHORTI, - U046D, U046C ] }; - key <AB03> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, - U046B, U046A ] }; - key <AB04> { [ Cyrillic_e, Cyrillic_E ] }; - key <AB05> { [ Cyrillic_ef, Cyrillic_EF ] }; - key <AB06> { [ Cyrillic_ha, Cyrillic_HA ] }; - key <AB07> { [ Cyrillic_pe, Cyrillic_PE ] }; - key <AB08> { [ Cyrillic_er, Cyrillic_ER, - registered, registered ] }; - key <AB09> { [ Cyrillic_el, Cyrillic_EL ] }; - key <AB10> { [ Cyrillic_be, Cyrillic_BE ] }; - - - key <SPCE> { [ space, space, - nobreakspace, nobreakspace ] }; - - - key <KPDL> { type[Group1] = "KEYPAD", - [ KP_Delete, KP_Separator ] }; + + key <TLDE> {[ parenleft, parenright, bracketleft, bracketright ]}; + key <AE01> {[ 1, exclam ]}; + key <AE02> {[ 2, question ]}; + key <AE03> {[ 3, plus, dagger, dagger ]}; + key <AE04> {[ 4, quotedbl ]}; + key <AE05> {[ 5, percent, U2329, U232A ]}; + key <AE06> {[ 6, equal, emdash, emdash ]}; + key <AE07> {[ 7, colon, ellipsis, ellipsis ]}; + key <AE08> {[ 8, slash, U0300, U0301 ]}; + key <AE09> {[ 9, endash ]}; + key <AE10> {[ 0, numerosign ]}; + key <AE11> {[ minus, dollar, U2011, EuroSign ]}; + key <AE12> {[ period, EuroSign ]}; + + key <AD01> {[ comma, Cyrillic_yeru, rightsinglequotemark, leftsinglequotemark ]}; + key <AD02> {[ Cyrillic_u, Cyrillic_U ]}; + key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]}; + key <AD04> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]}; + key <AD05> {[ Cyrillic_sha, Cyrillic_SHA ]}; + key <AD06> {[ Cyrillic_shcha, Cyrillic_SHCHA ]}; + key <AD07> {[ Cyrillic_ka, Cyrillic_KA, copyright, copyright ]}; + key <AD08> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]}; + key <AD09> {[ Cyrillic_de, Cyrillic_DE ]}; + key <AD10> {[ Cyrillic_ze, Cyrillic_ZE ]}; + key <AD11> {[ Cyrillic_tse, Cyrillic_TSE ]}; + key <AD12> {[ semicolon, section ]}; + + key <AC01> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; + key <AC02> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; + key <AC03> {[ Cyrillic_a, Cyrillic_A ]}; + key <AC04> {[ Cyrillic_o, Cyrillic_O ]}; + key <AC05> {[ Cyrillic_zhe, Cyrillic_ZHE ]}; + key <AC06> {[ Cyrillic_ghe, Cyrillic_GHE ]}; + key <AC07> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]}; + key <AC08> {[ Cyrillic_en, Cyrillic_EN ]}; + key <AC09> {[ Cyrillic_ve, Cyrillic_VE ]}; + key <AC10> {[ Cyrillic_em, Cyrillic_EM ]}; + key <AC11> {[ Cyrillic_che, Cyrillic_CHE ]}; + key <BKSL> {[ doublelowquotemark, leftdoublequotemark, guillemotleft, guillemotright ]}; + + key <LSGT> {[ U045D, U040D ]}; + key <AB01> {[ Cyrillic_yu, Cyrillic_YU ]}; + key <AB02> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]}; + key <AB03> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]}; + key <AB04> {[ Cyrillic_e, Cyrillic_E ]}; + key <AB05> {[ Cyrillic_ef, Cyrillic_EF ]}; + key <AB06> {[ Cyrillic_ha, Cyrillic_HA ]}; + key <AB07> {[ Cyrillic_pe, Cyrillic_PE ]}; + key <AB08> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]}; + key <AB09> {[ Cyrillic_el, Cyrillic_EL ]}; + key <AB10> {[ Cyrillic_be, Cyrillic_BE ]}; + + key <SPCE> {[ space, space, nobreakspace, nobreakspace ]}; + + key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]}; }; -// This is improved variant of the traditional Bulgarian phonetic +// This is an improved variant of the traditional Bulgarian phonetic // keyboard. Some unnecessary symbols in levels 1 and 2 are replaced -// by more useful (the same way as in "bas_phonetic") and additional -// symbols in levels 3 and 4 are added. -partial alphanumeric_keys +// by more useful ones (similar as in "bas_phonetic") and additional +// symbols are added in levels 3 and 4. +partial alphanumeric_keys xkb_symbols "phonetic" { name[Group1]= "Bulgarian (traditional phonetic)"; - - key <TLDE> { [ Cyrillic_che, Cyrillic_CHE ] }; - key <AE01> { [ 1, exclam ] }; - key <AE02> { [ 2, at ] }; - key <AE03> { [ 3, numerosign ] }; - key <AE04> { [ 4, dollar, - EuroSign, EuroSign ] }; - key <AE05> { [ 5, percent ] }; - key <AE06> { [ 6, EuroSign ] }; - key <AE07> { [ 7, section ] }; - key <AE08> { [ 8, asterisk ] }; - key <AE09> { [ 9, parenleft, - bracketleft, U2329 ] }; - key <AE10> { [ 0, parenright, - bracketright, U232A ] }; - key <AE11> { [ minus, endash, - U2011, U2011 ] }; - key <AE12> { [ equal, plus, - emdash, dagger ] }; - - key <AD01> { [ Cyrillic_ya, Cyrillic_YA, - U0463, U0462 ] }; - key <AD02> { [ Cyrillic_ve, Cyrillic_VE ] }; - key <AD03> { [ Cyrillic_ie, Cyrillic_IE, - Cyrillic_e, Cyrillic_E ] }; - key <AD04> { [ Cyrillic_er, Cyrillic_ER, - registered, registered ] }; - key <AD05> { [ Cyrillic_te, Cyrillic_TE, - trademark, trademark ] }; - key <AD06> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, - U046B, U046A ] }; - key <AD07> { [ Cyrillic_u, Cyrillic_U ] }; - key <AD08> { [ Cyrillic_i, Cyrillic_I, - U045D, U040D ] }; - key <AD09> { [ Cyrillic_o, Cyrillic_O ] }; - key <AD10> { [ Cyrillic_pe, Cyrillic_PE ] }; - key <AD11> { [ Cyrillic_sha, Cyrillic_SHA ] }; - key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; - - - key <AC01> { [ Cyrillic_a, Cyrillic_A ] }; - key <AC02> { [ Cyrillic_es, Cyrillic_ES, - copyright, copyright ] }; - key <AC03> { [ Cyrillic_de, Cyrillic_DE ] }; - key <AC04> { [ Cyrillic_ef, Cyrillic_EF ] }; - key <AC05> { [ Cyrillic_ghe, Cyrillic_GHE ] }; - key <AC06> { [ Cyrillic_ha, Cyrillic_HA ] }; - key <AC07> { [ Cyrillic_shorti, Cyrillic_SHORTI, - U046D, U046C ] }; - key <AC08> { [ Cyrillic_ka, Cyrillic_KA ] }; - key <AC09> { [ Cyrillic_el, Cyrillic_EL ] }; - key <AC10> { [ semicolon, colon, - ellipsis, ellipsis ] }; - key <AC11> { [ apostrophe, quotedbl, - rightsinglequotemark, leftsinglequotemark ] }; - key <BKSL> { [ Cyrillic_yu, Cyrillic_YU ] }; - - - key <LSGT> { [ U045D, U040D ] }; - key <AB01> { [ Cyrillic_ze, Cyrillic_ZE ] }; - key <AB02> { [ Cyrillic_softsign, U045D, - Cyrillic_yeru, Cyrillic_YERU ] }; - key <AB03> { [ Cyrillic_tse, Cyrillic_TSE, - copyright, copyright ] }; - key <AB04> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; - key <AB05> { [ Cyrillic_be, Cyrillic_BE ] }; - key <AB06> { [ Cyrillic_en, Cyrillic_EN ] }; - key <AB07> { [ Cyrillic_em, Cyrillic_EM ] }; - key <AB08> { [ comma, doublelowquotemark, - guillemotleft, guillemotleft ] }; - key <AB09> { [ period, leftdoublequotemark, - guillemotright, guillemotright ] }; - key <AB10> { [ slash, question, - U0300, U0301 ] }; - - - key <SPCE> { [ space, space, - nobreakspace, nobreakspace ] }; - - - key <KPDL> { type[Group1] = "KEYPAD", - [ KP_Delete, KP_Separator ] }; + key <TLDE> {[ Cyrillic_che, Cyrillic_CHE ]}; + key <AE01> {[ 1, exclam ]}; + key <AE02> {[ 2, at ]}; + key <AE03> {[ 3, numerosign ]}; + key <AE04> {[ 4, dollar, EuroSign, EuroSign ]}; + key <AE05> {[ 5, percent ]}; + key <AE06> {[ 6, EuroSign ]}; + key <AE07> {[ 7, section ]}; + key <AE08> {[ 8, asterisk ]}; + key <AE09> {[ 9, parenleft, bracketleft, U2329 ]}; + key <AE10> {[ 0, parenright, bracketright, U232A ]}; + key <AE11> {[ minus, endash, U2011, U2011 ]}; + key <AE12> {[ equal, plus, emdash, dagger ]}; + + key <AD01> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; + key <AD02> {[ Cyrillic_ve, Cyrillic_VE ]}; + key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]}; + key <AD04> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]}; + key <AD05> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]}; + key <AD06> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]}; + key <AD07> {[ Cyrillic_u, Cyrillic_U ]}; + key <AD08> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]}; + key <AD09> {[ Cyrillic_o, Cyrillic_O ]}; + key <AD10> {[ Cyrillic_pe, Cyrillic_PE ]}; + key <AD11> {[ Cyrillic_sha, Cyrillic_SHA ]}; + key <AD12> {[ Cyrillic_shcha, Cyrillic_SHCHA ]}; + + key <AC01> {[ Cyrillic_a, Cyrillic_A ]}; + key <AC02> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]}; + key <AC03> {[ Cyrillic_de, Cyrillic_DE ]}; + key <AC04> {[ Cyrillic_ef, Cyrillic_EF ]}; + key <AC05> {[ Cyrillic_ghe, Cyrillic_GHE ]}; + key <AC06> {[ Cyrillic_ha, Cyrillic_HA ]}; + key <AC07> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]}; + key <AC08> {[ Cyrillic_ka, Cyrillic_KA ]}; + key <AC09> {[ Cyrillic_el, Cyrillic_EL ]}; + key <AC10> {[ semicolon, colon, ellipsis, ellipsis ]}; + key <AC11> {[ apostrophe, quotedbl, rightsinglequotemark, leftsinglequotemark ]}; + key <BKSL> {[ Cyrillic_yu, Cyrillic_YU ]}; + + key <LSGT> {[ U045D, U040D ]}; + key <AB01> {[ Cyrillic_ze, Cyrillic_ZE ]}; + key <AB02> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; + key <AB03> {[ Cyrillic_tse, Cyrillic_TSE, copyright, copyright ]}; + key <AB04> {[ Cyrillic_zhe, Cyrillic_ZHE ]}; + key <AB05> {[ Cyrillic_be, Cyrillic_BE ]}; + key <AB06> {[ Cyrillic_en, Cyrillic_EN ]}; + key <AB07> {[ Cyrillic_em, Cyrillic_EM ]}; + key <AB08> {[ comma, doublelowquotemark, guillemotleft, guillemotleft ]}; + key <AB09> {[ period, leftdoublequotemark, guillemotright, guillemotright ]}; + key <AB10> {[ slash, question, U0300, U0301 ]}; + + key <SPCE> {[ space, space, nobreakspace, nobreakspace ]}; + + key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]}; }; -// This is the Bulgarian phonetic keyboard acording to the proposed -// state standard BDS 5237:2006 with additional symbols in -// levels 3 and 4. -partial alphanumeric_keys +// This is the Bulgarian phonetic keyboard according to the proposed +// state standard BDS 5237:2006 with additional symbols in levels 3 and 4. +partial alphanumeric_keys xkb_symbols "bas_phonetic" { include "bg(phonetic)" name[Group1]= "Bulgarian (new phonetic)"; - - key <TLDE> { [ Cyrillic_yu, Cyrillic_YU ] }; - key <AD01> { [ Cyrillic_che, Cyrillic_CHE ] }; - key <AD02> { [ Cyrillic_sha, Cyrillic_SHA ] }; - key <AD11> { [ Cyrillic_ya, Cyrillic_YA, - U0463, U0462 ] }; - key <BKSL> { [ Cyrillic_softsign, U045D, - Cyrillic_yeru, Cyrillic_YERU ] }; - key <AB02> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; - key <AB04> { [ Cyrillic_ve, Cyrillic_VE ] }; + + key <TLDE> {[ Cyrillic_yu, Cyrillic_YU ]}; + key <AD01> {[ Cyrillic_che, Cyrillic_CHE ]}; + key <AD02> {[ Cyrillic_sha, Cyrillic_SHA ]}; + key <AD11> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; + key <BKSL> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; + key <AB02> {[ Cyrillic_zhe, Cyrillic_ZHE ]}; + key <AB04> {[ Cyrillic_ve, Cyrillic_VE ]}; }; -// This is extended variant of the standard Latin QWERTY layout with +// This is an extended variant of the standard Latin QWERTY layout with // additional symbols in levels 3 and 4. -partial hidden alphanumeric_keys +partial hidden alphanumeric_keys xkb_symbols "latin" { - - key <TLDE> { [ grave, asciitilde, - U2248, U2245 ] }; - key <AE01> { [ 1, exclam, - notsign, notsign ] }; - key <AE02> { [ 2, at, - twosuperior, enfilledcircbullet ] }; - key <AE03> { [ 3, numbersign, - threesuperior, notequal ] }; - key <AE04> { [ 4, dollar, - EuroSign, sterling ] }; - key <AE05> { [ 5, percent, - U2030, U2030 ] }; - key <AE06> { [ 6, asciicircum, - logicaland, logicalor ] }; - key <AE07> { [ 7, ampersand, - section, section ] }; - key <AE08> { [ 8, asterisk, - infinity, multiply ] }; - key <AE09> { [ 9, parenleft, - U2202, nabla ] }; - key <AE10> { [ 0, parenright, - U2300, U2300 ] }; - key <AE11> { [ minus, underscore, - U2011, endash ] }; - key <AE12> { [ equal, plus, - emdash, plusminus ] }; - - - key <AD01> { [ q, Q, - Greek_THETA, Greek_theta ] }; - key <AD02> { [ w, W, - Greek_OMEGA, Greek_omega ] }; - key <AD03> { [ e, E, - U2203, Greek_epsilon ] }; - key <AD04> { [ r, R, - registered, Greek_rho ] }; - key <AD05> { [ t, T, - trademark, Greek_tau ] }; - key <AD06> { [ y, Y, - yen, Greek_upsilon ] }; - key <AD07> { [ u, U, - intersection, union ] }; - key <AD08> { [ i, I, - integral, Greek_iota ] }; - key <AD09> { [ o, O, - degree, U222E ] }; - key <AD10> { [ p, P, - Greek_PI, Greek_pi ] }; - key <AD11> { [ bracketleft, braceleft, - U2286, includedin ] }; - key <AD12> { [ bracketright, braceright, - U2208, U2209 ] }; - - - key <AC01> { [ a, A, - U2200, Greek_alpha ] }; - key <AC02> { [ s, S, - Greek_SIGMA, Greek_sigma ] }; - key <AC03> { [ d, D, - Greek_DELTA, Greek_delta ] }; - key <AC04> { [ f, F, - Greek_PHI, Greek_phi ] }; - key <AC05> { [ g, G, - Greek_GAMMA, Greek_gamma ] }; - key <AC06> { [ h, H, - U2225, Greek_eta ] }; - key <AC07> { [ j, J ] }; - key <AC08> { [ k, K, - U03F0, Greek_kappa ] }; - key <AC09> { [ l, L, - Greek_LAMBDA, Greek_lambda ] }; - key <AC10> { [ semicolon, colon, - division, division ] }; - key <AC11> { [ apostrophe, quotedbl, - leftdoublequotemark, rightdoublequotemark ] }; - key <BKSL> { [ backslash, bar, - identical, downtack ] }; - - - key <LSGT> { [ less, greater, - U2266, U2267 ] }; - key <AB01> { [ z, Z, - U2220, Greek_zeta ] }; - key <AB02> { [ x, X, - Greek_XI, Greek_xi ] }; - key <AB03> { [ c, C, - copyright, Greek_chi ] }; - key <AB04> { [ v, V, - Greek_PSI, Greek_psi ] }; - key <AB05> { [ b, B, - U03D1, Greek_beta ] }; - key <AB06> { [ n, N, - U207F, Greek_nu ] }; - key <AB07> { [ m, M, - Greek_mu, Greek_mu ] }; - key <AB08> { [ comma, less, - U2266, U21D4 ] }; - key <AB09> { [ period, greater, - U2267, U21D2 ] }; - key <AB10> { [ slash, question, - leftsinglequotemark, rightsinglequotemark ] }; - - - key <SPCE> { [ space, space, - nobreakspace, nobreakspace ] }; - - - key <KPDL> { type[Group1] = "KEYPAD", - [ KP_Delete, KP_Decimal ] }; + + key <TLDE> {[ grave, asciitilde, U2248, U2245 ]}; + key <AE01> {[ 1, exclam, notsign, notsign ]}; + key <AE02> {[ 2, at, twosuperior, enfilledcircbullet ]}; + key <AE03> {[ 3, numbersign, threesuperior, notequal ]}; + key <AE04> {[ 4, dollar, EuroSign, sterling ]}; + key <AE05> {[ 5, percent, U2030, U2030 ]}; + key <AE06> {[ 6, asciicircum, logicaland, logicalor ]}; + key <AE07> {[ 7, ampersand, section, section ]}; + key <AE08> {[ 8, asterisk, infinity, multiply ]}; + key <AE09> {[ 9, parenleft, U2202, nabla ]}; + key <AE10> {[ 0, parenright, U2300, U2300 ]}; + key <AE11> {[ minus, underscore, U2011, endash ]}; + key <AE12> {[ equal, plus, emdash, plusminus ]}; + + key <AD01> {[ q, Q, Greek_THETA, Greek_theta ]}; + key <AD02> {[ w, W, Greek_OMEGA, Greek_omega ]}; + key <AD03> {[ e, E, U2203, Greek_epsilon ]}; + key <AD04> {[ r, R, registered, Greek_rho ]}; + key <AD05> {[ t, T, trademark, Greek_tau ]}; + key <AD06> {[ y, Y, yen, Greek_upsilon ]}; + key <AD07> {[ u, U, intersection, union ]}; + key <AD08> {[ i, I, integral, Greek_iota ]}; + key <AD09> {[ o, O, degree, U222E ]}; + key <AD10> {[ p, P, Greek_PI, Greek_pi ]}; + key <AD11> {[ bracketleft, braceleft, U2286, includedin ]}; + key <AD12> {[ bracketright, braceright, U2208, U2209 ]}; + + key <AC01> {[ a, A, U2200, Greek_alpha ]}; + key <AC02> {[ s, S, Greek_SIGMA, Greek_sigma ]}; + key <AC03> {[ d, D, Greek_DELTA, Greek_delta ]}; + key <AC04> {[ f, F, Greek_PHI, Greek_phi ]}; + key <AC05> {[ g, G, Greek_GAMMA, Greek_gamma ]}; + key <AC06> {[ h, H, U2225, Greek_eta ]}; + key <AC07> {[ j, J ]}; + key <AC08> {[ k, K, U03F0, Greek_kappa ]}; + key <AC09> {[ l, L, Greek_LAMBDA, Greek_lambda ]}; + key <AC10> {[ semicolon, colon, division, division ]}; + key <AC11> {[ apostrophe, quotedbl, leftdoublequotemark, rightdoublequotemark]}; + key <BKSL> {[ backslash, bar, identical, downtack ]}; + + key <LSGT> {[ less, greater, U2266, U2267 ]}; + key <AB01> {[ z, Z, U2220, Greek_zeta ]}; + key <AB02> {[ x, X, Greek_XI, Greek_xi ]}; + key <AB03> {[ c, C, copyright, Greek_chi ]}; + key <AB04> {[ v, V, Greek_PSI, Greek_psi ]}; + key <AB05> {[ b, B, U03D1, Greek_beta ]}; + key <AB06> {[ n, N, U207F, Greek_nu ]}; + key <AB07> {[ m, M, Greek_mu, Greek_mu ]}; + key <AB08> {[ comma, less, U2266, U21D4 ]}; + key <AB09> {[ period, greater, U2267, U21D2 ]}; + key <AB10> {[ slash, question, leftsinglequotemark, rightsinglequotemark]}; + + key <SPCE> {[ space, space, nobreakspace, nobreakspace ]}; + + key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Decimal ]}; }; diff --git a/xorg-server/xkeyboard-config/symbols/bt b/xorg-server/xkeyboard-config/symbols/bt index c02505e98..e53942107 100644 --- a/xorg-server/xkeyboard-config/symbols/bt +++ b/xorg-server/xkeyboard-config/symbols/bt @@ -18,7 +18,7 @@ xkb_symbols "basic" { name[Group1]= "Dzongkha"; key <TLDE> { [ 0x1000F09, 0x1000F0A, 0x1000F6C, 0x1000F6D ] }; - + // numbers e.a. key <AE01> { [ 0x1000F21, 0x1000F04, 1, exclam ] }; key <AE02> { [ 0x1000F22, 0x1000F05, 2, at ] }; @@ -63,7 +63,7 @@ xkb_symbols "basic" { key <AC09> { [ 0x1000F59, 0x1000FA9, 0x1000F39, VoidSymbol ] }; key <AC10> { [ 0x1000F5A, 0x1000FAA, colon, semicolon ] }; key <AC11> { [ 0x1000F5B, 0x1000FAB, apostrophe, quotedbl ] }; - + // TODO: BKSL and LSGT are from gb layout, are there any variants? key <BKSL> { [ 0x1000F5D, 0x1000FAD, backslash, 0x1000FBA ] }; key <LSGT> { [ 0x1000F0D, 0x1000F11, 0x1000F10, 0x1000F0F ] }; diff --git a/xorg-server/xkeyboard-config/symbols/bw b/xorg-server/xkeyboard-config/symbols/bw index 48de2e2df..ab14cc7d8 100644 --- a/xorg-server/xkeyboard-config/symbols/bw +++ b/xorg-server/xkeyboard-config/symbols/bw @@ -4,7 +4,7 @@ xkb_symbols "tswana" { include "us" name[Group1]= "Tswana"; - + key <AC10> { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW key <AC11> { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE diff --git a/xorg-server/xkeyboard-config/symbols/by b/xorg-server/xkeyboard-config/symbols/by index 00ecd6a8d..d82bcf57e 100644 --- a/xorg-server/xkeyboard-config/symbols/by +++ b/xorg-server/xkeyboard-config/symbols/by @@ -19,7 +19,7 @@ partial alphanumeric_keys xkb_symbols "legacy" { include "by(basic)" name[Group1]= "Belarusian (legacy)"; - + key <AE03> { [ 3, numbersign ] }; key <AE04> { [ 4, asterisk ] }; key <AE05> { [ 5, colon ] }; @@ -36,7 +36,7 @@ partial alphanumeric_keys xkb_symbols "latin" { include "latin" name[Group1]= "Belarusian (Latin)"; - + key <AD02> { [ w, W, scaron, Scaron ] }; key <AD07> { [ u, U, ubreve, Ubreve ] }; key <AC02> { [ s, S, sacute, Sacute ] }; @@ -46,6 +46,6 @@ xkb_symbols "latin" { key <AB03> { [ c, C, cacute, Cacute ] }; key <AB04> { [ v, V, ccaron, Ccaron ] }; key <AB06> { [ n, N, nacute, Nacute ] }; - + include "level3(ralt_switch)" }; diff --git a/xorg-server/xkeyboard-config/symbols/ca b/xorg-server/xkeyboard-config/symbols/ca index c4d37ad5c..abfbbd9f7 100644 --- a/xorg-server/xkeyboard-config/symbols/ca +++ b/xorg-server/xkeyboard-config/symbols/ca @@ -266,7 +266,7 @@ xkb_symbols "multi-2gr" { // Inuktitut keyboard for X11 // written by Pablo Saratxaga <pablo@mandrakesoft.com> -alphanumeric_keys +alphanumeric_keys xkb_symbols "ike" { name[Group1]= "Inuktitut"; @@ -453,18 +453,18 @@ xkb_symbols "multix" { xkb_symbols "olpc" { include "ca(fr)" - + key <AE02> { [ 2, quotedbl, ograve, Ograve ] }; key <AE03> { [ 3, slash, at, VoidSymbol ] }; - + key <AD03> { [ e, E, EuroSign, VoidSymbol] }; - + key <AB09> { [ period, period, 0x1002010 ] }; - + key <I219> { [ guillemotleft, guillemotright, degree, VoidSymbol ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "eng" { name[Group1] = "English (Canada)"; include "us(basic)" @@ -472,7 +472,7 @@ xkb_symbols "eng" { // EXTRAS: -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "kut" { // Ejective U0313 and acute accents are taken from shs layout. @@ -501,7 +501,7 @@ xkb_symbols "kut" { // Secwepemctsin keyboard for X11 // written by Neskie Manuel <neskiem@gmail.com> -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "shs" { include "us" diff --git a/xorg-server/xkeyboard-config/symbols/capslock b/xorg-server/xkeyboard-config/symbols/capslock index 337c5efd2..928d79a3e 100644 --- a/xorg-server/xkeyboard-config/symbols/capslock +++ b/xorg-server/xkeyboard-config/symbols/capslock @@ -68,7 +68,7 @@ xkb_symbols "ctrl_modifier" { replace key <CAPS> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Caps_Lock ], - actions[Group1] = [ SetMods(modifiers=Control) ] + actions[Group1] = [ SetMods(modifiers=Control) ] }; modifier_map Control { <CAPS> }; }; diff --git a/xorg-server/xkeyboard-config/symbols/ch b/xorg-server/xkeyboard-config/symbols/ch index 54663f1fa..62c69f958 100644 --- a/xorg-server/xkeyboard-config/symbols/ch +++ b/xorg-server/xkeyboard-config/symbols/ch @@ -36,7 +36,7 @@ xkb_symbols "basic" { include "level3(ralt_switch)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "legacy" { include "ch(basic)" @@ -44,12 +44,12 @@ xkb_symbols "legacy" { key <AE07> { [ 7, slash, brokenbar ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "de" { include "ch(basic)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "de_Sundeadkeys" { // modify the basic Swiss German layout to use Sun dead keys include "ch(basic)" @@ -58,13 +58,13 @@ xkb_symbols "de_Sundeadkeys" { key <AD12> { [ dead_diaeresis, exclam, bracketright ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "de_sundeadkeys" { include "ch(de_Sundeadkeys)" name[Group1]= "German (Switzerland, Sun dead keys)"; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "de_nodeadkeys" { // modify the basic Swiss German layout not to have any dead keys include "ch(basic)" @@ -74,7 +74,7 @@ xkb_symbols "de_nodeadkeys" { key <AD12> { [ diaeresis, exclam, bracketright ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "fr" { include "ch(basic)" @@ -123,7 +123,7 @@ xkb_symbols "fr_nodeadkeys" { partial alphanumeric_keys xkb_symbols "de_mac" { - + name[Group1]= "German (Switzerland, Macintosh)"; key <AE01> { [ 1, plus, plusminus, infinity ] }; @@ -143,7 +143,7 @@ xkb_symbols "de_mac" { key <AD02> { [ w, W, Greek_SIGMA, Aacute ] }; key <AD03> { [ e, E, EuroSign, Ediaeresis ] }; key <AD04> { [ r, R, registered, Egrave ] }; - key <AD05> { [ t, T, dagger, Icircumflex ] }; + key <AD05> { [ t, T, dagger, Icircumflex ] }; key <AD06> { [ z, Z, Greek_OMEGA, Iacute ] }; key <AD07> { [ u, U, degree, Ugrave ] }; key <AD08> { [ i, I, exclamdown, idotless ] }; @@ -152,7 +152,7 @@ xkb_symbols "de_mac" { key <AD11> { [ udiaeresis, egrave, section, ydiaeresis ] }; key <AD12> { [ dead_diaeresis, exclam, grave, apostrophe ] }; key <AC01> { [ a, A, aring, Aring ] }; - key <AC02> { [ s, S, ssharp, NoSymbol ] }; + key <AC02> { [ s, S, ssharp, NoSymbol ] }; // ligature fl key <AC03> { [ d, D, Greek_sigma, NoSymbol ] }; // partialderivative is not available here att @@ -168,7 +168,7 @@ xkb_symbols "de_mac" { key <AB02> { [ x, X, similarequal, trademark ] }; key <AB03> { [ c, C, copyright, NoSymbol ] }; key <AB04> { [ v, V, radical, diamond ] }; - key <AB05> { [ b, B, integral, NoSymbol ] }; + key <AB05> { [ b, B, integral, NoSymbol ] }; key <AB06> { [ n, N, dead_tilde, enopencircbullet ] }; // to be fixed att key <AB07> { [ m, M, mu, dead_abovering ] }; @@ -186,7 +186,7 @@ xkb_symbols "de_mac" { include "level3(ralt_switch)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "fr_mac" { include "ch(de_mac)" diff --git a/xorg-server/xkeyboard-config/symbols/cn b/xorg-server/xkeyboard-config/symbols/cn index 8c2ffe422..6b6562dbc 100644 --- a/xorg-server/xkeyboard-config/symbols/cn +++ b/xorg-server/xkeyboard-config/symbols/cn @@ -58,7 +58,7 @@ xkb_symbols "basic" { // you and maybe they'll find a fix. You won't notice it unless you're // fast at typing Tibetan anyway. -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "tib" { name[Group1]= "Tibetan"; @@ -113,7 +113,7 @@ xkb_symbols "tib" { key <AB08> { [ 0x1000f50, 0x1000f4b, 0x1000fa0, 0x1000f9b ] }; # ཐ ཋ ྠ ྛ key <AB09> { [ 0x1000f47, 0x1000f3a, 0x1000f97, 0x1000f8b ] }; # ཇ ༺ ྗ ྋ key <AB10> { [ 0x1000f49, 0x1000f3b, 0x1000f99, 0x1000f8a ] }; # ཉ ༻ ྙ ྊ - + }; // Tibetan Standard Keyboard with ASCII numerals @@ -131,7 +131,7 @@ xkb_symbols "tib" { // email addresses are not possible.) This mapping may change in the future // if a clearly better use for the shifted numerals is pointed out by users. -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "tib_asciinum" { include "cn(tib)" diff --git a/xorg-server/xkeyboard-config/symbols/ctrl b/xorg-server/xkeyboard-config/symbols/ctrl index ca019ec7d..785777cfe 100644 --- a/xorg-server/xkeyboard-config/symbols/ctrl +++ b/xorg-server/xkeyboard-config/symbols/ctrl @@ -1,57 +1,80 @@ // Eliminate CapsLock, making it another Ctrl. -partial modifier_keys +partial modifier_keys xkb_symbols "nocaps" { - replace key <CAPS> { [ Control_L, Control_L ] }; + replace key <CAPS> { [ Control_L, Control_L ] }; modifier_map Control { <CAPS>, <LCTL> }; }; // Make the left Ctrl key a left Meta. xkb_symbols "lctrl_meta" { - replace key <LCTL> { [ Meta_L ] }; + replace key <LCTL> { [ Meta_L ] }; }; // Swap the functions of the CapsLock key and the left Ctrl key. -partial modifier_keys +partial modifier_keys xkb_symbols "swapcaps" { - replace key <CAPS> { [ Control_L ] }; - replace key <LCTL> { [ Caps_Lock ] }; + replace key <CAPS> { [ Control_L ] }; + replace key <LCTL> { [ Caps_Lock ] }; }; // Move Ctrl to the leftmost key on the middle row and CapsLock to the // leftmost key on the bottom row. Only works if the geometry or keycodes // file has defined appropriate aliases for the keys in question. -partial modifier_keys +partial modifier_keys xkb_symbols "ac_ctrl" { - replace key <AC00> { [ Control_L ] }; - replace key <AA00> { [ Caps_Lock ] }; + replace key <AC00> { [ Control_L ] }; + replace key <AA00> { [ Caps_Lock ] }; }; // Move Ctrl to the leftmost key on the bottom row and CapsLock to the // leftmost key on the middle row. Only works if the geometry or keycodes // file has defined appropriate aliases for the keys in question. -partial modifier_keys +partial modifier_keys xkb_symbols "aa_ctrl" { - replace key <AA00> { [ Control_L ] }; - replace key <AC00> { [ Caps_Lock ] }; + replace key <AA00> { [ Control_L ] }; + replace key <AC00> { [ Caps_Lock ] }; }; // Right Ctrl key functions as another right Alt. -partial modifier_keys +partial modifier_keys xkb_symbols "rctrl_ralt" { - key <RCTL> { symbols[Group1]= [ Alt_R ] }; + key <RCTL> { symbols[Group1]= [ Alt_R ] }; }; // Menu key functions as another right Ctrl. partial modifier_keys xkb_symbols "menu_rctrl" { - replace key <MENU> { [ Control_R, Control_R ] }; + replace key <MENU> { [ Control_R, Control_R ] }; modifier_map Control { Control_L, <MENU> }; }; // Right Alt key functions as another right Ctrl. -partial modifier_keys +partial modifier_keys xkb_symbols "ralt_rctrl" { replace key <RALT> { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Control_R, Control_R ] }; - modifier_map Control { <RALT> }; + modifier_map Control { <RALT> }; +}; + +// Swap the functions of the left Alt key and the left Ctrl key. +partial modifier_keys +xkb_symbols "swap_lalt_lctl" { + replace key <LALT> { [ Control_L, Control_L ] }; + replace key <LCTL> { [ Alt_L, Meta_L ] }; +}; + +// Swap the functions of the left Win key and the left Ctrl key. +partial modifier_keys +xkb_symbols "swap_lwin_lctl" { + replace key <LWIN> { [ Control_L ] }; + replace key <LCTL> { [ Super_L ] }; +}; + +// Map Ctrl to the left Alt key, Alt to the left Win key, +// and Super to the left Ctrl key. +partial modifier_keys +xkb_symbols "swap_lalt_lctl_lwin" { + replace key <LALT> { [ Control_L, Control_L ] }; + replace key <LWIN> { [ Alt_L, Meta_L ] }; + replace key <LCTL> { [ Super_L ] }; }; diff --git a/xorg-server/xkeyboard-config/symbols/cz b/xorg-server/xkeyboard-config/symbols/cz index 20af4b281..083cc7674 100644 --- a/xorg-server/xkeyboard-config/symbols/cz +++ b/xorg-server/xkeyboard-config/symbols/cz @@ -1,6 +1,6 @@ default partial alphanumeric_keys xkb_symbols "basic" { - + // This layout conforms to a new cz compromise standard designed // to satisfy most unix, windows and mac users. // 2001 by Kamil Toman <ktoman@email.cz> @@ -46,7 +46,7 @@ xkb_symbols "basic" { key <AC07> { [ j, J, apostrophe, NoSymbol ] }; key <AC08> { [ k, K, lstroke, NoSymbol ] }; key <AC09> { [ l, L, Lstroke, NoSymbol ] }; - + key <AC10> { [ uring, quotedbl, dollar, NoSymbol ] }; key <AC11> { [ section, exclam, apostrophe, ssharp ] }; key <AC12> { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] }; @@ -77,14 +77,14 @@ xkb_symbols "bksl" { key <BKSL> { [ backslash, bar, slash, NoSymbol ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "qwerty" { - + // This layout represent actual keyboard layout. It complies with symbols // printed on keys. // ----------------------------------------------------------------------- // This layout was created in 2011 by Lukáš Mojžíš <lmojzis@grenames.cz> - + include "cz(basic)" name[Group1]= "Czech (qwerty)"; diff --git a/xorg-server/xkeyboard-config/symbols/de b/xorg-server/xkeyboard-config/symbols/de index 01bde5d20..a497d7f48 100644 --- a/xorg-server/xkeyboard-config/symbols/de +++ b/xorg-server/xkeyboard-config/symbols/de @@ -39,7 +39,7 @@ xkb_symbols "basic" { key <AB02> { [ x, X, guillemotleft, U2039 ] }; key <AB04> { [ v, V, doublelowquotemark, singlelowquotemark ] }; key <AB05> { [ b, B, leftdoublequotemark, leftsinglequotemark ] }; - key <AB06> { [ n, N, rightdoublequotemark, rightsinglequotemark ] }; + key <AB06> { [ n, N, rightdoublequotemark, rightsinglequotemark ] }; key <AB08> { [ comma, semicolon, periodcentered, multiply ] }; key <AB09> { [ period, colon, U2026, division ] }; key <AB10> { [ minus, underscore, endash, emdash ] }; @@ -221,7 +221,7 @@ xkb_symbols "ro_nodeadkeys" { // in many programming languages. // to use this keymap, use a 105-key-keyboard and the command setxkbmap -model pc105 -layout dvorak -variant de // source: http://www-lehre.informatik.uni-osnabrueck.de/~rfreund/dvorak.php -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak)" @@ -479,7 +479,7 @@ xkb_symbols "neo" { // Copied from macintosh_vndr/de // olh@suse.de very close to MacOS map -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac" { include "de" @@ -496,7 +496,7 @@ xkb_symbols "mac" { key <AD07> { [ u, U, diaeresis, Aacute ] }; key <AD08> { [ i, I, slash, Ucircumflex ] }; key <AD11> { [ udiaeresis, Udiaeresis, periodcentered, degree ] }; - key <AD12> { [ plus, asterisk, asciitilde ] }; + key <AD12> { [ plus, asterisk, asciitilde ] }; key <AC01> { [ a, A, aring, Aring ] }; key <AC05> { [ g, G, copyright ] }; key <AC06> { [ h, H, ordfeminine ] }; @@ -506,7 +506,7 @@ xkb_symbols "mac" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac_nodeadkeys" { // modify the standard German mac layout to not have any dead keys include "de(mac)" @@ -571,13 +571,13 @@ xkb_symbols "dsb_qwertz" key <AD09> { [ o, O, oacute, Oacute ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "qwerty" { - + // This layout should work exactly as a de with the exception // of 'Z' and 'Y' keys, which are in the qwerty style (ie. swapped). // 2008 by Matej Košík <kosik@fiit.stuba.sk> - + include "de(basic)" name[Group1] = "German (qwerty)"; @@ -594,7 +594,7 @@ partial alphanumeric_keys xkb_symbols "ru" { include "de(basic)" - + name[Group1]= "Russian (Germany, phonetic)"; key.type[group1]="FOUR_LEVEL_ALPHABETIC"; diff --git a/xorg-server/xkeyboard-config/symbols/dk b/xorg-server/xkeyboard-config/symbols/dk index 34667fc48..838478bf8 100644 --- a/xorg-server/xkeyboard-config/symbols/dk +++ b/xorg-server/xkeyboard-config/symbols/dk @@ -43,7 +43,7 @@ xkb_symbols "nodeadkeys" { }; // Copied from macintosh_vndr/dk -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac" { include "dk" @@ -55,7 +55,7 @@ xkb_symbols "mac" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac_nodeadkeys" { include "dk(mac)" name[Group1]= "Danish (Macintosh, eliminate dead keys)"; @@ -64,7 +64,7 @@ xkb_symbols "mac_nodeadkeys" { key <AD12> { [diaeresis, asciicircum, asciitilde, dead_macron ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "dvorak" { include "no(dvorak)" diff --git a/xorg-server/xkeyboard-config/symbols/ee b/xorg-server/xkeyboard-config/symbols/ee index 9384bee83..9e6865e55 100644 --- a/xorg-server/xkeyboard-config/symbols/ee +++ b/xorg-server/xkeyboard-config/symbols/ee @@ -59,7 +59,7 @@ partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak)" name[Group1]= "Estonian (Dvorak)"; - + key <AE03> { [ 3, numbersign, sterling ] }; key <AE04> { [ 4, dollar, section, currency ] }; key <AE08> { [ 8, asterisk, onehalf ] }; @@ -68,7 +68,7 @@ xkb_symbols "dvorak" { key <AC02> { [ o, O, otilde, Otilde ] }; key <AC03> { [ e, E, odiaeresis, Odiaeresis ] }; key <AC04> { [ u, U, udiaeresis, Udiaeresis ] }; - key <AC10> { [ s, S, scaron, Scaron ] }; + key <AC10> { [ s, S, scaron, Scaron ] }; key <AB10> { [ z, Z, zcaron, Zcaron ] }; include "level3(ralt_switch)" diff --git a/xorg-server/xkeyboard-config/symbols/es b/xorg-server/xkeyboard-config/symbols/es index 62e2b2c6a..9e963a23f 100644 --- a/xorg-server/xkeyboard-config/symbols/es +++ b/xorg-server/xkeyboard-config/symbols/es @@ -141,7 +141,7 @@ xkb_symbols "ast" { }; // Copied from macintosh_vndr/es -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac" { include "es" name[Group1]= "Spanish (Macintosh)"; @@ -179,7 +179,7 @@ xkb_symbols "olpc" { key <AB08> { [ comma, semicolon ] }; key <AB09> { [ period, colon ] }; key <AB10> { [ minus, underscore ] }; - + key <I219> { [ less, greater, ISO_Next_Group ] }; include "level3(ralt_switch)" diff --git a/xorg-server/xkeyboard-config/symbols/fo b/xorg-server/xkeyboard-config/symbols/fo index dc9fa6b45..1000c9cf0 100644 --- a/xorg-server/xkeyboard-config/symbols/fo +++ b/xorg-server/xkeyboard-config/symbols/fo @@ -30,7 +30,7 @@ xkb_symbols "basic" { include "level3(ralt_switch)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "fo(basic)" diff --git a/xorg-server/xkeyboard-config/symbols/fr b/xorg-server/xkeyboard-config/symbols/fr index 3898b1c57..9c89db825 100644 --- a/xorg-server/xkeyboard-config/symbols/fr +++ b/xorg-server/xkeyboard-config/symbols/fr @@ -36,6 +36,8 @@ xkb_symbols "basic" { key <AB09> { [ colon, slash, periodcentered, division ] }; key <AB10> { [ exclam, section, dead_belowdot, dead_abovedot ] }; + include "kpdl(comma)" + include "level3(ralt_switch)" }; diff --git a/xorg-server/xkeyboard-config/symbols/gb b/xorg-server/xkeyboard-config/symbols/gb index 7bf071cca..ead9e7b1c 100644 --- a/xorg-server/xkeyboard-config/symbols/gb +++ b/xorg-server/xkeyboard-config/symbols/gb @@ -25,7 +25,7 @@ xkb_symbols "basic" { include "level3(ralt_switch_multikey)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "intl" { // Describes the differences between a very simple en_US @@ -41,7 +41,7 @@ xkb_symbols "intl" { include "latin" - name[Group1]="English (UK, international with dead keys)"; + name[Group1]="English (UK, international with dead keys)"; key <AE02> { [ 2, dead_diaeresis, twosuperior, onehalf ] }; key <AE03> { [ 3, sterling, threesuperior, onethird ] }; @@ -57,7 +57,7 @@ xkb_symbols "intl" { include "level3(ralt_switch)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "extd" { // Clone of the Microsoft "English (UK, Extended" layout, which // includes dead keys for: grave; diaeresis; circumflex; tilde; and @@ -73,9 +73,9 @@ xkb_symbols "extd" { include "latin" name[Group1]="English (UK, extended WinKeys)"; - + key <TLDE> { [ dead_grave, notsign, brokenbar, NoSymbol ] }; - + key <AE02> { [ 2, quotedbl, dead_diaeresis, onehalf ] }; key <AE03> { [ 3, sterling, threesuperior, onethird ] }; key <AE04> { [ 4, dollar, EuroSign, onequarter ] }; @@ -155,7 +155,7 @@ xkb_symbols "dvorakukp" { }; // Copied from macintosh_vndr/gb -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac" { // Describes the differences between a very simple en_US @@ -175,12 +175,12 @@ xkb_symbols "mac" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac_intl" { include "latin" - name[Group1]="English (UK, Macintosh international)"; + name[Group1]="English (UK, Macintosh international)"; key <AE02> { [ 2, at, EuroSign, onehalf ] }; key <AE03> { [ 3, sterling, twosuperior, onethird ] }; diff --git a/xorg-server/xkeyboard-config/symbols/ge b/xorg-server/xkeyboard-config/symbols/ge index 8c2e2e9a0..4f590a440 100644 --- a/xorg-server/xkeyboard-config/symbols/ge +++ b/xorg-server/xkeyboard-config/symbols/ge @@ -123,7 +123,7 @@ xkb_symbols "ergonomic" { key <AC07> { [ 0x010010db, noSymbol ] }; key <AC08> { [ 0x010010e1, noSymbol ] }; key <AC09> { [ 0x010010e0, noSymbol, L ] }; - key <AC10> { [ 0x010010d1, noSymbol, colon ] }; + key <AC10> { [ 0x010010d1, noSymbol, colon ] }; key <AC11> { [ 0x010010d2, noSymbol, 0x010010f9, quotedbl ] }; key <BKSL> { [ slash, section, backslash, bar ] }; diff --git a/xorg-server/xkeyboard-config/symbols/gh b/xorg-server/xkeyboard-config/symbols/gh index bd31a0b39..f29c25d5c 100644 --- a/xorg-server/xkeyboard-config/symbols/gh +++ b/xorg-server/xkeyboard-config/symbols/gh @@ -16,7 +16,7 @@ xkb_symbols "akan" { name[Group1]= "Akan"; key <AD01> { [ 0x0100025B, 0x01000190, q, Q ] }; - key <AB02> { [ 0x01000254, 0x01000186, x, X ] }; + key <AB02> { [ 0x01000254, 0x01000186, x, X ] }; }; partial alphanumeric_keys @@ -26,8 +26,8 @@ xkb_symbols "ga" { name[Group1]= "Ga"; key <AD01> { [ 0x0100025B, 0x01000190, q, Q ] }; - key <AB02> { [ 0x01000254, 0x01000186, x, X ] }; - key <AB03> { [ 0x0100014B, 0x0100014A, c, C ] }; + key <AB02> { [ 0x01000254, 0x01000186, x, X ] }; + key <AB03> { [ 0x0100014B, 0x0100014A, c, C ] }; }; partial alphanumeric_keys @@ -37,13 +37,13 @@ xkb_symbols "ewe" { name[Group1]= "Ewe"; key <AD01> { [ 0x0100025B, 0x01000190, q, Q ] }; - key <AB03> { [ 0x0100014B, 0x0100014A, c, C ] }; - key <AD11> { [ 0x01000254, 0x01000186, braceleft, braceleft ] }; - key <AD12> { [ 0x0100028B, 0x010001B2, braceright, braceright ] }; + key <AB03> { [ 0x0100014B, 0x0100014A, c, C ] }; + key <AD11> { [ 0x01000254, 0x01000186, braceleft, braceleft ] }; + key <AD12> { [ 0x0100028B, 0x010001B2, braceright, braceright ] }; key <BKSL> { [ 0x01000256, 0x01000189, backslash, backslash ] }; key <AC07> { [ 0x01000192, 0x01000191, j, J ] }; key <AC05> { [ g, G, 0x01000263, 0x01000194 ] }; - + }; partial alphanumeric_keys @@ -113,7 +113,7 @@ xkb_symbols "avn" { key <AB03> { [ 0x01000254, 0x01000186 ] }; // ɔ, Ɔ include "level3(ralt_switch)" - + }; // This keyboard layout fully imitates the 'Ghana Unicode' layout which is used in GILLBT on Windows with Keyman. @@ -146,6 +146,6 @@ xkb_symbols "gillbt" { key <AB01> { [ z, Z, 0x01000292, 0x010001B7 ] }; // ʒ, Ʒ key <AB02> { [ 0x01000269, 0x01000196, x, X ] }; // ɩ, Ɩ key <AB03> { [ c, C, 0x010000E7, 0x010000C7 ] }; // ç, Ç - + include "level3(ralt_switch)" }; diff --git a/xorg-server/xkeyboard-config/symbols/group b/xorg-server/xkeyboard-config/symbols/group index fb2f879d0..8592f4344 100644 --- a/xorg-server/xkeyboard-config/symbols/group +++ b/xorg-server/xkeyboard-config/symbols/group @@ -1,108 +1,92 @@ -// using the group(switch) map, the right alt key temporarily chooses -// the second keyboard group (until it is released). -// -partial modifier_keys +// The right Alt key (while pressed) chooses the second keyboard group. +partial modifier_keys xkb_symbols "switch" { - key <RALT> { - symbols[Group1]= [ Mode_switch, Multi_key ], - virtualMods= AltGr + key <RALT> { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr }; }; -// using the group(lswitch) map, the left alt key temporarily chooses -// the second keyboard group (until it is released). -// -partial modifier_keys +// The left Alt key (while pressed) chooses the second keyboard group. +partial modifier_keys xkb_symbols "lswitch" { - key <LALT> { - symbols[Group1]= [ Mode_switch, Multi_key ], - virtualMods= AltGr + key <LALT> { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr }; }; - -// using the group(win_switch) map, both Windows'logo keys temporarily -// choose the second keyboard group (until release). If you use this -// map, you would declare you keyboard as pc101 or pc102 instead of -// pc104 or pc105. +// Either Win key (while pressed) chooses the second keyboard group. partial modifier_keys xkb_symbols "win_switch" { include "group(lwin_switch)" include "group(rwin_switch)" }; -// using the group(lwin_switch) map, the left Windows' logo key -// temporarily chooses the second keyboard group (until it is -// released). If you use this map, you would declare you keyboard as -// pc101 or pc102 instead of pc104 or pc105. +// The left Win key (while pressed) chooses the second keyboard group. +// (Using this map, you should declare your keyboard as pc101 or pc102 +// instead of pc104 or pc105.) partial modifier_keys xkb_symbols "lwin_switch" { - key <LWIN> { - symbols[Group1] = [ Mode_switch, Multi_key ], - virtualMods= AltGr + key <LWIN> { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr }; }; -// using the group(rwin_switch) map, the right Windows' logo key -// temporarily chooses the second keyboard group (until it is -// released). If you use this map, you would declare you keyboard as -// pc101 or pc102 instead of pc104 or pc105. +// The right Win key (while pressed) chooses the second keyboard group. +// (Using this map, you should declare your keyboard as pc101 or pc102 +// instead of pc104 or pc105.) partial modifier_keys xkb_symbols "rwin_switch" { - key <RWIN> { - symbols[Group1] = [ Mode_switch, Multi_key ], - virtualMods= AltGr + key <RWIN> { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr }; }; -// Right Ctrl key temporary chooses the second keyboard group. -// Needed mainly for Canadian keyboard +// The right Ctrl key (while pressed) chooses the second keyboard group. +// (Needed mainly for the Canadian keyboard.) partial modifier_keys xkb_symbols "rctrl_switch" { - key <RCTL> { - symbols[Group1]= [ Mode_switch ] + key <RCTL> { + symbols[Group1] = [ Mode_switch ] }; }; -// using the group(toggle) map, pressing the right alt key switches to -// the next sequential group (until the next explicit group change). -partial modifier_keys +// Pressing the right Alt key switches to the next group. +partial modifier_keys xkb_symbols "toggle" { virtual_modifiers AltGr; - key <RALT> { - symbols[Group1]= [ ISO_Next_Group ], - virtualMods= AltGr + key <RALT> { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr }; }; -// using the group(shifts_toggle) map, pressing both shift keys together -// locks the next or previous sequential keyboard group -// (depending on which shift is pressed first - right or left, -// correspongingly) -partial modifier_keys +// Pressing both Shift keys switches to the next or previous group +// (depending on which Shift is pressed first). +partial modifier_keys xkb_symbols "shifts_toggle" { - key <LFSH> { [ Shift_L, ISO_Prev_Group ] }; - key <RTSH> { [ Shift_R, ISO_Next_Group ] }; + key <LFSH> { [ Shift_L, ISO_Prev_Group ] }; + key <RTSH> { [ Shift_R, ISO_Next_Group ] }; }; -// using the group(shift_caps_toggle) map, pressing: -// Shift+Caps Lock toggles group +// Pressing Shift+Caps_Lock switches to the next group. partial modifier_keys xkb_symbols "shift_caps_toggle" { - key <CAPS> { [ Caps_Lock, ISO_Next_Group ] }; + key <CAPS> { [ Caps_Lock, ISO_Next_Group ] }; }; -// using the group(shift_caps_switch) map, pressing: -// Caps Lock selects the first group -// Shift+Caps Lock selects the last group +// Pressing Caps_Lock selects the first group, +// pressing Shift+Caps_Lock selects the last group. partial modifier_keys xkb_symbols "shift_caps_switch" { key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] }; }; -// using the group(win_menu_switch) map, pressing: -// LWIN selects the first group -// RWIN or MENU selects the last group +// Pressing the left Win key selects the first group, +// pressing the right Win or the Menu key selects the last group. partial modifier_keys xkb_symbols "win_menu_switch" { virtual_modifiers AltGr; @@ -120,9 +104,8 @@ xkb_symbols "win_menu_switch" { }; }; -// using the group(lctrl_rctrl_switch) map, pressing: -// Left Control selects the first group -// Right Control selects the last group +// Pressing the left Ctrl key selects the first group, +// pressing the right Ctrl key selects the last group. partial modifier_keys xkb_symbols "lctrl_rctrl_switch" { virtual_modifiers AltGr; @@ -140,20 +123,20 @@ xkb_symbols "lctrl_rctrl_switch" { // // CTRL-SHIFT toggle section // -partial modifier_keys +partial modifier_keys xkb_symbols "lctrl_lshift_toggle" { key <LFSH> { type[Group1]="PC_CONTROL_LEVEL2", - symbols[Group1]= [ Shift_L, ISO_Next_Group ] + symbols[Group1] = [ Shift_L, ISO_Next_Group ] }; key <LCTL> { [ Control_L, ISO_Next_Group ] }; }; -partial modifier_keys +partial modifier_keys xkb_symbols "lctrl_lshift_toggle_rev" { key <LFSH> { type[Group1]="PC_CONTROL_LEVEL2", - symbols[Group1]= [ Shift_L, ISO_Prev_Group ] + symbols[Group1] = [ Shift_L, ISO_Prev_Group ] }; key <LCTL> { [ Control_L, ISO_Prev_Group ] }; }; @@ -162,18 +145,18 @@ partial modifier_keys xkb_symbols "rctrl_rshift_toggle" { key <RTSH> { type[Group1]="PC_CONTROL_LEVEL2", - symbols[Group1]= [ Shift_R, ISO_Next_Group ] + symbols[Group1] = [ Shift_R, ISO_Next_Group ] }; key <RCTL> { [ Control_R, ISO_Next_Group ] }; }; -partial modifier_keys +partial modifier_keys xkb_symbols "ctrl_shift_toggle" { include "group(lctrl_lshift_toggle)" include "group(rctrl_rshift_toggle)" }; -partial modifier_keys +partial modifier_keys xkb_symbols "ctrl_shift_toggle_bidir" { include "group(lctrl_lshift_toggle_rev)" include "group(rctrl_rshift_toggle)" @@ -188,12 +171,12 @@ xkb_symbols "lctrl_lalt_toggle" { virtual_modifiers Alt; key <LALT> { type[Group1]="PC_CONTROL_LEVEL2", - symbols[Group1]= [ NoSymbol, ISO_Next_Group ], + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= Alt }; key <LCTL> { type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Control_L, ISO_Next_Group ] + symbols[Group1] = [ Control_L, ISO_Next_Group ] }; }; @@ -202,12 +185,12 @@ xkb_symbols "lctrl_lalt_toggle_rev" { virtual_modifiers Alt; key <LALT> { type[Group1]="PC_CONTROL_LEVEL2", - symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], virtualMods= Alt }; key <LCTL> { type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Control_L, ISO_Prev_Group ] + symbols[Group1] = [ Control_L, ISO_Prev_Group ] }; }; @@ -216,22 +199,22 @@ xkb_symbols "rctrl_ralt_toggle" { virtual_modifiers Alt; key <RALT> { type[Group1]="PC_CONTROL_LEVEL2", - symbols[Group1]= [ NoSymbol, ISO_Next_Group ], + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= Alt }; key <RCTL> { type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Control_R, ISO_Next_Group ] + symbols[Group1] = [ Control_R, ISO_Next_Group ] }; }; -partial modifier_keys +partial modifier_keys xkb_symbols "ctrl_alt_toggle" { include "group(lctrl_lalt_toggle)" include "group(rctrl_ralt_toggle)" }; -partial modifier_keys +partial modifier_keys xkb_symbols "ctrl_alt_toggle_bidir" { include "group(lctrl_lalt_toggle_rev)" include "group(rctrl_ralt_toggle)" @@ -245,12 +228,12 @@ partial modifier_keys xkb_symbols "lalt_lshift_toggle" { virtual_modifiers Alt; key <LALT> { - symbols[Group1]= [ NoSymbol, ISO_Next_Group ], + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= Alt }; key <LFSH> { type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Shift_L, ISO_Next_Group ] + symbols[Group1] = [ Shift_L, ISO_Next_Group ] }; }; @@ -258,12 +241,12 @@ partial modifier_keys xkb_symbols "lalt_lshift_toggle_rev" { virtual_modifiers Alt; key <LALT> { - symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], virtualMods= Alt }; key <LFSH> { type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Shift_L, ISO_Prev_Group ] + symbols[Group1] = [ Shift_L, ISO_Prev_Group ] }; }; @@ -271,187 +254,186 @@ partial modifier_keys xkb_symbols "ralt_rshift_toggle" { virtual_modifiers Alt; key <RALT> { - symbols[Group1]= [ NoSymbol, ISO_Next_Group ], + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= Alt }; key <RTSH> { type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Shift_R, ISO_Next_Group ] + symbols[Group1] = [ Shift_R, ISO_Next_Group ] }; }; -partial modifier_keys +partial modifier_keys xkb_symbols "alt_shift_toggle" { include "group(lalt_lshift_toggle)" include "group(ralt_rshift_toggle)" }; -partial modifier_keys +partial modifier_keys xkb_symbols "alt_shift_toggle_bidir" { include "group(lalt_lshift_toggle_rev)" include "group(ralt_rshift_toggle)" }; -// using the group(menu_toggle) map, pressing: -// Menu key toggles groups -// Shift+Menu acts as Menu +// Pressing the Menu key switches to the next group, +// while Shift+Menu acts as Menu. partial modifier_keys xkb_symbols "menu_toggle" { - key <MENU> { [ ISO_Next_Group, Menu ] }; + key <MENU> { [ ISO_Next_Group, Menu ] }; }; -// using the group(lwin_toggle) map, pressing the left Windows' logo key -// toggles groups. If you use this map, you would declare you keyboard -// as pc101 or pc102 instead of pc104 or pc105. +// Pressing the left Win key switches to the next group. +// (Using this map, you should declare your keyboard as +// pc101 or pc102 instead of pc104 or pc105.) partial modifier_keys xkb_symbols "lwin_toggle" { - virtual_modifiers AltGr; - key <LWIN> { - virtualMods= AltGr, - symbols[Group1] = [ ISO_Next_Group ] + virtual_modifiers AltGr; + key <LWIN> { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Next_Group ] }; }; -// using the group(rwin_toggle) map, pressing the right Windows' logo key -// toggles groups. If you use this map, you would declare you keyboard -// as pc101 or pc102 instead of pc104 or pc105. +// Pressing the right Win key switches to the next group. +// (Using this map, you should declare your keyboard as +// pc101 or pc102 instead of pc104 or pc105.) partial modifier_keys xkb_symbols "rwin_toggle" { - virtual_modifiers AltGr; - key <RWIN> { - virtualMods= AltGr, - symbols[Group1] = [ ISO_Next_Group ] + virtual_modifiers AltGr; + key <RWIN> { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Next_Group ] }; }; -// Both Ctrls pressed together toggle group +// Pressing both Ctrl keys switches to the next or previous group +// (depending on which Ctrl is pressed first). partial modifier_keys xkb_symbols "ctrls_toggle" { - virtual_modifiers LControl, RControl; + virtual_modifiers LControl, RControl; key <LCTL> { - type[Group1]="PC_RCONTROL_LEVEL2", - symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], - virtualMods= LControl + type[Group1]="PC_RCONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], + virtualMods= LControl }; key <RCTL> { - type[Group1]="PC_LCONTROL_LEVEL2", - symbols[Group1]= [ NoSymbol, ISO_Next_Group ], - virtualMods= RControl + type[Group1]="PC_LCONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= RControl }; }; -// Both Alts pressed together toggle group +// Pressing both Alt keys switches to the next or previous group +// (depending on which Alt is pressed first). partial modifier_keys xkb_symbols "alts_toggle" { - virtual_modifiers LAlt, RAlt; + virtual_modifiers LAlt, RAlt; key <LALT> { - type[Group1]="PC_RALT_LEVEL2", - symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], - virtualMods= LAlt + type[Group1]="PC_RALT_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], + virtualMods= LAlt }; key <RALT> { - type[Group1]="PC_LALT_LEVEL2", - symbols[Group1]= [ NoSymbol, ISO_Next_Group ], - virtualMods= RAlt + type[Group1]="PC_LALT_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= RAlt }; }; -// Left Shift key toggles group +// Pressing the left Shift key switches to the next group. partial modifier_keys xkb_symbols "lshift_toggle" { - virtual_modifiers AltGr; - key <LFSH> { - symbols[Group1]= [ ISO_Next_Group ], - virtualMods= AltGr + virtual_modifiers AltGr; + key <LFSH> { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr }; }; -// Right Shift key toggles group +// Pressing the right Shift key switches to the next group. partial modifier_keys xkb_symbols "rshift_toggle" { - virtual_modifiers AltGr; - key <RTSH> { - symbols[Group1]= [ ISO_Next_Group ], - virtualMods= AltGr + virtual_modifiers AltGr; + key <RTSH> { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr }; }; -// Left Alt key toggles group +// Pressing the left Alt key switches to the next group. partial modifier_keys xkb_symbols "lalt_toggle" { - virtual_modifiers AltGr; - key <LALT> { - symbols[Group1]= [ ISO_Next_Group ], - virtualMods= AltGr + virtual_modifiers AltGr; + key <LALT> { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr }; }; -// Left Ctrl key toggles group +// Pressing the left Ctrl key switches to the next group. partial modifier_keys xkb_symbols "lctrl_toggle" { - virtual_modifiers AltGr; - key <LCTL> { - symbols[Group1]= [ ISO_Next_Group ], - virtualMods= AltGr + virtual_modifiers AltGr; + key <LCTL> { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr }; }; -// Right Ctrl key toggles group +// Pressing the right Ctrl key switches to the next group. partial modifier_keys xkb_symbols "rctrl_toggle" { - virtual_modifiers AltGr; - key <RCTL> { - symbols[Group1]= [ ISO_Next_Group ], - virtualMods= AltGr + virtual_modifiers AltGr; + key <RCTL> { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr }; }; -// using the group(alt_caps_toggle) map, pressing: -// Alt+Caps Lock toggles group -// Caps Lock toggles caps lock +// Pressing Alt+Caps_Lock switches to the next group, +// pressing Caps_Lock toggles CapsLock. partial modifier_keys xkb_symbols "alt_caps_toggle" { - key <CAPS> { + key <CAPS> { type="PC_ALT_LEVEL2", - symbols[Group1]= [ Caps_Lock, ISO_Next_Group] + symbols[Group1] = [ Caps_Lock, ISO_Next_Group ] }; }; partial hidden modifier_keys xkb_symbols "olpc" { - key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] }; + key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] }; }; partial modifier_keys xkb_symbols "alt_space_toggle" { key <SPCE> { - type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ space, ISO_Next_Group ] + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ space, ISO_Next_Group ] }; }; -// using the group(sclk_toggle) map, pressing the Scroll Lock key -// toggles groups. +// Pressing the Scroll Lock key switches to the next group, partial modifier_keys xkb_symbols "sclk_toggle" { - virtual_modifiers AltGr; - key <SCLK> { - virtualMods= AltGr, - symbols[Group1] = [ ISO_Next_Group ] + virtual_modifiers AltGr; + key <SCLK> { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Next_Group ] }; }; -// Control_L+Win_L locks the first group (presumably Lat). -// Control_R+Menu locks the second group (presumably Rus). +// Control_L+Win_L selects the first group (presumably Lat), +// Control_R+Menu selects the second group (presumably Rus). partial modifier_keys xkb_symbols "lctrl_lwin_rctrl_menu" { key <LWIN> { - type[ Group1 ] = "PC_CONTROL_LEVEL2", - symbols[ Group1 ] = [ Super_L, ISO_First_Group ] + type[Group1] = "PC_CONTROL_LEVEL2", + symbols[Group1] = [ Super_L, ISO_First_Group ] }; key <MENU> { - type[ Group1 ] = "PC_CONTROL_LEVEL2", - symbols[ Group1 ] = [ Menu, ISO_Last_Group ] + type[Group1] = "PC_CONTROL_LEVEL2", + symbols[Group1] = [ Menu, ISO_Last_Group ] }; -}; // lctrl_lwin_rctrl_menu +}; diff --git a/xorg-server/xkeyboard-config/symbols/hr b/xorg-server/xkeyboard-config/symbols/hr index bda2afd22..1ec0c809a 100644 --- a/xorg-server/xkeyboard-config/symbols/hr +++ b/xorg-server/xkeyboard-config/symbols/hr @@ -13,7 +13,7 @@ xkb_symbols "basic" { key <AB10> { [ minus, underscore, dead_belowdot, dead_abovedot ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "us" { name[Group1]= "Croatian (US keyboard with Croatian letters)"; @@ -48,7 +48,7 @@ xkb_symbols "us" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "alternatequotes" { name[Group1]= "Croatian (use guillemets for quotes)"; @@ -56,7 +56,7 @@ xkb_symbols "alternatequotes" { include "rs(latinalternatequotes)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "unicode" { name[Group1]= "Croatian (use Croatian digraphs)"; @@ -64,7 +64,7 @@ xkb_symbols "unicode" { include "rs(latinunicode)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "unicodeus" { name[Group1]= "Croatian (US keyboard with Croatian digraphs)"; diff --git a/xorg-server/xkeyboard-config/symbols/hu b/xorg-server/xkeyboard-config/symbols/hu index 75b17fee5..e743360a3 100644 --- a/xorg-server/xkeyboard-config/symbols/hu +++ b/xorg-server/xkeyboard-config/symbols/hu @@ -353,7 +353,7 @@ hidden partial keypad_keys xkb_symbols "def_dot" { key <KPDL> { [ KP_Delete, KP_Decimal ] }; }; - + // def_dead: // Dead keys support part @@ -398,6 +398,7 @@ hidden partial alphanumeric_keys xkb_symbols "def_common" { key <AD01> { [ q, Q, backslash ] }; key <AD02> { [ w, W, bar ] }; + key <AD03> { [ e, E, Adiaeresis ] }; key <AD07> { [ u, U, EuroSign ] }; key <AD08> { [ i, I, Iacute, iacute ] }; key <AD09> { [ o, O, doublelowquotemark ] }; diff --git a/xorg-server/xkeyboard-config/symbols/ie b/xorg-server/xkeyboard-config/symbols/ie index 48f7232f0..0830fede4 100644 --- a/xorg-server/xkeyboard-config/symbols/ie +++ b/xorg-server/xkeyboard-config/symbols/ie @@ -86,7 +86,7 @@ xkb_symbols "basic" { key <AC10> { [ semicolon, colon, ellipsis, doubledagger ] }; key <AC11> { [ apostrophe, at, ae, AE ] }; key <BKSL> { [ numbersign, asciitilde, guillemotleft, guillemotright ] }; - + // // \ZXCVBNM,./ @@ -401,7 +401,7 @@ xkb_symbols "ogam_is434" { // Also overcomes annoying use of Scroll Lock LED inherited from // US symbols but not relevant here since we're not changing group. key <SCLK> {type[Group1] = "ONE_LEVEL", [ Shift_Lock ] }; - modifier_map Shift { Shift_Lock }; + modifier_map Shift { Shift_Lock }; include "compose(rwin)" }; diff --git a/xorg-server/xkeyboard-config/symbols/il b/xorg-server/xkeyboard-config/symbols/il index fa7564fb5..a1f615c62 100644 --- a/xorg-server/xkeyboard-config/symbols/il +++ b/xorg-server/xkeyboard-config/symbols/il @@ -43,12 +43,12 @@ xkb_symbols "basic" { key <AB09> { [ hebrew_finalzade, less ] }; key.type[Group1] = "THREE_LEVEL"; - + key <TLDE> { [ semicolon, asciitilde,0x10005b0 ]}; // Sheva key <AB10> { [ period, question, 0x10005c3 ]}; // Sof Pasuq key <AD03> { [ hebrew_qoph, E, EuroSign ]}; key <AC01> { [ hebrew_shin, A, 0x10020AA ]}; - + // The following may get overriden by the iso9995-3(basic101) symbols. // therefore they are included here. // Including them isn't a great idea (for instance: what if group 1 uses @@ -67,11 +67,11 @@ xkb_symbols "basic" { key <AE10> { [ 0, parenleft , 0x10005c1 ]}; // Shin dot key <AE11> { [ minus, underscore , 0x10005b9 ]}; // Holam key <AE12> { [ equal, plus , 0x10005bc ]}; // Dagesh/Shuruq - + // Mirrored: key <AD11> { [ bracketright, braceright, 0x10005bf ]}; // Rafe key <AD12> { [ bracketleft, braceleft, 0x10005bd ]}; // Meteg - + key <BKSL> { [ backslash, bar, 0x10005bb ]}; // Qubuts include "level3(ralt_switch)" @@ -79,7 +79,7 @@ xkb_symbols "basic" { // nikud patter based on Dekel Tsur's Hebrew mapping for LyX -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "lyx" { name[Group1]= "Hebrew (lyx)"; @@ -103,7 +103,7 @@ xkb_symbols "lyx" { key <AC01> { [ hebrew_shin, 0x10005b0 ] }; // Sheva key <AC02> { [ hebrew_dalet, 0x10005bc ] }; // Dagesh/Shuruq key <AC03> { [ hebrew_gimel, hebrew_gimel ] }; - key <AC04> { [ hebrew_kaph, hebrew_kaph ] }; + key <AC04> { [ hebrew_kaph, hebrew_kaph ] }; key <AC05> { [ hebrew_ayin, 0x10005c2 ] }; // Sin dot key <AC06> { [ hebrew_yod, 0x10005c1 ] }; // Shin dot key <AC07> { [ hebrew_chet, 0x10005b4 ] }; // Hiriq @@ -136,13 +136,13 @@ xkb_symbols "lyx" { key <AE08> { [ 8, asterisk ]}; key <AE09> { [ 9, parenright ]}; key <AE10> { [ 0, parenleft ]}; - + key <AE11> { [ minus , 0x10005be ] }; // H. Hiphen key <AE12> { [ equal , plus ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "phonetic" { // uses the phonetic layout from old Slackware 'il.map' file @@ -199,7 +199,7 @@ xkb_symbols "phonetic" { // layout below does not include 'il(basic)' but redoes the _whole_ thing from // scratch. -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "biblical" { name[Group1]= "Hebrew (Biblical, Tiro)"; key.type = "FOUR_LEVEL_SEMIALPHABETIC"; @@ -267,7 +267,7 @@ xkb_symbols "biblical" { // The layout corresponds phonetically to a US standard layout or similar (Qwerty). // If you are using an actual Hebrew keyboard, you are probably better off using a Tiro compliant scholarly layout // This linux port created and maintained by Dennis Meulensteen, dennis@meulensteen.nl -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "biblicalSIL" { name[Group1]= "Hebrew (Biblical, SIL phonetic)"; key.type = "FOUR_LEVEL_SEMIALPHABETIC"; diff --git a/xorg-server/xkeyboard-config/symbols/in b/xorg-server/xkeyboard-config/symbols/in index 68f63e528..fdf008887 100644 --- a/xorg-server/xkeyboard-config/symbols/in +++ b/xorg-server/xkeyboard-config/symbols/in @@ -1,6 +1,6 @@ // This layout includes all Indian layouts, including: // - Devanagari (Hindi, Marathi, Sanskrit) -// - Bengali +// - Bangla // - Gujarati // - Kannada // - Malayalam @@ -12,12 +12,12 @@ // Links: // - Indic INSCRIPT keyboard layout diagrams: // http://java.sun.com/products/jfc/tsc/articles/InputMethod/indiclayout.html -// - Bengali Baishakhi (Bengali layouts): -// - Bengali Baishakhi Inscript (Bengali layouts): -// - Bengali Bornona (Bengali layouts): -// - Uni Gitanjali (Bengali layouts): +// - Bangla Baishakhi (Bangla layouts): +// - Bangla Baishakhi Inscript (Bangla layouts): +// - Bangla Bornona (Bangla layouts): +// - Uni Gitanjali (Bangla layouts): // http://nltr.org -// - Ekusheyr Shadhinota (Bengali layouts): +// - Ekusheyr Shadhinota (Bangla layouts): // http://ekushey.org/projects/shadhinota/index.html // - Microsoft Windows XP SP2: Indic Language Standards - an Introduction: // http://www.bhashaindia.com/MSProducts/XpSp2/Articles/IndicLanguageStandards.aspx @@ -135,9 +135,9 @@ xkb_symbols "bolnagri" { key <AD08> { [ U093F, U0940, U0907, U0908 ] }; // I: i, ii matras key <AD09> { [ U094B, U094C, U0913, U0914 ] }; // O: o, au matras key <AD10> { [ U092A, U092B ] }; // P: pa, pha - key <AD11> { [ bracketleft, braceleft ] }; + key <AD11> { [ bracketleft, braceleft ] }; key <AD12> { [ bracketright, braceright ] }; - + //A Row key <AC01> { [ U093E, U0906, U0905, U0906 ] }; // A: aa, full A, AA key <AC02> { [ U0938, U0937 ] }; // S: sa, ssa @@ -148,7 +148,7 @@ xkb_symbols "bolnagri" { key <AC07> { [ U091C, U091D ] }; // J: ja, jha key <AC08> { [ U0915, U0916 ] }; // K: ka, kha key <AC09> { [ U0932, U0933, U0962, U090C ] }; // L: la, vocalic L or lru matra - key <AC10> { [ semicolon, colon ] }; + key <AC10> { [ semicolon, colon ] }; key <AC11> { [apostrophe, quotedbl ] }; //Z Row @@ -176,7 +176,7 @@ xkb_symbols "bolnagri" { partial alphanumeric_keys xkb_symbols "ben" { - name[Group1]= "Bengali (India)"; + name[Group1]= "Bangla (India)"; // Mainly numbers. key <AE01> { [ U09E7 ] }; @@ -244,7 +244,7 @@ xkb_symbols "ben" { }; xkb_symbols "ben_probhat" { - name[Group1]= "Bengali (India, Probhat)"; + name[Group1]= "Bangla (India, Probhat)"; key <ESC> { [ Escape ] }; // numbers @@ -318,10 +318,10 @@ xkb_symbols "ben_probhat" { include "rupeesign(4)" }; -// Bengali Baishakhi, Bengali Baishakhi Inscript, Bengali Bornona, Uni Gitanjali Layouts are added by Promathesh Mandal <promathesh812004@gmail.com> +// Bangla Baishakhi, Bangla Baishakhi Inscript, Bangla Bornona, Uni Gitanjali Layouts are added by Promathesh Mandal <promathesh812004@gmail.com> xkb_symbols "ben_baishakhi" { - name[Group1]= "Bengali (India, Baishakhi)"; + name[Group1]= "Bangla (India, Baishakhi)"; key <ESC> { [ Escape ] }; // numbers @@ -398,7 +398,7 @@ xkb_symbols "ben_baishakhi" { }; xkb_symbols "ben_inscript" { - name[Group1]= "Bengali (India, Baishakhi Inscript)"; + name[Group1]= "Bangla (India, Baishakhi Inscript)"; // Mainly numbers. key <TLDE> { [ 0x100200D, 0x100200C ] }; @@ -464,7 +464,7 @@ xkb_symbols "ben_inscript" { }; xkb_symbols "ben_gitanjali" { - name[Group1]= "Bengali (India, Uni Gitanjali)"; + name[Group1]= "Bangla (India, Uni Gitanjali)"; key <ESC> { [ Escape ] }; // numbers @@ -542,7 +542,7 @@ xkb_symbols "ben_gitanjali" { xkb_symbols "ben_bornona" { - name[Group1]= "Bengali (India, Bornona)"; + name[Group1]= "Bangla (India, Bornona)"; key <ESC> { [ Escape ] }; // numbers @@ -616,7 +616,7 @@ xkb_symbols "ben_bornona" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "guj" { name[Group1]= "Gujarati"; @@ -683,7 +683,7 @@ xkb_symbols "guj" { include "level3(ralt_switch)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "kan" { // Inscript layout for Kannada @@ -719,7 +719,7 @@ xkb_symbols "kan" { key <AD10> { [ U0c9c, U0c9d ] }; key <AD11> { [ U0ca1, U0ca2 ] }; key <AD12> { [ U0cbc, U0c9e ] }; - + key <AC01> { [ U0ccb, U0c93 ] }; key <AC02> { [ U0cc7, U0c8f ] }; key <AC03> { [ U0ccd, U0c85 ] }; @@ -757,13 +757,13 @@ xkb_symbols "kan" { // Date : Sat Aug 17 21:10:48 IST 2002 // Mapping: -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mal" { name[Group1] = "Malayalam"; //From grave to backslash (\) - + key <TLDE> { [ U0d4a , U0d12 ] }; // svu: @@ -771,7 +771,7 @@ xkb_symbols "mal" { // but the digits are replaced with the ones from 'mal_plusnum' - // for the integrity of all Indian layouts // -// key <AE01> { [1 , exclam ] }; +// key <AE01> { [1 , exclam ] }; // key <AE02> { [2 , at ] }; // key <AE03> { [3 , numbersign ] }; // key <AE04> { [4 , dollar ] }; @@ -797,9 +797,9 @@ xkb_symbols "mal" { key <AE12> { [ U0d43 , U0d0b ] }; key <BKSL> { [U0200c, U05C ]};//bksl: ZWNJ - + // From 'q' to right bracket (]) - + key <AD01> { [ U0d4c , U0d14 ] }; key <AD02> { [ U0d48 , U0d10 ] }; key <AD03> { [ U0d3e , U0d06 ] }; @@ -814,7 +814,7 @@ xkb_symbols "mal" { key <AD12> { [ U0200d , U0d1e ] }; // From 'a' to apostrophe (') - + key <AC01> { [ U0d4b , U0d13 ] }; key <AC02> { [ U0d47 , U0d0f ] }; key <AC03> { [ U0d4d , U0d05 ] }; @@ -826,9 +826,9 @@ xkb_symbols "mal" { key <AC09> { [ U0d24 , U0d25 ] }; key <AC10> { [ U0d1a , U0d1b ] }; key <AC11> { [ U0d1f , U0d20 ] }; - + // From 'z' to slash (/) - + key <AB01> { [ U0d46 , U0d0e ] }; key <AB02> { [ U0d02 , U200b ] };//X:ZWSP key <AB03> { [ U0d2e , U0d23 ] }; @@ -884,7 +884,7 @@ xkb_symbols "mal_lalitha" { key <AD10> { [ U0D2A ] }; // P: pa key <AD11> { [ bracketleft, braceleft ] };//braceleft: key <AD12> { [ bracketright, braceright ] };//braceright: - + //A Row key <AC01> { [ U0D3E, U0D05, U0D06, U0D05 ] }; // A: a,aa key <AC02> { [ U0D38, U0D37 ] }; // S: sa, ssa @@ -895,7 +895,7 @@ xkb_symbols "mal_lalitha" { key <AC07> { [ U0D1C, U0D1D ] }; // J: ja, jha key <AC08> { [ U0D15, U0D16 ] }; // K: ka, kha key <AC09> { [ U0D32, U0D33 ] }; // L: la, vocalic L or lru matra` - key <AC10> { [ semicolon, colon ] }; + key <AC10> { [ semicolon, colon ] }; key <AC11> { [apostrophe, quotedbl ] }; //Z Row @@ -919,14 +919,14 @@ xkb_symbols "mal_lalitha" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "ori" { // Inscript layout for Oriya // Author: G Karunakar <karunakar@freedomink.org> // Date: Wed Nov 13 18:16:19 IST 2002 name[Group1]= "Oriya"; - + key <AE01> { [ U0b67 ] }; key <AE02> { [ U0b68 ] }; key <AE03> { [ U0b69 ] }; @@ -952,7 +952,7 @@ xkb_symbols "ori" { key <AD10> { [ U0b1c, U0b1d ] }; key <AD11> { [ U0b21, U0b22 ] }; key <AD12> { [ U0b3c, U0b1e ] }; - + key <AC01> { [ U0b4b, U0b13 ] }; key <AC02> { [ U0b47, U0b0f ] }; key <AC03> { [ U0b4d, U0b05 ] }; @@ -964,7 +964,7 @@ xkb_symbols "ori" { key <AC09> { [ U0b24, U0b25 ] }; key <AC10> { [ U0b1a, U0b1b ] }; key <AC11> { [ U0b1f, U0b20 ] }; - + key <AB02> { [ U0b02, U0b01 ] }; key <AB03> { [ U0b2e, U0b23 ] }; key <AB04> { [ U0b28 ] }; @@ -985,7 +985,7 @@ xkb_symbols "ori" { // based on a keyboard map from an 'xkb/symbols/tml' file // INSCRIPT -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "tam" { name[Group1]= "Tamil"; @@ -1016,7 +1016,7 @@ xkb_symbols "tam" { // Mainly voiced consonants key <AD07> { [ U0BB9, U0B99 ] }; - key <AD10> { [ U0B9c ] }; + key <AD10> { [ U0B9c ] }; key <AD12> { [ U0B9E ] }; // Mainly short vowels @@ -1051,7 +1051,7 @@ xkb_symbols "tam" { include "rupeesign(4)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "tam_unicode" { // Description: A keymap based on the TamilNet'99 typewriter keyboard @@ -1061,7 +1061,7 @@ xkb_symbols "tam_unicode" { // Secondary contact: Sri Ramadoss M <amachu@au-kbc.org> // Date : Fri Sep 4 11:32:00 CST 2009 // Mapping: - + name[Group1]= "Tamil (Unicode)"; // granthas @@ -1105,7 +1105,7 @@ xkb_symbols "tam_unicode" { key <AC09> { [ U0B9F ] }; key <AC10> { [ U0BCD, U0B83 ] }; key <AC11> { [ U0B99 ] }; - + // Zrow key <AB01> { [ U0BA3 ] }; key <AB02> { [ U0B92, U0B93 ] }; @@ -1182,7 +1182,7 @@ xkb_symbols "tam_keyboard_with_numerals" { key <AB08> { [ U0B87, U0B88 ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "tam_TSCII" { // Description : A Tamil typewrite-style keymap @@ -1200,7 +1200,7 @@ xkb_symbols "tam_TSCII" { key <AE05> { [ 0x1000085, 0x100008a ] }; // sa key <AE06> { [ 0x1000086, 0x100008b ] }; // ha key <AE07> { [ 0x1000087, 0x100008c ] }; // ksha - + // Qrow key <AD01> { [ 0x10000bb, 0x100009a ] }; // nja key <AD02> { [ 0x10000c8, 0x10000da ] }; // Ra @@ -1226,7 +1226,7 @@ xkb_symbols "tam_TSCII" { key <AC09> { [ 0x10000bc, 0x10000ce ] }; // da key <AC10> { [ 0x10000c6, 0x10000d8 ] }; // zha key <AC11> { [ 0x10000b9, 0x1000099 ] }; // nga - + // Zrow key <AB01> { [ 0x10000bd, 0x10000cf ] }; // Na key <AB02> { [ 0x10000b4, 0x10000b5 ] }; // o, O @@ -1239,7 +1239,7 @@ xkb_symbols "tam_TSCII" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "tam_TAB" { // Description: A keymap based on the TamilNet'99 typewriter keyboard @@ -1257,7 +1257,7 @@ xkb_symbols "tam_TAB" { key <AE05> { [ 0x10000fd ] } ; key <AE06> { [ 0x10000fe ] } ; key <AE07> { [ 0x10000ff ] } ; - + // q-row key <AD01> { [ 0x10000eb, 0x10000b3 ] }; key <AD02> { [ 0x10000f8, 0x10000c1 ] }; @@ -1283,7 +1283,7 @@ xkb_symbols "tam_TAB" { key <AC09> { [ 0x10000ec, 0x10000b4 ] }; key <AC10> { [ 0x10000f6, 0x10000bf ] }; key <AC11> { [ 0x10000e9, 0x10000b1 ] }; - + // z-row key <AB01> { [ 0x10000ed, 0x10000b5 ] }; key <AB02> { [ 0x10000e5, 0x10000e6 ] }; @@ -1295,7 +1295,7 @@ xkb_symbols "tam_TAB" { key <AB08> { [ 0x10000de, 0x10000df ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "tel" { // Inscript layout for Telugu using Unicode @@ -1318,8 +1318,8 @@ xkb_symbols "tel" { key <AE10> { [ U0c66, parenright ] }; key <AE11> { [ U0c03, underscore ] }; key <AE12> { [ U0c43, U0c0b ] }; - key <BKSP> { [ BackSpace ] }; - + key <BKSP> { [ BackSpace ] }; + key <AD01> { [ U0c4c, U0c14 ] }; key <AD02> { [ U0c48, U0c10 ] }; key <AD03> { [ U0c3e, U0c06 ] }; @@ -1332,7 +1332,7 @@ xkb_symbols "tel" { key <AD10> { [ U0c1c, U0c1d ] }; key <AD11> { [ U0c21, U0c22 ] }; key <AD12> { [ U0c1e ] }; - + key <AC01> { [ U0c4b, U0c13 ] }; key <AC02> { [ U0c47, U0c0f ] }; key <AC03> { [ U0c4d, U0c05 ] }; @@ -1344,7 +1344,7 @@ xkb_symbols "tel" { key <AC09> { [ U0c24, U0c25 ] }; key <AC10> { [ U0c1a, U0c1b ] }; key <AC11> { [ U0c1f, U0c20 ] }; - + key <AB01> { [ U0c46, U0c0e ] }; key <AB02> { [ U0c02, U0c01 ] }; key <AB03> { [ U0c2e, U0c23 ] }; @@ -1364,19 +1364,19 @@ xkb_symbols "tel" { include "level3(ralt_switch)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "urd-phonetic" { include "pk(urd-phonetic)" name[Group1]= "Urdu (phonetic)"; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "urd-phonetic3" { include "pk(urd-crulp)" name[Group1]= "Urdu (alternative phonetic)"; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "urd-winkeys" { include "pk(urd-nla)" name[Group1]= "Urdu (WinKeys)"; @@ -1457,7 +1457,7 @@ xkb_symbols "guru" { // http://www.satluj.org/Jhelum.html //Modified for Inscript to make //Original Author : Amanpreet Singh Alam <apreet.alam@gmail.com - + partial alphanumeric_keys xkb_symbols "jhelum" { name[Group1] = "Punjabi (Gurmukhi Jhelum)"; @@ -1478,7 +1478,7 @@ xkb_symbols "jhelum" { key <AE11> { [ minus,underscore] }; key <AE12> { [ equal,plus] }; key <BKSL> { [ U0964,U0965,U007C,U005C] }; //pipe : danda, double danda - + //Q Row key <AD01> { [ U0A4C, U0A14 ] }; // Q: oo, ooh key <AD02> { [ U0A48, U0A10 ] }; // W: ee, ae @@ -1490,9 +1490,9 @@ xkb_symbols "jhelum" { key <AD08> { [ U0A17, U0A18, U0A5A ] }; // I:ga, gha key <AD09> { [ U0A24, U0A1F ] }; // O: ta, tha key <AD10> { [ U0A2A, U0A5E, VoidSymbol,U0A5E ] }; // P: pa, pha - key <AD11> { [ U0A21, U0A22, bracketleft, braceleft ] }; + key <AD11> { [ U0A21, U0A22, bracketleft, braceleft ] }; key <AD12> { [ U0A19, U0A1E, bracketright, braceright ] }; - + //A Row key <AC01> { [ U0A4B, U0A13 ] }; // A: o, oo key <AC02> { [ U0A47, U0A0F ] }; // S: e, ee @@ -1505,7 +1505,7 @@ xkb_symbols "jhelum" { key <AC09> { [ U0A32, U0A25, U0A33 ] }; // L: la, tha key <AC10> { [ U0A38, colon, U0A36 ] }; //; sa key <AC11> { [apostrophe, quotedbl ] }; - + //Z Row key <AB01> { [ U0A71, U0A3C ] }; // Z: addak, par bindi key <AB02> { [ U0A02, U0A70 ] }; // X: bindi, tippi @@ -1517,7 +1517,7 @@ xkb_symbols "jhelum" { key <AB08> { [ comma, U262C ] };// comma: comma, dev abbreviation sign key <AB09> { [ period, U0A74 ] }; // period: period, nukta key <AB10> { [ slash, question ] }; - + // modifier_map Shift { Shift_L }; // modifier_map Lock { Caps_Lock }; // modifier_map Control{ Control_L }; @@ -1534,15 +1534,15 @@ xkb_symbols "olpc" { key <TLDE> { [ U094A, U0912 ] }; // DEVANAGARI VOWEL SIGN SHORT O; DEVANAGARI LETTER SHORT O key <AE01> { [ U0967, U090D ] }; // DEVANAGARI DIGIT ONE; DEVANAGARI LETTER CANDRA E key <AE02> { [ U0968, U0945 ] }; // DEVANAGARI DIGIT TWO; DEVANAGARI VOWEL SIGN CANDRA E - key <AE03> { [ U0969 ] }; // DEVANAGARI DIGIT THREE; - key <AE04> { [ U096A ] }; // DEVANAGARI DIGIT FOUR; - key <AE05> { [ U096B ] }; // DEVANAGARI DIGIT FIVE; - key <AE06> { [ U096C ] }; // DEVANAGARI DIGIT SIX; - key <AE07> { [ U096D ] }; // DEVANAGARI DIGIT SEVEN; - key <AE08> { [ U096E ] }; // DEVANAGARI DIGIT EIGHT; - key <AE09> { [ U096F, parenleft ] }; // DEVANAGARI DIGIT NINE; - key <AE10> { [ U0966, parenright ] }; // DEVANAGARI DIGIT ZERO; - key <AE11> { [ minus, U0903 ] }; // DEVANAGARI SIGN VISARGA; + key <AE03> { [ U0969 ] }; // DEVANAGARI DIGIT THREE; + key <AE04> { [ U096A ] }; // DEVANAGARI DIGIT FOUR; + key <AE05> { [ U096B ] }; // DEVANAGARI DIGIT FIVE; + key <AE06> { [ U096C ] }; // DEVANAGARI DIGIT SIX; + key <AE07> { [ U096D ] }; // DEVANAGARI DIGIT SEVEN; + key <AE08> { [ U096E ] }; // DEVANAGARI DIGIT EIGHT; + key <AE09> { [ U096F, parenleft ] }; // DEVANAGARI DIGIT NINE; + key <AE10> { [ U0966, parenright ] }; // DEVANAGARI DIGIT ZERO; + key <AE11> { [ minus, U0903 ] }; // DEVANAGARI SIGN VISARGA; key <AE12> { [ U0943, U090B ] }; // DEVANAGARI VOWEL SIGN VOCALIC R; DEVANAGARI LETTER VOCALIC R key <AD01> { [ U094C, U0914 ] }; // DEVANAGARI VOWEL SIGN AU; DEVANAGARI LETTER AU @@ -1591,7 +1591,7 @@ xkb_symbols "olpc" { include "level3(ralt_switch)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "hin-wx" { name[Group1]= "Hindi (Wx)"; @@ -1678,13 +1678,13 @@ xkb_symbols "eng" { // Comment : Based on the Inscript Keyboard created by M Baiju // Mapping: -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mal_enhanced" { name[Group1] = "Malayalam (enhanced Inscript with Rupee Sign)"; //From grave to backslash (\) - + key <TLDE> { [ U0d4a , U0d12 ] }; key <AE01> { [ U0d67 , exclam ] }; key <AE02> { [ U0d68 , at ] }; @@ -1703,7 +1703,7 @@ xkb_symbols "mal_enhanced" { // From 'q' to right bracket (]) - + key <AD01> { [ U0d57 , U0d14 ] }; key <AD02> { [ U0d48 , U0d10 ] }; key <AD03> { [ U0d3e , U0d06 ] }; @@ -1718,7 +1718,7 @@ xkb_symbols "mal_enhanced" { key <AD12> { [ U0200d , U0d1e ] }; // From 'a' to apostrophe (') - + key <AC01> { [ U0d4b , U0d13 ] }; key <AC02> { [ U0d47 , U0d0f ] }; key <AC03> { [ U0d4d , U0d05 ] }; @@ -1730,9 +1730,9 @@ xkb_symbols "mal_enhanced" { key <AC09> { [ U0d24 , U0d25 ] }; key <AC10> { [ U0d1a , U0d1b ] }; key <AC11> { [ U0d1f , U0d20 ] }; - + // From 'z' to slash (/) - + key <AB01> { [ U0d46 , U0d0e ] }; key <AB02> { [ U0d02 , U0d7a ] }; key <AB03> { [ U0d2e , U0d23 ] }; diff --git a/xorg-server/xkeyboard-config/symbols/inet b/xorg-server/xkeyboard-config/symbols/inet index 839439a96..fe21f1ed7 100644 --- a/xorg-server/xkeyboard-config/symbols/inet +++ b/xorg-server/xkeyboard-config/symbols/inet @@ -1,8 +1,8 @@ -// EAK (Easy Access, Internet, Multimedia, PDA) keyboards +// EAK (Easy Access keyboards: Internet, Multimedia, PDA) // Copyright (C) 2002 Stanislav Brabec <sbrabec@suse.cz> // -// Based on LinEAK project -// LinEAK - Linux support for Easy Access and Internet Keyboards +// Based on the LinEAK project. +// LinEAK - Linux support for Easy Access and Internet Keyboards // Copyright (C) 2001, 2002 Mark Smulders <Mark@PIRnet.nl> // Usage in XF86Config: @@ -13,28 +13,25 @@ // Simple command line usage: // setxkbmap 'my_kb_layout' -variant 'my_kb_variant' -model 'my_eak_type' -// All keyboards listed here should be also mentioned in -// rules/base, base.lst and base.xml. - -// Very common set of media keys +// Very common set of media keys. partial hidden alphanumeric_keys xkb_symbols "media_common" { - key <I01> { [ XF86AudioMedia ] }; + key <I01> { [ XF86AudioMedia ] }; key <I10> { [ XF86AudioPrev ] }; key <I19> { [ XF86AudioNext ] }; key <I20> { [ XF86AudioMute ] }; key <I22> { [ XF86AudioPlay, XF86AudioPause ] }; key <I24> { [ XF86AudioStop, XF86Eject ] }; - key <I2E> { [ XF86AudioLowerVolume ] }; + key <I2E> { [ XF86AudioLowerVolume ] }; key <I30> { [ XF86AudioRaiseVolume ] }; key <K5A> { [ XF86Eject ] }; key <K6C> { [ XF86Eject ] }; }; -// popular web navigation combination +// Popular web navigation keys. partial hidden alphanumeric_keys xkb_symbols "nav_common" { - key <I21> { [ XF86Calculator ] }; + key <I21> { [ XF86Calculator ] }; key <I32> { [ XF86WWW ] }; key <I65> { [ XF86Search ] }; key <I66> { [ XF86Favorites ] }; @@ -44,7 +41,7 @@ xkb_symbols "nav_common" { key <I6A> { [ XF86Back ] }; key <I6B> { [ XF86MyComputer ] }; key <I6C> { [ XF86Mail ] }; - key <I6D> { [ XF86AudioMedia ] }; + key <I6D> { [ XF86AudioMedia ] }; }; // ACPI Standard @@ -58,7 +55,7 @@ xkb_symbols "acpi_common" { key <I16> { [ XF86Sleep ] }; }; -// Combined sections, for simplicity +// Combined sections, for simplicity. partial hidden alphanumeric_keys xkb_symbols "media_nav_common" { include "inet(media_common)" @@ -122,7 +119,7 @@ xkb_symbols "evdev" { key <FK20> { [ XF86AudioMicMute ] }; -// key <I120> { [ ] }; // KEY_MACRO +// key <I120> { [ ] }; // KEY_MACRO key <I126> { [ plusminus ] }; key <I128> { [ XF86LaunchA ] }; key <I147> { [ XF86MenuKB ] }; @@ -139,8 +136,8 @@ xkb_symbols "evdev" { key <I158> { [ XF86WWW ] }; key <I159> { [ XF86DOS ] }; key <I160> { [ XF86ScreenSaver ] }; -// key <I161> { [ ] }; // KEY_DIRECTION - key <I162> { [ XF86RotateWindows ] }; + key <I161> { [ XF86RotateWindows ] }; + key <I162> { [ XF86TaskPane ] }; key <I163> { [ XF86Mail ] }; key <I164> { [ XF86Favorites ] }; key <I165> { [ XF86MyComputer ] }; @@ -220,7 +217,7 @@ xkb_symbols "evdev" { // key <I253> { [ ] }; // KEY_DISPLAY_OFF -- turn off display // key <I254> { [ ] }; // KEY_WIMAX key <I255> { [ XF86Hibernate ] }; // KEY_HIBERNATE - + key <FK13> { [ XF86Tools ] }; key <FK14> { [ XF86Launch5 ] }; key <FK15> { [ XF86Launch6 ] }; @@ -230,6 +227,8 @@ xkb_symbols "evdev" { }; +// Acer + // Acer AirKey V partial alphanumeric_keys xkb_symbols "airkey" { @@ -299,15 +298,16 @@ xkb_symbols "acer_laptop" { key <K66> { [ XF86Launch3 ] }; // Fn+F2 (HAL) // Special Characters - // To avoid setting a precedent/ standard that will be broken in later + // To avoid setting a precedent/standard that will be broken in later // versions of HAL, these keys are commented out for now. When they are no // longer marked 'FIXME' and have saner keycodes, these two entries can be // fixed and permanently uncommented. In the meantime, just uncomment these - // to make the keys work + // to make the keys work. // key <K5D> { [ EuroSign ] }; // Euro (HAL) // key <K5E> { [ dollar ] }; // Dollar (HAL) }; + // Azona // Azona RF2300 wireless Internet Keyboard @@ -374,7 +374,6 @@ xkb_symbols "btc5113rf" { key <I32> { [ XF86Search ] }; }; - // BTC 9000 partial alphanumeric_keys xkb_symbols "btc9000" { @@ -444,7 +443,8 @@ xkb_symbols "btc9019u" { key <I02> { [ XF86HomePage ] }; }; -// Cherry Blue Line + +// Cherry // Cherry Blue Line CyBo@rd partial alphanumeric_keys @@ -509,7 +509,7 @@ xkb_symbols "cherrycyboard" { }; // Cherry CyMotion Expert -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "cherrycmexpert" { include "inet(cherryblueb)" include "inet(acpi_common)" @@ -520,7 +520,7 @@ xkb_symbols "cherrycmexpert" { // Chicony // Chicony Internet Keyboard -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "chicony" { include "inet(acpi_common)" key <I12> { [ XF86AudioMute ] }; @@ -542,7 +542,7 @@ xkb_symbols "chicony" { }; // Chicony KU-0108 -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "chicony0108" { include "inet(cherrycyboard)" }; @@ -592,7 +592,7 @@ xkb_symbols "compaqeak8" { }; // Compaq Internet Keyboard (7 keys) -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "compaqik7" { key <I12> { [ XF86LightBulb ] }; key <I1E> { [ XF86Mail ] }; @@ -630,7 +630,6 @@ xkb_symbols "compaqik18" { key <I68> { [ Print ] }; }; - // Laptop/notebook Compaq (eg. Armada, Evo) Laptop Keyboard partial alphanumeric_keys xkb_symbols "armada" { @@ -639,9 +638,9 @@ xkb_symbols "armada" { key <I1E> { [ XF86Mail ] }; key <I1F> { [ XF86HomePage ] }; key <I23> { [ XF86WWW ] }; - key <I59> { [ XF86Launch2 ] }; // Battery Monitor + key <I59> { [ XF86Launch2 ] }; // Battery Monitor key <I6F> { [ XF86AudioMedia ] }; - key <I75> { [ XF86Launch0 ] }; // Info Center + key <I75> { [ XF86Launch0 ] }; // Info Center }; // Laptop/notebook Compaq (eg. Presario) Internet Keyboard @@ -707,8 +706,8 @@ xkb_symbols "dellusbmm" { // From Olivier Lahaye <olivier dot lahaye at motorola dot com> include "inet(media_nav_acpi_common)" key <I02> { [ XF86HomePage ] }; - key <K67> { [ XF86MyComputer ] }; - key <XFER> { [ XF86AudioMedia ] }; + key <K67> { [ XF86MyComputer ] }; + key <XFER> { [ XF86AudioMedia ] }; }; @@ -751,8 +750,7 @@ xkb_symbols "genius" { key <I32> { [ XF86WWW ] }; }; - -// GeniusComfy21e +// Genius Comfy 21e partial alphanumeric_keys xkb_symbols "geniuscomfy2" { // Describes the extra keys on a Genius Comfy KB-21e-Scroll @@ -761,6 +759,7 @@ xkb_symbols "geniuscomfy2" { key <I23> { [ Return ] }; }; + // Gyration partial alphanumeric_keys @@ -781,7 +780,7 @@ xkb_symbols "gyration" { // Hewlett-Packard // Hewlett-Packard Internet Keyboard -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "hpi6" { include "inet(media_nav_acpi_common)" key <I02> { [ XF86HomePage ] }; @@ -944,9 +943,8 @@ xkb_symbols "honeywell_euroboard" { // IBM - // IBM Rapid Access -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "rapidaccess" { key <I12> { [ XF86AudioMute ] }; key <I17> { [ XF86Launch2 ] }; @@ -965,7 +963,7 @@ xkb_symbols "rapidaccess" { }; // IBM Rapid Access II -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "rapidaccess2" { include "inet(acpi_common)" key <I12> { [ XF86AudioNext ] }; @@ -999,6 +997,7 @@ xkb_symbols "ibm_spacesaver" { }; }; + // Logitech // Logitech common definitions @@ -1041,8 +1040,8 @@ xkb_symbols "logitech_set3" { partial alphanumeric_keys xkb_symbols "logiaccess" { include "inet(logitech_base)" - key <FK13> { [ XF86MailForward ] }; - key <FK14> { [ XF86Send ] }; + key <FK13> { [ XF86MailForward ] }; + key <FK14> { [ XF86Send ] }; key <I11> { [ XF86Messenger ] }; key <I12> { [ XF86WebCam ] }; }; @@ -1069,10 +1068,9 @@ partial alphanumeric_keys xkb_symbols "logiex110" { include "inet(logitech_base)" key <I2F> { [ XF86Close ] }; // Close - // Extended function keys // In the Console before starting X -// Using setkeycodes e03b 212 e03c 213 e03d 214 e03e 215 e03f 216 e040 217 +// Using setkeycodes e03b 212 e03c 213 e03d 214 e03e 215 e03f 216 e040 217 // setkeycodes e041 218 e042 219 e043 220 e044 221 e057 222 e058 223 6d 206 // *=keys that are there but need different symbol names. key <I3B> { [ Help ] }; // F1 @@ -1163,7 +1161,7 @@ xkb_symbols "logiultraxc" { key <KPDC> { [ XF86AudioRaiseVolume ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "logidinovo" { include "inet(media_nav_common)" key <I02> { [ XF86HomePage ] }; @@ -1175,7 +1173,7 @@ xkb_symbols "logidinovo" { key <XFER> { [ XF86AudioMedia ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "logidinovoedge" { include "inet(media_acpi_common)" key <I02> { [ XF86HomePage ] }; @@ -1315,39 +1313,39 @@ xkb_symbols "microsoftinet" { key <I68> { [ XF86AudioStop ] }; }; -// Microsoft Natural Keyboard Pro USB -partial alphanumeric_keys - xkb_symbols "microsoftprousb" { +// Microsoft Natural Keyboard Pro USB +partial alphanumeric_keys +xkb_symbols "microsoftprousb" { include "inet(nav_common)" - key <FK16> { [ XF86Reload ] }; - key <I01> { [ XF86AudioMedia ] }; - key <I02> { [ XF86HomePage ] }; - key <I17> { [ XF86AudioStop ] }; - key <I1E> { [ XF86AudioRaiseVolume ] }; - key <I1F> { [ XF86AudioPlay, XF86AudioPause ] }; - key <I22> { [ XF86AudioNext ] }; - key <I24> { [ XF86AudioPrev ] }; - key <I25> { [ XF86AudioLowerVolume ] }; - key <I26> { [ XF86AudioMute ] }; - key <I63> { [ XF86Standby ] }; - // Internet Section -- Left Side - // Multimedia Section -- Right Side - // My Computer Section -- Far Right - // My computer maps to printscreen, so leaving commented out for now - // key <PRSC> { [ XF86MyComputer ] }; -}; - -// Microsoft Natural Keyboard Pro OEM -partial alphanumeric_keys -xkb_symbols "microsoftprooem" { + key <FK16> { [ XF86Reload ] }; + key <I01> { [ XF86AudioMedia ] }; + key <I02> { [ XF86HomePage ] }; + key <I17> { [ XF86AudioStop ] }; + key <I1E> { [ XF86AudioRaiseVolume ] }; + key <I1F> { [ XF86AudioPlay, XF86AudioPause ] }; + key <I22> { [ XF86AudioNext ] }; + key <I24> { [ XF86AudioPrev ] }; + key <I25> { [ XF86AudioLowerVolume ] }; + key <I26> { [ XF86AudioMute ] }; + key <I63> { [ XF86Standby ] }; +// Internet Section -- Left Side +// Multimedia Section -- Right Side +// My Computer Section -- Far Right +// My computer maps to printscreen, so leaving commented out for now +// key <PRSC> { [ XF86MyComputer ] }; +}; + +// Microsoft Natural Keyboard Pro OEM +partial alphanumeric_keys +xkb_symbols "microsoftprooem" { include "inet(media_nav_common)" - key <FK17> { [ XF86Search ] }; - key <I02> { [ XF86HomePage ] }; - key <I63> { [ XF86Standby ] }; - key <K67> { [ XF86MyComputer ] }; -// Internet Section -- Left Side -// Multimedia Section -- Right Side -// My Computer Section -- Far Right + key <FK17> { [ XF86Search ] }; + key <I02> { [ XF86HomePage ] }; + key <I63> { [ XF86Standby ] }; + key <K67> { [ XF86MyComputer ] }; +// Internet Section -- Left Side +// Multimedia Section -- Right Side +// My Computer Section -- Far Right }; // Microsoft Internet Keyboard Pro, Swedish @@ -1401,28 +1399,28 @@ xkb_symbols "microsoftoffice" { key <RCTL> { [ XF86Paste ] }; }; -// Microsoft Wireless Multimedia Keyboard 1.0A -partial alphanumeric_keys -xkb_symbols "microsoftmult" { +// Microsoft Wireless Multimedia Keyboard 1.0A +partial alphanumeric_keys +xkb_symbols "microsoftmult" { include "inet(media_nav_acpi_common)" - key <AE13> { [ XF86Messenger ] }; - key <FK14> { [ XF86New ] }; - key <FK15> { [ XF86Open ] }; - key <FK16> { [ XF86Close ] }; - key <FK17> { [ XF86Reply ] }; - key <I07> { [ Redo ] }; - key <I08> { [ Undo ] }; - key <I16> { [ XF86LogOff ] }; - key <I23> { [ XF86Spell ] }; - key <I3B> { [ Help ] }; - key <I3C> { [ XF86Music ] }; - key <I42> { [ XF86Forward ] }; - key <I43> { [ XF86Send ] }; - key <I57> { [ XF86Save ] }; - key <I58> { [ Print ] }; - key <I64> { [ XF86Pictures ] }; - key <I80> { [ XF86Documents ] }; -}; + key <AE13> { [ XF86Messenger ] }; + key <FK14> { [ XF86New ] }; + key <FK15> { [ XF86Open ] }; + key <FK16> { [ XF86Close ] }; + key <FK17> { [ XF86Reply ] }; + key <I07> { [ Redo ] }; + key <I08> { [ Undo ] }; + key <I16> { [ XF86LogOff ] }; + key <I23> { [ XF86Spell ] }; + key <I3B> { [ Help ] }; + key <I3C> { [ XF86Music ] }; + key <I42> { [ XF86Forward ] }; + key <I43> { [ XF86Send ] }; + key <I57> { [ XF86Save ] }; + key <I58> { [ Print ] }; + key <I64> { [ XF86Pictures ] }; + key <I80> { [ XF86Documents ] }; +}; // Oretec @@ -1646,6 +1644,7 @@ xkb_symbols "symplon" { key <UP> { [ XF86MenuPB ] }; }; + // Toshiba // Toshiba Satellite S3000 @@ -1663,6 +1662,7 @@ xkb_symbols "toshiba_s3000" { key <I76> { [ XF86AudioLowerVolume ] }; }; + // Trust // Trust Wireless Keyboard Classic @@ -1673,7 +1673,6 @@ xkb_symbols "trust" { key <I1E> { [ XF86Eject ] }; }; - // Trust Direct Access Keyboard partial alphanumeric_keys xkb_symbols "trustda" { @@ -1711,6 +1710,7 @@ xkb_symbols "yahoo" { key <I28> { [ XF86WWW ] }; }; + // Apple keyboards (macbooks, powerbooks, powermac G5, etc) partial alphanumeric_keys xkb_symbols "apple" { @@ -1751,14 +1751,15 @@ xkb_symbols "cymotionlinux" { key <XFER> { [ XF86AudioMedia ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "silvercrest" { include "inet(media_nav_acpi_common)" - key <I02> { [ XF86HomePage ] }; + key <I02> { [ XF86HomePage ] }; key <I21> { [ XF86Launch2 ] }; key <K67> { [ XF86Launch1 ] }; }; + // eMachines partial alphanumeric_keys @@ -1782,13 +1783,12 @@ xkb_symbols "emachines" { key <KPSU> { [ KP_Subtract ] }; }; + // BenQ +// BenQ X* (X730, X500, X800) // -// BenQ X* -// (X730, X500, X800) -// -// to make the FN_LOCK and CONFIG key work on the BenQ X500 , use ... +// To make the FN_LOCK and CONFIG key work on the BenQ X500 , use: // setkeycodes e074 130 # KEY_PROPS from /usr/include/linux/input.h // setkeycodes e075 171 # KEY_CONFIG from /usr/include/linux/input.h partial alphanumeric_keys @@ -1800,15 +1800,17 @@ xkb_symbols "benqx" { key <I31> { [ XF86Calendar ] }; }; + // Intel // Intel Classmate partial alphanumeric_keys xkb_symbols "classmate" { - key <I2E> { [ XF86AudioLowerVolume ] }; + key <I2E> { [ XF86AudioLowerVolume ] }; key <I30> { [ XF86AudioRaiseVolume ] }; }; + // Unitek partial alphanumeric_keys @@ -1822,6 +1824,7 @@ xkb_symbols "unitekkb1925" { key <I1A> { [ XF86Reload ] }; }; + // Creative // Creative Desktop Wireless 7000 @@ -1831,6 +1834,7 @@ xkb_symbols "creativedw7000" { key <I66> { [ XF86Pictures ] }; }; + // Compal // Compal FL90 @@ -1846,13 +1850,13 @@ xkb_symbols "pc105" { include "inet(media_nav_acpi_common)" }; + // HTC Dream partial alphanumeric_keys xkb_symbols "htcdream" { key <BKSP> { [ BackSpace ] }; key <RTRN> { [ Return ] }; - //first row key <AE01> { [ 1, 1, exclam, exclam ] }; key <AE02> { [ 2, 2, at, at ] }; key <AE03> { [ 3, 3, numbersign, numbersign ] }; @@ -1864,12 +1868,10 @@ xkb_symbols "htcdream" { key <AE09> { [ 9, 9, parenleft, parenleft ] }; key <AE10> { [ 0, 0, parenright, parenright ] }; - //fifth row key <LFSH> { [ Shift_L ] }; key <SPCE> { [ space ] }; key <AB09> { [ period, period, slash, slash ] }; key <RTSH> { [ Shift_R ] }; - //modifiers modifier_map Shift { <LFSH>, <RTSH> }; }; diff --git a/xorg-server/xkeyboard-config/symbols/ir b/xorg-server/xkeyboard-config/symbols/ir index d0a11b749..983bf60d9 100644 --- a/xorg-server/xkeyboard-config/symbols/ir +++ b/xorg-server/xkeyboard-config/symbols/ir @@ -62,7 +62,7 @@ xkb_symbols "pes_part_basic" { key <AD09> { [ Arabic_khah, bracketright, 0x100202e ] }; key <AD10> { [ Arabic_hah, bracketleft, 0x100202c ] }; key <AD11> { [ Arabic_jeem, braceright, 0x100202a ] }; - key <AD12> { [ Arabic_tcheh, braceleft, 0x100202b ] }; + key <AD12> { [ Arabic_tcheh, braceleft, 0x100202b ] }; key <AC01> { [ Arabic_sheen, Arabic_hamzaonwaw, VoidSymbol ] }; key <AC02> { [ Arabic_seen, Arabic_hamzaonyeh, VoidSymbol ] }; @@ -73,17 +73,15 @@ xkb_symbols "pes_part_basic" { key <AC07> { [ Arabic_teh, Arabic_tehmarbuta, VoidSymbol ] }; key <AC08> { [ Arabic_noon, guillemotright, 0x100fd3e ] }; key <AC09> { [ Arabic_meem, guillemotleft, 0x100fd3f ] }; - key <AC10> { [ Arabic_keheh, colon, semicolon ] }; + key <AC10> { [ Arabic_keheh, colon, semicolon ] }; key <AC11> { [ Arabic_gaf, Arabic_semicolon, quotedbl ] }; key <AB01> { [ Arabic_zah, Arabic_kaf, VoidSymbol ] }; key <AB02> { [ Arabic_tah, 0x1000653, VoidSymbol ] }; key <AB03> { [ Arabic_zain, Arabic_jeh, VoidSymbol ] }; - key <AB04> { [ Arabic_ra, Arabic_superscript_alef -, 0x1000656 ] }; + key <AB04> { [ Arabic_ra, Arabic_superscript_alef,0x1000656 ] }; key <AB05> { [ Arabic_thal, 0x100200c, 0x100200d ] }; - key <AB06> { [ Arabic_dal, Arabic_hamza_above -, Arabic_hamza_below ] }; + key <AB06> { [ Arabic_dal, Arabic_hamza_above, Arabic_hamza_below ] }; key <AB07> { [ Arabic_peh, Arabic_hamza, ellipsis ] }; key <AB08> { [ Arabic_waw, greater, comma ] }; key <AB09> { [ period, less, apostrophe ] }; @@ -169,7 +167,7 @@ xkb_symbols "ku_alt" { // // Copyright (C) 2006 Erdal Ronahî, published under the GPL v2 // -// Special copyright note: author explicitly permitted to license this +// Special copyright note: author explicitly permitted to license this // layout under MIT/X11 license, for details see // https://bugs.freedesktop.org/show_bug.cgi?id=9541 // @@ -256,51 +254,51 @@ xkb_symbols "ave" { name[Group1] = "Avestan"; - key <AB01> { [ U10B30, U10B32 ] }; // 𐬰 𐬲 - key <AB02> { [ U10B11, U10B12 ] }; // 𐬑 𐬒 - key <AB03> { [ U10B17, UE102 ] }; // 𐬗 - key <AB04> { [ U10B2C, U10B13 ] }; // 𐬬 𐬓 - key <AB05> { [ U10B20, U10B21 ] }; // 𐬠 𐬡 - key <AB06> { [ U10B25, U10B27 ] }; // 𐬥 𐬧 - key <AB07> { [ U10B28, U10B29 ] }; // 𐬨 𐬩 - key <AB08> { [ U10B3C, U10B39 ] }; // 𐬼 𐬹 - key <AB09> { [ U10B3E, U10B3D ] }; // 𐬾 𐬽 - key <AB10> { [ U10B3F, periodcentered ] }; // 𐬿 · - - key <AC01> { [ U10B00, U10B01 ] }; // 𐬀 𐬁 - key <AC02> { [ U10B2F, U10B31 ] }; // 𐬯 𐬱 - key <AC03> { [ U10B1B, U10B1C ] }; // 𐬛 𐬜 - key <AC04> { [ U10B1F, U10B16 ] }; // 𐬟 𐬖 - key <AC05> { [ U10B14, U10B15 ] }; // 𐬔 𐬕 - key <AC06> { [ U10B35, UE100 ] }; // 𐬵 - key <AC07> { [ U10B18, U10B24 ] }; // 𐬘 𐬤 - key <AC08> { [ U10B10, UE101 ] }; // 𐬐 - key <AC09> { [ U10B2E, UE103 ] }; // 𐬮 - key <AC10> { [ U10B3B, U10B3A ] }; // 𐬻 𐬺 - key <AC11> { [ U10B1D ] }; // 𐬝 - - key <AD01> { [ U10B22, U10B23 ] }; // 𐬢 𐬣 - key <AD02> { [ U10B33, U10B34 ] }; // 𐬳 𐬴 - key <AD03> { [ U10B08, U10B09 ] }; // 𐬈 𐬉 - key <AD04> { [ U10B2D, U10B26 ] }; // 𐬭 𐬦 - key <AD05> { [ U10B19, U10B1A ] }; // 𐬙 𐬚 - key <AD06> { [ U10B2B, U10B2A ] }; // 𐬫 𐬪 - key <AD07> { [ U10B0E, U10B0F ] }; // 𐬎 𐬏 - key <AD08> { [ U10B0C, U10B0D ] }; // 𐬌 𐬍 + key <AB01> { [ U10B30, U10B32 ] }; // 𐬰 𐬲 + key <AB02> { [ U10B11, U10B12 ] }; // 𐬑 𐬒 + key <AB03> { [ U10B17, UE102 ] }; // 𐬗 + key <AB04> { [ U10B2C, U10B13 ] }; // 𐬬 𐬓 + key <AB05> { [ U10B20, U10B21 ] }; // 𐬠 𐬡 + key <AB06> { [ U10B25, U10B27 ] }; // 𐬥 𐬧 + key <AB07> { [ U10B28, U10B29 ] }; // 𐬨 𐬩 + key <AB08> { [ U10B3C, U10B39 ] }; // 𐬼 𐬹 + key <AB09> { [ U10B3E, U10B3D ] }; // 𐬾 𐬽 + key <AB10> { [ U10B3F, periodcentered ] }; // 𐬿 · + + key <AC01> { [ U10B00, U10B01 ] }; // 𐬀 𐬁 + key <AC02> { [ U10B2F, U10B31 ] }; // 𐬯 𐬱 + key <AC03> { [ U10B1B, U10B1C ] }; // 𐬛 𐬜 + key <AC04> { [ U10B1F, U10B16 ] }; // 𐬟 𐬖 + key <AC05> { [ U10B14, U10B15 ] }; // 𐬔 𐬕 + key <AC06> { [ U10B35, UE100 ] }; // 𐬵 + key <AC07> { [ U10B18, U10B24 ] }; // 𐬘 𐬤 + key <AC08> { [ U10B10, UE101 ] }; // 𐬐 + key <AC09> { [ U10B2E, UE103 ] }; // 𐬮 + key <AC10> { [ U10B3B, U10B3A ] }; // 𐬻 𐬺 + key <AC11> { [ U10B1D ] }; // 𐬝 + + key <AD01> { [ U10B22, U10B23 ] }; // 𐬢 𐬣 + key <AD02> { [ U10B33, U10B34 ] }; // 𐬳 𐬴 + key <AD03> { [ U10B08, U10B09 ] }; // 𐬈 𐬉 + key <AD04> { [ U10B2D, U10B26 ] }; // 𐬭 𐬦 + key <AD05> { [ U10B19, U10B1A ] }; // 𐬙 𐬚 + key <AD06> { [ U10B2B, U10B2A ] }; // 𐬫 𐬪 + key <AD07> { [ U10B0E, U10B0F ] }; // 𐬎 𐬏 + key <AD08> { [ U10B0C, U10B0D ] }; // 𐬌 𐬍 key <AD09> { [ U10B0A, U10B0B ] }; // 𐬊 𐬋 - key <AD10> { [ U10B1E ] }; // 𐬞 - key <AD11> { [ U10B06, U10B07 ] }; // 𐬆 𐬇 - key <AD12> { [ U10B02, U10B03 ] }; // 𐬂 𐬃 - - key <AE01> { [ U10B78 ] }; // 𐭸 - key <AE02> { [ U10B79 ] }; // 𐭹 - key <AE03> { [ U10B7A ] }; // 𐭺 - key <AE04> { [ U10B7B ] }; // 𐭻 - key <AE05> { [ U10B7C ] }; // 𐭼 - key <AE06> { [ U10B7D ] }; // 𐭽 - key <AE07> { [ U10B7E ] }; // 𐭾 - key <AE08> { [ U10B7F ] }; // 𐭿 - - key <BKSL> { [ U10B04, U10B05 ] }; // 𐬄 𐬅 - key <LSGT> { [ U10B04, U10B05 ] }; // 𐬄 𐬅 + key <AD10> { [ U10B1E ] }; // 𐬞 + key <AD11> { [ U10B06, U10B07 ] }; // 𐬆 𐬇 + key <AD12> { [ U10B02, U10B03 ] }; // 𐬂 𐬃 + + key <AE01> { [ U10B78 ] }; // 𐭸 + key <AE02> { [ U10B79 ] }; // 𐭹 + key <AE03> { [ U10B7A ] }; // 𐭺 + key <AE04> { [ U10B7B ] }; // 𐭻 + key <AE05> { [ U10B7C ] }; // 𐭼 + key <AE06> { [ U10B7D ] }; // 𐭽 + key <AE07> { [ U10B7E ] }; // 𐭾 + key <AE08> { [ U10B7F ] }; // 𐭿 + + key <BKSL> { [ U10B04, U10B05 ] }; // 𐬄 𐬅 + key <LSGT> { [ U10B04, U10B05 ] }; // 𐬄 𐬅 }; diff --git a/xorg-server/xkeyboard-config/symbols/is b/xorg-server/xkeyboard-config/symbols/is index 5137e2d71..34d6bed33 100644 --- a/xorg-server/xkeyboard-config/symbols/is +++ b/xorg-server/xkeyboard-config/symbols/is @@ -125,7 +125,7 @@ xkb_symbols "mac" { key <AE11> { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; key <AE12> { [ minus, underscore, endash, emdash ] }; - + //-- Row 4 (D) --// key <AD01> { [ q, Q, paragraph, VoidSymbol ] }; key <AD02> { [ w, W, U2211, VoidSymbol ] }; @@ -139,8 +139,8 @@ xkb_symbols "mac" { key <AD10> { [ p, P, Greek_pi, Greek_PI ] }; key <AD11> { [ eth, Eth, U201e, U201c ] }; key <AD12> { [ apostrophe, question, questiondown, U00B7 ] }; - - + + //-- Row 3 (C) --// key <AC01> { [ a, A, aring, Aring ] }; key <AC02> { [ s, S, ssharp, abovedot ] }; @@ -154,8 +154,8 @@ xkb_symbols "mac" { key <AC10> { [ ae, AE, oe, OE ] }; key <AC11> { [ dead_acute, dead_diaeresis, U201A, U2018 ] }; key <BKSL> { [ plus, asterisk, U2022, plusminus ] }; - - + + //-- Row 2 (B) --// key <LSGT> { [ less, greater, section, UF8FF ] }; key <AB01> { [ z, Z, U3A9, VoidSymbol ] }; @@ -191,7 +191,7 @@ xkb_symbols "mac" { // -- Ævar Arnfjörð Bjarmason <avarab@gmail.com> // Icelandic Dvorak -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "dvorak" { name[Group1]= "Icelandic (Dvorak)"; diff --git a/xorg-server/xkeyboard-config/symbols/it b/xorg-server/xkeyboard-config/symbols/it index 3e402c98a..8a66a306a 100644 --- a/xorg-server/xkeyboard-config/symbols/it +++ b/xorg-server/xkeyboard-config/symbols/it @@ -33,6 +33,8 @@ xkb_symbols "basic" { key <LSGT> { [ less, greater,guillemotleft,guillemotright] }; + include "kpdl(comma)" + include "level3(ralt_switch)" }; @@ -175,7 +177,7 @@ xkb_symbols "us" { include "us(euro)" name[Group1]= "Italian (US keyboard with Italian letters)"; - + key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] }; key <AE01> { [ 1, exclam, onesuperior ] }; key <AE02> { [ 2, at, twosuperior ] }; diff --git a/xorg-server/xkeyboard-config/symbols/jp b/xorg-server/xkeyboard-config/symbols/jp index 189228e57..52f574623 100644 --- a/xorg-server/xkeyboard-config/symbols/jp +++ b/xorg-server/xkeyboard-config/symbols/jp @@ -101,6 +101,14 @@ xkb_symbols "common" { }; partial alphanumeric_keys +xkb_symbols "henkan" { + key <XFER> { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Henkan, Mode_switch ] + }; +}; + +partial alphanumeric_keys xkb_symbols "OADG109A" { include "jp(common)" diff --git a/xorg-server/xkeyboard-config/symbols/ke b/xorg-server/xkeyboard-config/symbols/ke index 74e8c2dd2..d58796d76 100644 --- a/xorg-server/xkeyboard-config/symbols/ke +++ b/xorg-server/xkeyboard-config/symbols/ke @@ -9,7 +9,7 @@ xkb_symbols "swa" { include "us" name[Group1]= "Swahili (Kenya)"; - + key <AC10> { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW key <AC11> { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE @@ -18,17 +18,17 @@ xkb_symbols "swa" { key <AE09> { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE key <AE10> { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON key <AE11> { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW - + include "level3(ralt_switch)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "kik" { include "us" name[Group1]= "Kikuyu"; - + key <AC10> { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW key <AC11> { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE @@ -37,6 +37,6 @@ xkb_symbols "kik" { key <AE09> { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE key <AE10> { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON key <AE11> { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW - + include "level3(ralt_switch)" }; diff --git a/xorg-server/xkeyboard-config/symbols/keypad b/xorg-server/xkeyboard-config/symbols/keypad index bc47a90e9..9b49a5773 100644 --- a/xorg-server/xkeyboard-config/symbols/keypad +++ b/xorg-server/xkeyboard-config/symbols/keypad @@ -349,7 +349,7 @@ xkb_symbols "legacynumber" { key <KP7> { [ KP_Home, KP_7 ] }; // <home> 7 key <KP8> { [ KP_Up, KP_8 ] }; // <up> 8 key <KP9> { [ KP_Prior, KP_9 ] }; // <prior> 9 - + key <KP4> { [ KP_Left, KP_4 ] }; // <left> 4 key <KP5> { [ KP_Begin, KP_5 ] }; // <begin> 5 key <KP6> { [ KP_Right, KP_6 ] }; // <right> 6 @@ -391,7 +391,7 @@ xkb_symbols "legacynumber_wang" { key <KP7> { [ KP_Home, KP_7, less ] }; // <home> 7 < key <KP8> { [ KP_Up, KP_8, greater ] }; // <up> 8 > key <KP9> { [ KP_Prior, KP_9, asciicircum ] }; // <prior> 9 ^ - + key <KP4> { [ KP_Left, KP_4, bracketleft ] }; // <left> 4 [ key <KP5> { [ KP_Begin, KP_5, bracketright ] }; // <begin> 5 ] key <KP6> { [ KP_Right, KP_6, dollar ] }; // <right> 6 $ @@ -431,7 +431,7 @@ xkb_symbols "ossnumber" { key <KP7> { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] }; // <home> 7 ↖ ⇖ key <KP8> { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] }; // <up> 8 ↑ ⇑ key <KP9> { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] }; // <prior> 9 ↗ ⇗ - + key <KP4> { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] }; // <left> 4 ← ⇐ key <KP5> { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] }; // <begin> 5 ↔ ⇔ key <KP6> { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] }; // <right> 6 → ⇒ @@ -471,7 +471,7 @@ xkb_symbols "ossnumber_wang" { key <KP7> { [ KP_Home, KP_7, less, 0x1002196 ] }; // <home> 7 < ↖ key <KP8> { [ KP_Up, KP_8, greater, 0x1002191 ] }; // <up> 8 > ↑ key <KP9> { [ KP_Prior, KP_9, asciicircum, 0x1002197 ] }; // <prior> 9 ^ ↗ - + key <KP4> { [ KP_Left, KP_4, bracketleft, 0x1002190 ] }; // <left> 4 [ ← key <KP5> { [ KP_Begin, KP_5, bracketright, 0x1002194 ] }; // <begin> 5 ] ↔ key <KP6> { [ KP_Right, KP_6, dollar, 0x1002192 ] }; // <right> 6 $ → @@ -532,7 +532,7 @@ xkb_symbols "hex" { key <KP7> { [ NoSymbol, NoSymbol, a ] }; key <KP8> { [ NoSymbol, NoSymbol, b ] }; key <KP9> { [ NoSymbol, NoSymbol, c ] }; - + // home row key <KP4> { [ NoSymbol, NoSymbol, d ] }; key <KP5> { [ NoSymbol, NoSymbol, e ] }; diff --git a/xorg-server/xkeyboard-config/symbols/kh b/xorg-server/xkeyboard-config/symbols/kh index ee58abf2f..5c1723324 100644 --- a/xorg-server/xkeyboard-config/symbols/kh +++ b/xorg-server/xkeyboard-config/symbols/kh @@ -27,7 +27,7 @@ default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Khmer (Cambodia)"; - + // there are four levels defined: // // normal shift right-alt right-alt + shift @@ -93,13 +93,13 @@ xkb_symbols "basic" { // third level with right-Alt include "level3(ralt_switch)" - + }; partial alphanumeric_keys xkb_symbols "olpc" { include "kh(basic)" - + // Contact Walter@laptop.org key <AC10> { [ 0x10017be, 0x10017c8, 0x10017d6, 0x10019f5 ] }; diff --git a/xorg-server/xkeyboard-config/symbols/kr b/xorg-server/xkeyboard-config/symbols/kr index ced9a0720..84c0effca 100644 --- a/xorg-server/xkeyboard-config/symbols/kr +++ b/xorg-server/xkeyboard-config/symbols/kr @@ -16,13 +16,13 @@ xkb_symbols "kr104" { partial hidden function_keys xkb_symbols "koreankeys" { key <K71> { [ Hangul ] }; - key <K72> { [ Hangul_Hanja ] }; + key <K72> { [ Hangul_Hanja ] }; }; partial hidden function_keys xkb_symbols "koreankeys_raltctl" { key <RALT> { [ Hangul ] }; - key <RCTL> { [ Hangul_Hanja ] }; + key <RCTL> { [ Hangul_Hanja ] }; }; // EXTRAS: diff --git a/xorg-server/xkeyboard-config/symbols/lt b/xorg-server/xkeyboard-config/symbols/lt index 8b6b80e5f..ee6b73708 100644 --- a/xorg-server/xkeyboard-config/symbols/lt +++ b/xorg-server/xkeyboard-config/symbols/lt @@ -68,7 +68,7 @@ xkb_symbols "us" { // // Made by Gediminas Paulauskas <menesis@delfi.lt> // Minor modifications by Ričardas Čepas and Rimas Kudelis - + partial alphanumeric_keys modifier_keys xkb_symbols "std" { @@ -121,7 +121,7 @@ xkb_symbols "std" { // // Made by Piter PUNK <piterpk@terra.com.br> // Minor modifications and cleanup by Rimas Kudelis, 2010 - + partial alphanumeric_keys modifier_keys xkb_symbols "ibm" { @@ -169,12 +169,12 @@ xkb_symbols "ibm" { partial alphanumeric_keys modifier_keys xkb_symbols "lekp" { - + include "capslock(backspace)" include "level3(ralt_switch)" - + name[Group1]="Lithuanian (LEKP)"; - + key <TLDE> {[ grave, asciitilde, acute ]}; key <AE01> {[ slash, numbersign, bar ]}; key <AE02> {[ backslash, at, section ]}; diff --git a/xorg-server/xkeyboard-config/symbols/mao b/xorg-server/xkeyboard-config/symbols/mao index bf3482679..cc73d25f3 100644 --- a/xorg-server/xkeyboard-config/symbols/mao +++ b/xorg-server/xkeyboard-config/symbols/mao @@ -2,7 +2,7 @@ default partial alphanumeric_keys xkb_symbols "basic" { // Adds the macrons needed for the Maori language to - // a simple us keyboard layout. + // a simple US keyboard layout. include "latin" @@ -16,6 +16,7 @@ xkb_symbols "basic" { key <AD07> { [ u, U, umacron, Umacron ] }; key <RALT> { type[Group1]="TWO_LEVEL", - [ ISO_Level3_Shift, Multi_key ] }; + [ ISO_Level3_Shift, Multi_key ] }; + modifier_map Mod5 { <RALT> }; }; diff --git a/xorg-server/xkeyboard-config/symbols/md b/xorg-server/xkeyboard-config/symbols/md index 1664da9cd..cd3430beb 100644 --- a/xorg-server/xkeyboard-config/symbols/md +++ b/xorg-server/xkeyboard-config/symbols/md @@ -29,11 +29,11 @@ xkb_symbols "basic" { partial alphanumeric_keys xkb_symbols "gag" { - + include "us(basic)" name[Group1]="Moldavian (Gagauz)"; - + key <TLDE> { [ grave, asciitilde ] }; key <AE01> { [ 1, exclam ] }; key <AE02> { [ 2, quotedbl, at ] }; @@ -47,7 +47,7 @@ xkb_symbols "gag" { key <AE10> { [ 0, parenright ] }; key <AE11> { [ minus, underscore ] }; key <AE12> { [ equal, plus ] }; - + key <AD01> { [ tcedilla, Tcedilla, q, Q ] }; key <AD02> { [ ecircumflex, Ecircumflex, w, W ] }; key <AD03> { [ e, E ] }; @@ -60,7 +60,7 @@ xkb_symbols "gag" { key <AD10> { [ p, P ] }; key <AD11> { [ odiaeresis, Odiaeresis, bracketleft, braceleft ] }; key <AD12> { [ udiaeresis, Udiaeresis, bracketright, braceright ] }; - + key <AC01> { [ a, A ] }; key <AC02> { [ s, S ] }; key <AC03> { [ d, D ] }; @@ -72,7 +72,7 @@ xkb_symbols "gag" { key <AC09> { [ l, L ] }; key <AC10> { [ scedilla, Scedilla ] }; key <AC11> { [ idotless, I, apostrophe ] }; - + key <AB01> { [ z, Z ] }; key <AB02> { [ ccedilla, Ccedilla, x, X ] }; key <AB03> { [ c, Ccedilla ] }; @@ -83,7 +83,7 @@ xkb_symbols "gag" { key <AB08> { [ adiaeresis, Adiaeresis ] }; key <AB09> { [ comma, less ] }; key <AB10> { [ period, greater, slash ] }; - + key <BKSL> { [ backslash, bar ] }; include "level3(ralt_switch)" diff --git a/xorg-server/xkeyboard-config/symbols/mk b/xorg-server/xkeyboard-config/symbols/mk index 40075848a..0903d6617 100644 --- a/xorg-server/xkeyboard-config/symbols/mk +++ b/xorg-server/xkeyboard-config/symbols/mk @@ -53,7 +53,7 @@ xkb_symbols "basic" { key <AB08> { [ comma, semicolon ] }; key <AB09> { [ period, colon ] }; key <AB10> { [ slash, question ] }; - + include "kpdl(comma)" }; diff --git a/xorg-server/xkeyboard-config/symbols/mv b/xorg-server/xkeyboard-config/symbols/mv index cb05b8b3c..e6836f3bb 100644 --- a/xorg-server/xkeyboard-config/symbols/mv +++ b/xorg-server/xkeyboard-config/symbols/mv @@ -18,7 +18,7 @@ xkb_symbols "basic" { key <AE10> { [ 0, parenright ] }; key <AE11> { [ minus, underscore ] }; key <AE12> { [ equal, plus ] }; - + key <AD01> { [ 0x10007B0, 0x10007A4 ] }; key <AD02> { [ 0x1000787, 0x10007A2 ] }; key <AD03> { [ 0x10007AC, 0x10007AD ] }; diff --git a/xorg-server/xkeyboard-config/symbols/ng b/xorg-server/xkeyboard-config/symbols/ng index ea1fca278..ccd9d81ce 100644 --- a/xorg-server/xkeyboard-config/symbols/ng +++ b/xorg-server/xkeyboard-config/symbols/ng @@ -15,8 +15,8 @@ xkb_symbols "yoruba" { name[Group1]= "Yoruba"; key <AD01> { [ 0x01001EB9, 0x01001EB8, q, Q ] }; - key <AB02> { [ 0x01001ECD, 0x01001ECC, x, X ] }; - key <AB04> { [ 0x01001E63, 0x01001E62, v, V ] }; + key <AB02> { [ 0x01001ECD, 0x01001ECC, x, X ] }; + key <AB04> { [ 0x01001E63, 0x01001E62, v, V ] }; }; partial alphanumeric_keys @@ -26,7 +26,7 @@ xkb_symbols "igbo" { name[Group1]= "Igbo"; key <AD01> { [ 0x01001ECB, 0x01001ECA, q, Q ] }; - key <AB02> { [ 0x01001E45, 0x01001E44, x, X ] }; + key <AB02> { [ 0x01001E45, 0x01001E44, x, X ] }; key <AC10> { [ 0x01001EE5, 0x01001EE4, semicolon, colon ] }; key <AD11> { [ 0x01001ECD, 0x01001ECC, bracketleft, braceleft ] }; }; diff --git a/xorg-server/xkeyboard-config/symbols/nl b/xorg-server/xkeyboard-config/symbols/nl index ff60dbba7..1dde405f8 100644 --- a/xorg-server/xkeyboard-config/symbols/nl +++ b/xorg-server/xkeyboard-config/symbols/nl @@ -49,6 +49,8 @@ xkb_symbols "basic" { key <LSGT> { [bracketright, bracketleft, bar, brokenbar ] }; + include "kpdl(comma)" + include "level3(ralt_switch)" }; @@ -132,7 +134,7 @@ xkb_symbols "sundeadkeys" { }; // Copied from macintosh_vndr/nl -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac" { include "latin" diff --git a/xorg-server/xkeyboard-config/symbols/no b/xorg-server/xkeyboard-config/symbols/no index 5bba1959e..5609de06e 100644 --- a/xorg-server/xkeyboard-config/symbols/no +++ b/xorg-server/xkeyboard-config/symbols/no @@ -53,7 +53,7 @@ xkb_symbols "nodeadkeys" { }; // Norwegian Dvorak -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak)" @@ -186,7 +186,7 @@ xkb_symbols "smi_nodeadkeys" { }; // Copied from macintosh_vndr/no -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac" { // Describes the differences between a very simple en_US @@ -211,7 +211,7 @@ xkb_symbols "mac" { key <BKSL> { [ at, asterisk ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac_nodeadkeys" { // Modifies the basic Norwegian layout to eliminate dead keys @@ -222,7 +222,7 @@ xkb_symbols "mac_nodeadkeys" { key <AD12> { [ diaeresis, asciicircum, asciitilde, macron ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "colemak" { // Colemak layout - http://colemak.com/ diff --git a/xorg-server/xkeyboard-config/symbols/pk b/xorg-server/xkeyboard-config/symbols/pk index b85d887a3..8ab26ed5e 100644 --- a/xorg-server/xkeyboard-config/symbols/pk +++ b/xorg-server/xkeyboard-config/symbols/pk @@ -86,7 +86,7 @@ xkb_symbols "urd-crulp" { key <AE10> { [ 0x10006F0 , 0x1000030, 0x1000028 ] }; key <AE11> { [ 0x100002D , 0x100005F ] }; - key <AE12> { [ 0x100003D , 0x100002B ] }; + key <AE12> { [ 0x100003D , 0x100002B ] }; key <AD01> { [ 0x1000642 , 0x1000652 ] }; key <AD02> { [ 0x1000648 , 0x1000651, 0x1000602 ] }; key <AD03> { [ 0x1000639 , 0x1000670, 0x1000656 ] }; diff --git a/xorg-server/xkeyboard-config/symbols/pl b/xorg-server/xkeyboard-config/symbols/pl index a448e2baa..a468e790d 100644 --- a/xorg-server/xkeyboard-config/symbols/pl +++ b/xorg-server/xkeyboard-config/symbols/pl @@ -62,6 +62,7 @@ xkb_symbols "legacy" { name[Group1]="Polish (legacy)"; key <AD03> { [ e, E, eogonek, Eogonek ] }; + key <AD07> { [ u, U, EuroSign, cent ] }; key <AD09> { [ o, O, oacute, Oacute ] }; key <AC01> { [ a, A, aogonek, Aogonek ] }; @@ -131,10 +132,10 @@ xkb_symbols "qwertz" { // "1/!" key. If you do not use Polish quotes at all, you can use "pl_basic" map. // Basic Polish keymap (without Polish quotes) -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak)" - + name[Group1] = "Polish (Dvorak)"; key <AD08> { [ c, C, cacute, Cacute ] }; @@ -146,7 +147,7 @@ xkb_symbols "dvorak" { key <AC10> { [ s, S, sacute, Sacute ] }; key <AB09> { [ v, V, zacute, Zacute ] }; key <AB10> { [ z, Z, zabovedot, Zabovedot ] }; - + include "kpdl(comma)" include "level3(ralt_switch)" @@ -156,7 +157,7 @@ xkb_symbols "dvorak" { partial alphanumeric_keys xkb_symbols "dvorak_quotes" { include "pl(dvorak)" - + name[Group1] = "Polish (Dvorak, Polish quotes on quotemark key)"; key <AD01> { [ apostrophe, quotedbl, doublelowquotemark, rightdoublequotemark ] }; @@ -482,7 +483,7 @@ xkb_symbols "colemak" { key <AB02> { [ x, X, zacute, Zacute ] }; key <AB03> { [ c, C, cacute, Cacute ] }; key <AC01> { [ a, A, aogonek, Aogonek ] }; - key <AC03> { [ s, S, sacute, Sacute ] }; + key <AC03> { [ s, S, sacute, Sacute ] }; key <AC07> { [ n, N, nacute, Nacute ] }; key <AC08> { [ e, E, eogonek, Eogonek ] }; key <AC10> { [ o, O, oacute, Oacute ] }; diff --git a/xorg-server/xkeyboard-config/symbols/ru b/xorg-server/xkeyboard-config/symbols/ru index c48637637..043e011e6 100644 --- a/xorg-server/xkeyboard-config/symbols/ru +++ b/xorg-server/xkeyboard-config/symbols/ru @@ -22,7 +22,7 @@ xkb_symbols "winkeys" { key <BKSL> { [ backslash, slash ] }; }; -partial hidden alphanumeric_keys +partial hidden alphanumeric_keys xkb_symbols "common" { key <AE01> { [ 1, exclam ] }; @@ -179,7 +179,7 @@ xkb_symbols "phonetic" { key <LatA> { [ Cyrillic_a, Cyrillic_A ] }; key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] }; key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] }; - key <LatX> { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; + key <LatX> { [ Cyrillic_ha, Cyrillic_HA ] }; key <LatD> { [ Cyrillic_de, Cyrillic_DE ] }; key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] }; key <LatV> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; @@ -188,7 +188,7 @@ xkb_symbols "phonetic" { key <LatR> { [ Cyrillic_er, Cyrillic_ER ] }; key <LatN> { [ Cyrillic_en, Cyrillic_EN ] }; key <LatB> { [ Cyrillic_be, Cyrillic_BE ] }; - key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] }; + key <LatH> { [ Cyrillic_che, Cyrillic_CHE ] }; key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] }; key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] }; key <LatM> { [ Cyrillic_em, Cyrillic_EM ] }; @@ -201,7 +201,7 @@ xkb_symbols "phonetic" { key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] }; key <AD11> { [ Cyrillic_sha, Cyrillic_SHA ] }; - key <AE12> { [ Cyrillic_che, Cyrillic_CHE ] }; + key <AE12> { [ Cyrillic_softsign, Cyrillic_softsign ] }; key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key <BKSL> { [ Cyrillic_e, Cyrillic_E ] }; }; @@ -242,7 +242,7 @@ xkb_symbols "tt" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "os_legacy" { include "ru(common)" @@ -253,7 +253,7 @@ xkb_symbols "os_legacy" { key <AC11> { [ 0x010004D5, 0x010004D4 ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "os_winkeys" { include "ru(winkeys)" @@ -336,7 +336,7 @@ xkb_symbols "cv_latin" { // Vlad Shakhov <lumpen.intellectual@gmail.com> // Last Changes 2007/10/23 by Vlad Shakhov <lumpen.intellectual@gmail.com> -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "kom" { include "ru(winkeys)" @@ -348,7 +348,7 @@ xkb_symbols "kom" { // cyrilllic o with diaeresis key <AC07> { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] }; - + // hard I as additional key for soft Cyrillic_I key <AB05> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; @@ -404,7 +404,7 @@ xkb_symbols "sah" { //based on the Kalmyk language layout: http://soft.oyrat.org/ //Nikolay Korneev <halmg@oyrat.org> //Toli Miron <mirontoli@gmail.com> - + partial alphanumeric_keys xkb_symbols "xal" { include "ru(winkeys)" @@ -416,24 +416,24 @@ xkb_symbols "xal" { key <AE01> { [ question, exclam, 1 ] }; key <AE02> { [ numerosign, quotedbl, 2 ] }; key <AE03> { [ Cyrillic_u_straight, Cyrillic_U_straight, 3 ] }; - key <AE04> { [ Cyrillic_schwa, Cyrillic_SCHWA, 4 ] }; + key <AE04> { [ Cyrillic_schwa, Cyrillic_SCHWA, 4 ] }; key <AE05> { [ asterisk, percent, 5 ] }; key <AE06> { [ Cyrillic_en_descender, Cyrillic_EN_descender, 6 ] }; - key <AE07> { [ Cyrillic_o_bar, Cyrillic_O_bar, 7 ] }; - key <AE08> { [ Cyrillic_shha, Cyrillic_SHHA, 8 ] }; + key <AE07> { [ Cyrillic_o_bar, Cyrillic_O_bar, 7 ] }; + key <AE08> { [ Cyrillic_shha, Cyrillic_SHHA, 8 ] }; key <AE09> { [ Cyrillic_zhe_descender, Cyrillic_ZHE_descender, 9 ] }; key <AE10> { [ semicolon, colon, 0 ] }; key <TLDE> { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] }; key <AD02> { [ Cyrillic_tse, Cyrillic_TSE, dollar ] }; - key <AD03> { [ Cyrillic_u, Cyrillic_U, EuroSign ] }; - key <AD04> { [ Cyrillic_ka, Cyrillic_KA, registered ] }; - key <AD05> { [ Cyrillic_ie, Cyrillic_IE, trademark ] }; - key <AD11> { [ Cyrillic_ha, Cyrillic_HA, bracketleft ] }; + key <AD03> { [ Cyrillic_u, Cyrillic_U, EuroSign ] }; + key <AD04> { [ Cyrillic_ka, Cyrillic_KA, registered ] }; + key <AD05> { [ Cyrillic_ie, Cyrillic_IE, trademark ] }; + key <AD11> { [ Cyrillic_ha, Cyrillic_HA, bracketleft ] }; key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright ] }; key <AC11> { [ Cyrillic_e, Cyrillic_E, apostrophe ] }; - key <AB03> { [ Cyrillic_es, Cyrillic_ES, copyright ] }; + key <AB03> { [ Cyrillic_es, Cyrillic_ES, copyright ] }; key <AB08> { [ Cyrillic_be, Cyrillic_BE, less ] }; key <AB09> { [ Cyrillic_yu, Cyrillic_YU, greater ] }; @@ -476,7 +476,7 @@ xkb_symbols "bak" { key <AE11> { [ minus, percent, minus, underscore ]}; key <AE12> { [ 0x010004af, 0x010004ae, equal, plus ]}; key <BKSL> { [ 0x010004a3, 0x010004a2, backslash, slash ]}; - + include "level3(ralt_switch)" }; @@ -511,7 +511,7 @@ xkb_symbols "srp" { partial alphanumeric_keys xkb_symbols "chm" { include "ru(common)" - + name[Group1]= "Mari"; key.type[group1]="FOUR_LEVEL_ALPHABETIC"; diff --git a/xorg-server/xkeyboard-config/symbols/se b/xorg-server/xkeyboard-config/symbols/se index a498f693d..7c37d2a1d 100644 --- a/xorg-server/xkeyboard-config/symbols/se +++ b/xorg-server/xkeyboard-config/symbols/se @@ -45,7 +45,7 @@ xkb_symbols "nodeadkeys" { }; // Swedish Dvorak -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "dvorak" { name[Group1]="Swedish (Dvorak)"; @@ -162,7 +162,7 @@ xkb_symbols "smi" { }; // Copied from macintosh_vndr/se -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "mac" { // Describes the differences between a very simple en_US diff --git a/xorg-server/xkeyboard-config/symbols/si b/xorg-server/xkeyboard-config/symbols/si index 6733d2bd1..cff5f5602 100644 --- a/xorg-server/xkeyboard-config/symbols/si +++ b/xorg-server/xkeyboard-config/symbols/si @@ -8,7 +8,7 @@ xkb_symbols "basic" { key <TLDE> { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "us" { name[Group1]= "Slovenian (US keyboard with Slovenian letters)"; @@ -19,7 +19,7 @@ xkb_symbols "us" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "alternatequotes" { name[Group1]= "Slovenian (use guillemets for quotes)"; diff --git a/xorg-server/xkeyboard-config/symbols/sk b/xorg-server/xkeyboard-config/symbols/sk index b48e5aa8d..2162d533d 100644 --- a/xorg-server/xkeyboard-config/symbols/sk +++ b/xorg-server/xkeyboard-config/symbols/sk @@ -1,6 +1,6 @@ default partial alphanumeric_keys xkb_symbols "basic" { - + // This layout conforms to a new sk compromise standard designed // to satisfy most unix, windows and mac users. // 2001 by Kamil Toman <ktoman@email.cz> @@ -46,7 +46,7 @@ xkb_symbols "basic" { key <AC07> { [ j, J, apostrophe, NoSymbol ] }; key <AC08> { [ k, K, lstroke, NoSymbol ] }; key <AC09> { [ l, L, Lstroke, NoSymbol ] }; - + key <AC10> { [ocircumflex, quotedbl, dollar, NoSymbol ] }; key <AC11> { [ section, exclam, apostrophe, ssharp ] }; key <AC12> { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] }; @@ -78,13 +78,13 @@ xkb_symbols "bksl" { key <BKSL> { [ backslash, bar, slash, NoSymbol ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "qwerty" { - + // This layout should work exactly as a sk with the exception // of 'Z' and 'Y' keys, which are in the qwerty style (ie. swapped). // 2001 by Kamil Toman <ktoman@email.cz> - + include "sk(basic)" name[Group1] = "Slovak (qwerty)"; diff --git a/xorg-server/xkeyboard-config/symbols/srvr_ctrl b/xorg-server/xkeyboard-config/symbols/srvr_ctrl index 52b4eb9a0..902c51cf7 100644 --- a/xorg-server/xkeyboard-config/symbols/srvr_ctrl +++ b/xorg-server/xkeyboard-config/symbols/srvr_ctrl @@ -1,4 +1,4 @@ -// Actions which control the server's behavior +// Actions which control the server's behavior. partial keypad_keys function_keys xkb_symbols "xfree86" { @@ -6,7 +6,7 @@ xkb_symbols "xfree86" { include "srvr_ctrl(fkey2vt)" }; -partial function_keys +partial function_keys xkb_symbols "fkey2vt" { key <FK01> { @@ -68,7 +68,6 @@ xkb_symbols "fkey2vt" { type="CTRL+ALT", symbols[Group1]= [ F12, F12, F12, F12, XF86_Switch_VT_12 ] }; - }; partial function_keys keypad_keys @@ -94,3 +93,18 @@ xkb_symbols "no_srvr_keys" { key <KPSU> { [ KP_Subtract, KP_Subtract ] }; key <KPAD> { [ KP_Add, KP_Add ] }; }; + +partial function_keys +xkb_symbols "grab_debug" { + + key <FK11> { + type="CTRL+ALT", + symbols[Group1]= [ F11, F11, F11, F11, XF86LogGrabInfo ] + }; + + key <FK12> { + type="CTRL+ALT", + symbols[Group1]= [ F12, F12, F12, F12, XF86LogWindowTree ] + }; + +}; diff --git a/xorg-server/xkeyboard-config/symbols/th b/xorg-server/xkeyboard-config/symbols/th index 9cdde53cd..c2390ffc4 100644 --- a/xorg-server/xkeyboard-config/symbols/th +++ b/xorg-server/xkeyboard-config/symbols/th @@ -59,12 +59,12 @@ xkb_symbols "basic" { key <BKSL> { [ Thai_khokhuat, Thai_khokhon ] }; }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "pat" { name[Group1]= "Thai (Pattachote)"; // The thai layout defines a second keyboard group and changes // the behavior of a few modifier keys. - + // converted to THai keysysms - Pablo Saratxaga pablo@mandrakesoft.com // Pattachote modification by Visanu Euarchukiati -- visanu@inet.co.th key <TLDE> { [ underscore, Thai_baht ] }; @@ -121,7 +121,7 @@ xkb_symbols "pat" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "tis" { name[Group1]= "Thai (TIS-820.2538)"; // The thai layout defines a second keyboard group and changes diff --git a/xorg-server/xkeyboard-config/symbols/tj b/xorg-server/xkeyboard-config/symbols/tj index 38a7cd257..e7816cbf9 100644 --- a/xorg-server/xkeyboard-config/symbols/tj +++ b/xorg-server/xkeyboard-config/symbols/tj @@ -16,57 +16,57 @@ xkb_symbols "basic" { name[Group1] = "Tajik"; - include "kpdl(comma)" + include "kpdl(comma)" include "level3(ralt_switch)" - key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я - key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] }; // ч Ч - key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; // с С - key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; // м М - key <AB05> { [ Cyrillic_i, Cyrillic_I ] }; // и И - key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; // т Т - key <AB07> { [ 0x10004e3, 0x10004e2 ] }; // ӣ Ӣ - key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; // б Б - key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю - key <AB10> { [ period, comma ] }; // . , - key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф - key <AC02> { [ 0x10004b7, 0x10004b6 ] }; // ҷ Ҷ - key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] }; // в В - key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; // а А - key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; // п П - key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; // р Р - key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; // о О - key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; // л Л - key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; // д Д - key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж - key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; // э Э - key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й - key <AD02> { [ 0x100049b, 0x100049a ] }; // қ Қ - key <AD03> { [ Cyrillic_u, Cyrillic_U ] }; // у У - key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] }; // к К - key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е - key <AD06> { [ Cyrillic_en, Cyrillic_EN ] }; // н Н - key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] }; // г Г - key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш - key <AD09> { [ 0x10004b3, 0x10004b2 ] }; // ҳ Ҳ - key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З - key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] }; // х Х - key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ - key <AE01> { [ 1, exclam, 0x10000a7 ] }; // 1 ! § - key <AE02> { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » - key <AE03> { [ 3, numerosign ] }; // 3 № - key <AE04> { [ 4, semicolon ] }; // 4 ; - key <AE05> { [ 5, percent ] }; // 5 % - key <AE06> { [ 6, colon, 0x1002013 ] }; // 6 : – - key <AE07> { [ 7, question, ampersand ] }; // 7 ? & - key <AE08> { [ 8, asterisk ] }; // 8 * - key <AE09> { [ 9, parenleft ] }; // 9 ( - key <AE10> { [ 0, parenright, 0x10000b0 ] }; // 0 ) ° - key <AE11> { [ 0x1000493, 0x1000492, minus, underscore ] }; // ғ Ғ - _ - key <AE12> { [ 0x10004ef, 0x10004ee, equal, plus ] }; // ӯ Ӯ = + - key <BKSL> { [ backslash, slash ] }; // \ / - key <LSGT> { [ slash, bar ] }; // / | - key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё + key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я + key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] }; // ч Ч + key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; // с С + key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; // м М + key <AB05> { [ Cyrillic_i, Cyrillic_I ] }; // и И + key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; // т Т + key <AB07> { [ 0x10004e3, 0x10004e2 ] }; // ӣ Ӣ + key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; // б Б + key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю + key <AB10> { [ period, comma ] }; // . , + key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф + key <AC02> { [ 0x10004b7, 0x10004b6 ] }; // ҷ Ҷ + key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] }; // в В + key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; // а А + key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; // п П + key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; // р Р + key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; // о О + key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; // л Л + key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; // д Д + key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж + key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; // э Э + key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й + key <AD02> { [ 0x100049b, 0x100049a ] }; // қ Қ + key <AD03> { [ Cyrillic_u, Cyrillic_U ] }; // у У + key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] }; // к К + key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е + key <AD06> { [ Cyrillic_en, Cyrillic_EN ] }; // н Н + key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] }; // г Г + key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш + key <AD09> { [ 0x10004b3, 0x10004b2 ] }; // ҳ Ҳ + key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З + key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] }; // х Х + key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ + key <AE01> { [ 1, exclam, 0x10000a7 ] }; // 1 ! § + key <AE02> { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » + key <AE03> { [ 3, numerosign ] }; // 3 № + key <AE04> { [ 4, semicolon ] }; // 4 ; + key <AE05> { [ 5, percent ] }; // 5 % + key <AE06> { [ 6, colon, 0x1002013 ] }; // 6 : – + key <AE07> { [ 7, question, ampersand ] }; // 7 ? & + key <AE08> { [ 8, asterisk ] }; // 8 * + key <AE09> { [ 9, parenleft ] }; // 9 ( + key <AE10> { [ 0, parenright, 0x10000b0 ] }; // 0 ) ° + key <AE11> { [ 0x1000493, 0x1000492, minus, underscore ] }; // ғ Ғ - _ + key <AE12> { [ 0x10004ef, 0x10004ee, equal, plus ] }; // ӯ Ӯ = + + key <BKSL> { [ backslash, slash ] }; // \ / + key <LSGT> { [ slash, bar ] }; // / | + key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё }; // -------------------------------------------------------------------- @@ -85,52 +85,52 @@ xkb_symbols "legacy" include "kpdl(comma)" include "level3(ralt_switch)" - key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я - key <AB02> { [ Cyrillic_che, Cyrillic_CHE, 0x10004b7, 0x10004b6 ] }; // ч Ч ҷ Ҷ - key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; // с С - key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; // м М - key <AB05> { [ Cyrillic_i, Cyrillic_I, 0x10004e3, 0x10004e2 ] }; // и И ӣ Ӣ - key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; // т Т - key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; // ь Ь - key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; // б Б - key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю - key <AB10> { [ period, comma ] }; // . , - key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф - key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] }; // ы Ы - key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] }; // в В - key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; // а А - key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; // п П - key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; // р Р - key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; // о О - key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; // л Л - key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; // д Д - key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж - key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; // э Э - key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й - key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] }; // ц Ц - key <AD03> { [ Cyrillic_u, Cyrillic_U, 0x10004ef, 0x10004ee ] }; // у У ӯ Ӯ - key <AD04> { [ Cyrillic_ka, Cyrillic_KA, 0x100049b, 0x100049a ] }; // к К қ Қ - key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е - key <AD06> { [ Cyrillic_en, Cyrillic_EN ] }; // н Н - key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, 0x1000493, 0x1000492 ] }; // г Г ғ Ғ - key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш - key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; // щ Щ - key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З - key <AD11> { [ Cyrillic_ha, Cyrillic_HA, 0x10004b3, 0x10004b2 ] }; // х Х ҳ Ҳ - key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ - key <AE01> { [ 1, exclam, 0x10000a7 ] }; // 1 ! § - key <AE02> { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » - key <AE03> { [ 3, numerosign ] }; // 3 № - key <AE04> { [ 4, semicolon ] }; // 4 ; - key <AE05> { [ 5, percent ] }; // 5 % - key <AE06> { [ 6, colon, 0x1002013 ] }; // 6 : – - key <AE07> { [ 7, question, ampersand ] }; // 7 ? & - key <AE08> { [ 8, asterisk ] }; // 8 * - key <AE09> { [ 9, parenleft ] }; // 9 ( - key <AE10> { [ 0, parenright ] }; // 0 ) - key <AE11> { [ minus, underscore ] }; // - _ - key <AE12> { [ equal, plus ] }; // = + - key <BKSL> { [ backslash, slash ] }; // \ / - key <LSGT> { [ slash, bar ] }; // / | - key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё + key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я + key <AB02> { [ Cyrillic_che, Cyrillic_CHE, 0x10004b7, 0x10004b6 ] }; // ч Ч ҷ Ҷ + key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; // с С + key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; // м М + key <AB05> { [ Cyrillic_i, Cyrillic_I, 0x10004e3, 0x10004e2 ] }; // и И ӣ Ӣ + key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; // т Т + key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; // ь Ь + key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; // б Б + key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю + key <AB10> { [ period, comma ] }; // . , + key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф + key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] }; // ы Ы + key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] }; // в В + key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; // а А + key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; // п П + key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; // р Р + key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; // о О + key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; // л Л + key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; // д Д + key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж + key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; // э Э + key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й + key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] }; // ц Ц + key <AD03> { [ Cyrillic_u, Cyrillic_U, 0x10004ef, 0x10004ee ] }; // у У ӯ Ӯ + key <AD04> { [ Cyrillic_ka, Cyrillic_KA, 0x100049b, 0x100049a ] }; // к К қ Қ + key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е + key <AD06> { [ Cyrillic_en, Cyrillic_EN ] }; // н Н + key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, 0x1000493, 0x1000492 ] }; // г Г ғ Ғ + key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш + key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; // щ Щ + key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З + key <AD11> { [ Cyrillic_ha, Cyrillic_HA, 0x10004b3, 0x10004b2 ] }; // х Х ҳ Ҳ + key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ + key <AE01> { [ 1, exclam, 0x10000a7 ] }; // 1 ! § + key <AE02> { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » + key <AE03> { [ 3, numerosign ] }; // 3 № + key <AE04> { [ 4, semicolon ] }; // 4 ; + key <AE05> { [ 5, percent ] }; // 5 % + key <AE06> { [ 6, colon, 0x1002013 ] }; // 6 : – + key <AE07> { [ 7, question, ampersand ] }; // 7 ? & + key <AE08> { [ 8, asterisk ] }; // 8 * + key <AE09> { [ 9, parenleft ] }; // 9 ( + key <AE10> { [ 0, parenright ] }; // 0 ) + key <AE11> { [ minus, underscore ] }; // - _ + key <AE12> { [ equal, plus ] }; // = + + key <BKSL> { [ backslash, slash ] }; // \ / + key <LSGT> { [ slash, bar ] }; // / | + key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё }; diff --git a/xorg-server/xkeyboard-config/symbols/tm b/xorg-server/xkeyboard-config/symbols/tm index 8d84f9a85..e861b35c3 100644 --- a/xorg-server/xkeyboard-config/symbols/tm +++ b/xorg-server/xkeyboard-config/symbols/tm @@ -4,7 +4,7 @@ default partial xkb_symbols "basic" { name[Group1]="Turkmen"; - + include "us" key <TLDE> { [ zcaron, Zcaron, grave, asciitilde ] }; diff --git a/xorg-server/xkeyboard-config/symbols/ua b/xorg-server/xkeyboard-config/symbols/ua index e286f4835..9aea09e05 100644 --- a/xorg-server/xkeyboard-config/symbols/ua +++ b/xorg-server/xkeyboard-config/symbols/ua @@ -8,7 +8,7 @@ default partial alphanumeric_keys xkb_symbols "unicode" { include "ua(winkeys)" - + name[Group1]= "Ukrainian"; key <TLDE> { [ U2019, apostrophe, U0301, asciitilde ] }; // Apostrophe and Stress symbol @@ -43,7 +43,7 @@ xkb_symbols "unicode" { include "level3(ralt_switch)" }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "legacy" { name[Group1]= "Ukrainian (legacy)"; @@ -105,7 +105,7 @@ xkb_symbols "legacy" { partial alphanumeric_keys xkb_symbols "winkeys" { include "ua(legacy)" - + name[Group1]= "Ukrainian (WinKeys)"; key <AE03> { [ 3, numerosign ] }; @@ -149,7 +149,7 @@ xkb_symbols "typewriter" { partial alphanumeric_keys xkb_symbols "phonetic" { include "ua(legacy)" - + name[Group1]= "Ukrainian (phonetic)"; key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] }; diff --git a/xorg-server/xkeyboard-config/symbols/us b/xorg-server/xkeyboard-config/symbols/us index 0eff07539..4948a6345 100644 --- a/xorg-server/xkeyboard-config/symbols/us +++ b/xorg-server/xkeyboard-config/symbols/us @@ -425,7 +425,7 @@ xkb_symbols "dvorak-l" { partial alphanumeric_keys xkb_symbols "dvorak-r" { - + include "us(dvorak)" name[Group1]= "English (right handed Dvorak)"; @@ -726,7 +726,7 @@ xkb_symbols "mac" { include "level3(ralt_switch)" }; - + // Colemak symbols for xkb on X.Org Server 7.x // 2006-01-01 Shai Coleman, http://colemak.com/ @@ -894,11 +894,11 @@ xkb_symbols "classmate-intl" { oslash, Ooblique ] }; key <KPAD> { [ KP_Add, KP_Add, paragraph, degree ] }; - + key <KP0> { [ KP_Insert, KP_0, mu, mu ] }; key <KPDL> { [ KP_Delete, KP_Decimal, - dead_abovedot, dead_caron ] }; + dead_abovedot, dead_caron ] }; key <KPDV> { [ KP_Divide, KP_Divide, questiondown, dead_hook ] }; @@ -927,9 +927,9 @@ xkb_symbols "classmate-alt-intl" { key <KPAD> { [ KP_Add, KP_Add, dead_ogonek, dead_diaeresis ] }; - + key <KPDL> { [ KP_Delete, KP_Decimal, - dead_abovedot, dead_circumflex ] }; + dead_abovedot, dead_circumflex ] }; key <KPDV> { [ KP_Divide, KP_Divide, dead_hook, dead_hook ] }; @@ -975,11 +975,11 @@ xkb_symbols "classmate-altgr-intl" { oslash, Ooblique ] }; key <KPAD> { [ KP_Add, KP_Add, paragraph, degree ] }; - + key <KP0> { [ KP_Insert, KP_0, mu, mu ] }; key <KPDL> { [ KP_Delete, KP_Decimal, - dead_abovedot, dead_caron ] }; + dead_abovedot, dead_caron ] }; key <KPDV> { [ KP_Divide, KP_Divide, questiondown, dead_hook ] }; @@ -1399,7 +1399,7 @@ xkb_symbols "cz_sk_de" { key <AE10> { [ 0, parenright, eacute, Eacute ] }; key <AE11> { [minus, underscore, ssharp, 0x1001E9E ] }; key <AE12> { [equal, plus, dead_acute, dead_caron ] }; - + key <AD03> { [ e, E, EuroSign, Eacute ] }; key <AD11> { [bracketleft, braceleft, udiaeresis, Udiaeresis ] }; @@ -1514,7 +1514,7 @@ xkb_symbols "alt-intl-unicode" { }; -partial alphanumeric_keys +partial alphanumeric_keys xkb_symbols "ats" { include "us" @@ -1551,19 +1551,19 @@ xkb_symbols "crd" { name[Group1]= "Coeur d'Alene Salish"; - key <AD02> { [ w, W, U02B7, U02B7 ] }; - key <AE07> { [ 7, ampersand, U0294 ] }; - key <AD01> { [ q, Q, U221A ] }; - key <AB04> { [ v, V, U0259 ] }; - key <BKSL> { [ backslash, bar, U026B ] }; - key <AD03> { [ e, E, U025B ] }; - key <AD08> { [ i, I, U026A ] }; - key <AC07> { [ j, J, U01F0 ] }; - key <AE06> { [ 6, asciicircum, U0295 ] }; - key <AC02> { [ s, S, U0161 ] }; - key <AB03> { [ c, C, U010D ] }; - key <AD09> { [ o, O, U0254 ] }; - key <AB09> { [ period, greater, U0323 ] }; + key <AD02> { [ w, W, U02B7, U02B7 ] }; + key <AE07> { [ 7, ampersand, U0294 ] }; + key <AD01> { [ q, Q, U221A ] }; + key <AB04> { [ v, V, U0259 ] }; + key <BKSL> { [ backslash, bar, U026B ] }; + key <AD03> { [ e, E, U025B ] }; + key <AD08> { [ i, I, U026A ] }; + key <AC07> { [ j, J, U01F0 ] }; + key <AE06> { [ 6, asciicircum, U0295 ] }; + key <AC02> { [ s, S, U0161 ] }; + key <AB03> { [ c, C, U010D ] }; + key <AD09> { [ o, O, U0254 ] }; + key <AB09> { [ period, greater, U0323 ] }; include "level3(ralt_switch)" include "compose(rctrl)" diff --git a/xorg-server/xkeyboard-config/symbols/uz b/xorg-server/xkeyboard-config/symbols/uz index e88741b73..d76e3c9b9 100644 --- a/xorg-server/xkeyboard-config/symbols/uz +++ b/xorg-server/xkeyboard-config/symbols/uz @@ -6,17 +6,17 @@ // // Jun 2, 2003. Mashrab Kuvatov <kmashrab@uni-bremen.de> // -// Created based on Russian standard keyboard. AEN <aen@logic.ru> -// The following symbols of Russian standard keyboard were replaced: +// Created based on the Russian standard keyboard. AEN <aen@logic.ru> +// The following symbols of the Russian standard keyboard were replaced: // minus (key <AE11>) with Byelorussian_shortu (U045e), -// equal (key <AE12>) with Cyrillic_ka_descender (U049b) -// Cyrillic_ha (key <AD11>) with Cyrillic_ghe_bar (U0493) -// Cyrillic_hardsign (key <AD12>) with Cyrillic_ha_descender (U04b3) -// The following symbols of Russian standard keyboard were moved: -// Cyrillic_ze to key <AC02> (english 's'), -// Cyrillic_sha to key <AD08> (english 'i'), -// Cyrillic_ha to key <AD09> (english 'o'), -// Cyrillic_hardsign to key <AD10> (english 'p'). +// equal (key <AE12>) with Cyrillic_ka_descender (U049b), +// Cyrillic_ha (key <AD11>) with Cyrillic_ghe_bar (U0493), +// Cyrillic_hardsign (key <AD12>) with Cyrillic_ha_descender (U04b3). +// The following symbols of the Russian standard keyboard were moved: +// Cyrillic_ze to key <AC02> (English 's'), +// Cyrillic_sha to key <AD08> (English 'i'), +// Cyrillic_ha to key <AD09> (English 'o'), +// Cyrillic_hardsign to key <AD10> (English 'p'). // // Feb 25, 2007. Mashrab Kuvatov <kmashrab@uni-bremen.de> // @@ -28,62 +28,61 @@ // Latin variant is somewhat experimental, since there is no // official standard for it. It is a copy of "us" layout, where // apostrophe is replaced with U02BB. -// default partial alphanumeric_keys xkb_symbols "cyrillic" { name[Group1]= "Uzbek"; - key <AE01> { [ 1, exclam ] }; - key <AE02> { [ 2, quotedbl ] }; - key <AE03> { [ 3, numerosign ] }; - key <AE04> { [ 4, semicolon ] }; - key <AE05> { [ 5, percent ] }; + key <AE01> { [ 1, exclam ] }; + key <AE02> { [ 2, quotedbl ] }; + key <AE03> { [ 3, numerosign ] }; + key <AE04> { [ 4, semicolon ] }; + key <AE05> { [ 5, percent ] }; key <AE06> { [ 6, colon ] }; key <AE07> { [ 7, question ] }; key <AE08> { [ 8, asterisk ] }; key <AE09> { [ 9, parenleft ] }; key <AE10> { [ 0, parenright ] }; - key <BKSL> { [ backslash, bar ] }; + key <BKSL> { [ backslash, bar ] }; key <AB10> { [ period, comma ] }; - key <LSGT> { [ slash, bar ] }; + key <LSGT> { [ slash, bar ] }; key.type[group1]="ALPHABETIC"; - key <AE11> { [Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; + key <AE11> { [Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; key <AE12> { [Cyrillic_ha_descender, Cyrillic_HA_descender ] }; key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] }; key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] }; - key <AD03> { [ Cyrillic_u, Cyrillic_U ] }; + key <AD03> { [ Cyrillic_u, Cyrillic_U ] }; key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] }; key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] }; key <AD06> { [ Cyrillic_en, Cyrillic_EN ] }; key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] }; key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; key <AD09> { [ Byelorussian_shortu, Byelorussian_SHORTU ] }; - key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; - key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] }; - key <AD12> { [Cyrillic_hardsign,Cyrillic_HARDSIGN ] }; + key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; + key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] }; + key <AD12> { [Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] }; key <AC02> { [Cyrillic_ka_descender, Cyrillic_KA_descender ] }; key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] }; - key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; + key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; - key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; + key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; - key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; + key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] }; key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; - key <AB05> { [ Cyrillic_i, Cyrillic_I ] }; - key <AB07> { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; + key <AB05> { [ Cyrillic_i, Cyrillic_I ] }; + key <AB07> { [Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; }; diff --git a/xorg-server/xkeyboard-config/symbols/za b/xorg-server/xkeyboard-config/symbols/za index 75f6d9a27..aba979196 100644 --- a/xorg-server/xkeyboard-config/symbols/za +++ b/xorg-server/xkeyboard-config/symbols/za @@ -1,42 +1,42 @@ -// based on the Latvian and GB keyboard maps +// Based on the Latvian and GB keyboard maps. default partial alphanumeric_keys modifier_keys xkb_symbols "basic" { - // Describes the differences between an en_US - // keyboard and a South African layout with - // dead keys. By Dwayne Bailey (dwayne@translate.org.za) + // Describes the differences between an en_US layout + // and a South African layout with dead keys. + // By Dwayne Bailey (dwayne@translate.org.za). include "latin" name[Group1]="English (South Africa)"; - key <TLDE> { [ grave, asciitilde, dead_grave ] }; - key <AE02> { [ 2, at, yen ] }; - key <AE03> { [ 3, numbersign, sterling ] }; - key <AE04> { [ 4, dollar, dollar ] }; - key <AE05> { [ 5, percent, EuroSign ] }; - key <AE06> { [ 6, asciicircum, dead_circumflex ] }; - - key <AD03> { [ e, E, ediaeresis, Ediaeresis ] }; - key <AD04> { [ r, R, ecircumflex, Ecircumflex ] }; - key <AD05> { [ t, T, U1e71, U1e70 ] }; - key <AD06> { [ y, Y, ucircumflex, Ucircumflex ] }; - key <AD07> { [ u, U, udiaeresis, Udiaeresis ] }; - key <AD08> { [ i, I, idiaeresis, Idiaeresis ] }; - key <AD09> { [ o, O, odiaeresis, Odiaeresis ] }; - key <AD10> { [ p, P, ocircumflex, Ocircumflex ] }; - - key <AC01> { [ a, A, adiaeresis, Adiaeresis ] }; - key <AC02> { [ s, S, scaron, Scaron ] }; - key <AC03> { [ d, D, U1e13, U1e12 ] }; - key <AC09> { [ l, L, U1e3d, U1e3c ] }; - key <AC10> { [ semicolon, colon, dead_diaeresis ] }; - key <AC11> { [apostrophe, quotedbl, dead_acute ] }; - - key <AB06> { [ n, N, U1e4b, U1e4a ] }; - key <AB07> { [ m, M, U1e45, U1e44 ] }; - key <AB09> { [ period, greater, dead_abovedot ] }; + key <TLDE> { [ grave, asciitilde, dead_grave ] }; + key <AE02> { [ 2, at, yen ] }; + key <AE03> { [ 3, numbersign, sterling ] }; + key <AE04> { [ 4, dollar, dollar ] }; + key <AE05> { [ 5, percent, EuroSign ] }; + key <AE06> { [ 6,asciicircum, dead_circumflex ] }; + + key <AD03> { [ e, E, ediaeresis, Ediaeresis ] }; + key <AD04> { [ r, R, ecircumflex, Ecircumflex ] }; + key <AD05> { [ t, T, U1e71, U1e70 ] }; + key <AD06> { [ y, Y, ucircumflex, Ucircumflex ] }; + key <AD07> { [ u, U, udiaeresis, Udiaeresis ] }; + key <AD08> { [ i, I, idiaeresis, Idiaeresis ] }; + key <AD09> { [ o, O, odiaeresis, Odiaeresis ] }; + key <AD10> { [ p, P, ocircumflex, Ocircumflex ] }; + + key <AC01> { [ a, A, adiaeresis, Adiaeresis ] }; + key <AC02> { [ s, S, scaron, Scaron ] }; + key <AC03> { [ d, D, U1e13, U1e12 ] }; + key <AC09> { [ l, L, U1e3d, U1e3c ] }; + key <AC10> { [ semicolon, colon, dead_diaeresis ] }; + key <AC11> { [apostrophe, quotedbl, dead_acute ] }; + + key <AB06> { [ n, N, U1e4b, U1e4a ] }; + key <AB07> { [ m, M, U1e45, U1e44 ] }; + key <AB09> { [ period, greater, dead_abovedot ] }; include "level3(ralt_switch)" }; |