diff options
author | Eric Anholt <eric@anholt.net> | 2015-07-17 10:15:01 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2015-07-17 11:02:20 -0700 |
commit | 2fcfa532532fbe4a7f668556808e6245ff4e36bc (patch) | |
tree | 0e696e77d3c5de5d35291abe472d6094130723f8 | |
parent | cb695b0f3b8def4d1ac02458fe630b65f6a5a3e6 (diff) | |
parent | 7b0f940625a0f6eee2ef91dfbfa4a206246940f5 (diff) |
Merge remote-tracking branch 'ajax/xserver-next' into master
74 files changed, 809 insertions, 1205 deletions
diff --git a/Xext/geext.c b/Xext/geext.c index aee68c41d..6285f69f7 100644 --- a/Xext/geext.c +++ b/Xext/geext.c @@ -90,9 +90,10 @@ ProcGEQueryVersion(ClientPtr client) return Success; } -int (*ProcGEVector[GENumberRequests]) (ClientPtr) = { +static int (*ProcGEVector[GENumberRequests]) (ClientPtr) = { /* Version 1.0 */ -ProcGEQueryVersion}; + ProcGEQueryVersion, +}; /************************************************************/ /* swapped request handlers */ @@ -109,9 +110,10 @@ SProcGEQueryVersion(ClientPtr client) return (*ProcGEVector[stuff->ReqType]) (client); } -int (*SProcGEVector[GENumberRequests]) (ClientPtr) = { +static int (*SProcGEVector[GENumberRequests]) (ClientPtr) = { /* Version 1.0 */ -SProcGEQueryVersion}; + SProcGEQueryVersion +}; /************************************************************/ /* callbacks */ diff --git a/Xext/geint.h b/Xext/geint.h index f76d14809..0ee28e471 100644 --- a/Xext/geint.h +++ b/Xext/geint.h @@ -37,7 +37,7 @@ #include "extnsionst.h" #include <X11/extensions/geproto.h> -extern _X_EXPORT DevPrivateKeyRec GEClientPrivateKeyRec; +extern DevPrivateKeyRec GEClientPrivateKeyRec; #define GEClientPrivateKey (&GEClientPrivateKeyRec) @@ -48,7 +48,4 @@ typedef struct _GEClientInfo { #define GEGetClient(pClient) ((GEClientInfoPtr)(dixLookupPrivate(&((pClient)->devPrivates), GEClientPrivateKey))) -extern _X_EXPORT int (*ProcGEVector[ /*GENumRequests */ ]) (ClientPtr); -extern _X_EXPORT int (*SProcGEVector[ /*GENumRequests */ ]) (ClientPtr); - #endif /* _GEINT_H_ */ diff --git a/composite/compwindow.c b/composite/compwindow.c index 77bdfa23c..344138ad7 100644 --- a/composite/compwindow.c +++ b/composite/compwindow.c @@ -104,7 +104,7 @@ compRepaintBorder(ClientPtr pClient, void *closure) RegionNull(&exposed); RegionSubtract(&exposed, &pWindow->borderClip, &pWindow->winSize); - miPaintWindow(pWindow, &exposed, PW_BORDER); + pWindow->drawable.pScreen->PaintWindow(pWindow, &exposed, PW_BORDER); RegionUninit(&exposed); } return TRUE; diff --git a/configure.ac b/configure.ac index 328563e6f..98d08216b 100644 --- a/configure.ac +++ b/configure.ac @@ -2268,7 +2268,7 @@ if test "x$DMX" = xyes; then fi DMX_INCLUDES="$XEXT_INC $RENDER_INC $RECORD_INC" XDMX_CFLAGS="$DMXMODULES_CFLAGS" - XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $COMPOSITE_LIB $DAMAGE_LIB $MAIN_LIB $DIX_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB" + XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RANDR_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $COMPOSITE_LIB $DAMAGE_LIB $MAIN_LIB $DIX_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB" XDMX_SYS_LIBS="$DMXMODULES_LIBS" AC_SUBST([XDMX_CFLAGS]) AC_SUBST([XDMX_LIBS]) diff --git a/dix/atom.c b/dix/atom.c index 7de7fb05e..da0adfe78 100644 --- a/dix/atom.c +++ b/dix/atom.c @@ -56,7 +56,7 @@ SOFTWARE. #include "resource.h" #include "dix.h" -#define InitialTableSize 100 +#define InitialTableSize 256 typedef struct _Node { struct _Node *left, *right; @@ -70,8 +70,6 @@ static NodePtr atomRoot = NULL; static unsigned long tableLength; static NodePtr *nodeTable; -void FreeAtom(NodePtr patom); - Atom MakeAtom(const char *string, unsigned len, Bool makeit) { @@ -166,7 +164,7 @@ AtomError(void) FatalError("initializing atoms"); } -void +static void FreeAtom(NodePtr patom) { if (patom->left) diff --git a/dix/colormap.c b/dix/colormap.c index a3e5a2c09..89a17c43b 100644 --- a/dix/colormap.c +++ b/dix/colormap.c @@ -64,6 +64,9 @@ SOFTWARE. #include "privates.h" #include "xace.h" +typedef int (*ColorCompareProcPtr) (EntryPtr /*pent */ , + xrgb * /*prgb */ ); + static Pixel FindBestPixel(EntryPtr /*pentFirst */ , int /*size */ , xrgb * /*prgb */ , @@ -748,6 +751,173 @@ UpdateColors(ColormapPtr pmap) free(defs); } +/* Tries to find a color in pmap that exactly matches the one requested in prgb + * if it can't it allocates one. + * Starts looking at pentFirst + *pPixel, so if you want a specific pixel, + * load *pPixel with that value, otherwise set it to 0 + */ +static int +FindColor(ColormapPtr pmap, EntryPtr pentFirst, int size, xrgb * prgb, + Pixel * pPixel, int channel, int client, ColorCompareProcPtr comp) +{ + EntryPtr pent; + Bool foundFree; + Pixel pixel, Free = 0; + int npix, count, *nump = NULL; + Pixel **pixp = NULL, *ppix; + xColorItem def; + + foundFree = FALSE; + + if ((pixel = *pPixel) >= size) + pixel = 0; + /* see if there is a match, and also look for a free entry */ + for (pent = pentFirst + pixel, count = size; --count >= 0;) { + if (pent->refcnt > 0) { + if ((*comp) (pent, prgb)) { + if (client >= 0) + pent->refcnt++; + *pPixel = pixel; + switch (channel) { + case REDMAP: + *pPixel <<= pmap->pVisual->offsetRed; + case PSEUDOMAP: + break; + case GREENMAP: + *pPixel <<= pmap->pVisual->offsetGreen; + break; + case BLUEMAP: + *pPixel <<= pmap->pVisual->offsetBlue; + break; + } + goto gotit; + } + } + else if (!foundFree && pent->refcnt == 0) { + Free = pixel; + foundFree = TRUE; + /* If we're initializing the colormap, then we are looking for + * the first free cell we can find, not to minimize the number + * of entries we use. So don't look any further. */ + if (pmap->flags & BeingCreated) + break; + } + pixel++; + if (pixel >= size) { + pent = pentFirst; + pixel = 0; + } + else + pent++; + } + + /* If we got here, we didn't find a match. If we also didn't find + * a free entry, we're out of luck. Otherwise, we'll usurp a free + * entry and fill it in */ + if (!foundFree) + return BadAlloc; + pent = pentFirst + Free; + pent->fShared = FALSE; + pent->refcnt = (client >= 0) ? 1 : AllocTemporary; + + switch (channel) { + case PSEUDOMAP: + pent->co.local.red = prgb->red; + pent->co.local.green = prgb->green; + pent->co.local.blue = prgb->blue; + def.red = prgb->red; + def.green = prgb->green; + def.blue = prgb->blue; + def.flags = (DoRed | DoGreen | DoBlue); + if (client >= 0) + pmap->freeRed--; + def.pixel = Free; + break; + + case REDMAP: + pent->co.local.red = prgb->red; + def.red = prgb->red; + def.green = pmap->green[0].co.local.green; + def.blue = pmap->blue[0].co.local.blue; + def.flags = DoRed; + if (client >= 0) + pmap->freeRed--; + def.pixel = Free << pmap->pVisual->offsetRed; + break; + + case GREENMAP: + pent->co.local.green = prgb->green; + def.red = pmap->red[0].co.local.red; + def.green = prgb->green; + def.blue = pmap->blue[0].co.local.blue; + def.flags = DoGreen; + if (client >= 0) + pmap->freeGreen--; + def.pixel = Free << pmap->pVisual->offsetGreen; + break; + + case BLUEMAP: + pent->co.local.blue = prgb->blue; + def.red = pmap->red[0].co.local.red; + def.green = pmap->green[0].co.local.green; + def.blue = prgb->blue; + def.flags = DoBlue; + if (client >= 0) + pmap->freeBlue--; + def.pixel = Free << pmap->pVisual->offsetBlue; + break; + } + (*pmap->pScreen->StoreColors) (pmap, 1, &def); + pixel = Free; + *pPixel = def.pixel; + + gotit: + if (pmap->flags & BeingCreated || client == -1) + return Success; + /* Now remember the pixel, for freeing later */ + switch (channel) { + case PSEUDOMAP: + case REDMAP: + nump = pmap->numPixelsRed; + pixp = pmap->clientPixelsRed; + break; + + case GREENMAP: + nump = pmap->numPixelsGreen; + pixp = pmap->clientPixelsGreen; + break; + + case BLUEMAP: + nump = pmap->numPixelsBlue; + pixp = pmap->clientPixelsBlue; + break; + } + npix = nump[client]; + ppix = reallocarray(pixp[client], npix + 1, sizeof(Pixel)); + if (!ppix) { + pent->refcnt--; + if (!pent->fShared) + switch (channel) { + case PSEUDOMAP: + case REDMAP: + pmap->freeRed++; + break; + case GREENMAP: + pmap->freeGreen++; + break; + case BLUEMAP: + pmap->freeBlue++; + break; + } + return BadAlloc; + } + ppix[npix] = pixel; + pixp[client] = ppix; + nump[client]++; + + return Success; +} + /* Get a read-only color from a ColorMap (probably slow for large maps) * Returns by changing the value in pred, pgreen, pblue and pPix */ @@ -1137,173 +1307,6 @@ FindColorInRootCmap(ColormapPtr pmap, EntryPtr pentFirst, int size, } } -/* Tries to find a color in pmap that exactly matches the one requested in prgb - * if it can't it allocates one. - * Starts looking at pentFirst + *pPixel, so if you want a specific pixel, - * load *pPixel with that value, otherwise set it to 0 - */ -int -FindColor(ColormapPtr pmap, EntryPtr pentFirst, int size, xrgb * prgb, - Pixel * pPixel, int channel, int client, ColorCompareProcPtr comp) -{ - EntryPtr pent; - Bool foundFree; - Pixel pixel, Free = 0; - int npix, count, *nump = NULL; - Pixel **pixp = NULL, *ppix; - xColorItem def; - - foundFree = FALSE; - - if ((pixel = *pPixel) >= size) - pixel = 0; - /* see if there is a match, and also look for a free entry */ - for (pent = pentFirst + pixel, count = size; --count >= 0;) { - if (pent->refcnt > 0) { - if ((*comp) (pent, prgb)) { - if (client >= 0) - pent->refcnt++; - *pPixel = pixel; - switch (channel) { - case REDMAP: - *pPixel <<= pmap->pVisual->offsetRed; - case PSEUDOMAP: - break; - case GREENMAP: - *pPixel <<= pmap->pVisual->offsetGreen; - break; - case BLUEMAP: - *pPixel <<= pmap->pVisual->offsetBlue; - break; - } - goto gotit; - } - } - else if (!foundFree && pent->refcnt == 0) { - Free = pixel; - foundFree = TRUE; - /* If we're initializing the colormap, then we are looking for - * the first free cell we can find, not to minimize the number - * of entries we use. So don't look any further. */ - if (pmap->flags & BeingCreated) - break; - } - pixel++; - if (pixel >= size) { - pent = pentFirst; - pixel = 0; - } - else - pent++; - } - - /* If we got here, we didn't find a match. If we also didn't find - * a free entry, we're out of luck. Otherwise, we'll usurp a free - * entry and fill it in */ - if (!foundFree) - return BadAlloc; - pent = pentFirst + Free; - pent->fShared = FALSE; - pent->refcnt = (client >= 0) ? 1 : AllocTemporary; - - switch (channel) { - case PSEUDOMAP: - pent->co.local.red = prgb->red; - pent->co.local.green = prgb->green; - pent->co.local.blue = prgb->blue; - def.red = prgb->red; - def.green = prgb->green; - def.blue = prgb->blue; - def.flags = (DoRed | DoGreen | DoBlue); - if (client >= 0) - pmap->freeRed--; - def.pixel = Free; - break; - - case REDMAP: - pent->co.local.red = prgb->red; - def.red = prgb->red; - def.green = pmap->green[0].co.local.green; - def.blue = pmap->blue[0].co.local.blue; - def.flags = DoRed; - if (client >= 0) - pmap->freeRed--; - def.pixel = Free << pmap->pVisual->offsetRed; - break; - - case GREENMAP: - pent->co.local.green = prgb->green; - def.red = pmap->red[0].co.local.red; - def.green = prgb->green; - def.blue = pmap->blue[0].co.local.blue; - def.flags = DoGreen; - if (client >= 0) - pmap->freeGreen--; - def.pixel = Free << pmap->pVisual->offsetGreen; - break; - - case BLUEMAP: - pent->co.local.blue = prgb->blue; - def.red = pmap->red[0].co.local.red; - def.green = pmap->green[0].co.local.green; - def.blue = prgb->blue; - def.flags = DoBlue; - if (client >= 0) - pmap->freeBlue--; - def.pixel = Free << pmap->pVisual->offsetBlue; - break; - } - (*pmap->pScreen->StoreColors) (pmap, 1, &def); - pixel = Free; - *pPixel = def.pixel; - - gotit: - if (pmap->flags & BeingCreated || client == -1) - return Success; - /* Now remember the pixel, for freeing later */ - switch (channel) { - case PSEUDOMAP: - case REDMAP: - nump = pmap->numPixelsRed; - pixp = pmap->clientPixelsRed; - break; - - case GREENMAP: - nump = pmap->numPixelsGreen; - pixp = pmap->clientPixelsGreen; - break; - - case BLUEMAP: - nump = pmap->numPixelsBlue; - pixp = pmap->clientPixelsBlue; - break; - } - npix = nump[client]; - ppix = reallocarray(pixp[client], npix + 1, sizeof(Pixel)); - if (!ppix) { - pent->refcnt--; - if (!pent->fShared) - switch (channel) { - case PSEUDOMAP: - case REDMAP: - pmap->freeRed++; - break; - case GREENMAP: - pmap->freeGreen++; - break; - case BLUEMAP: - pmap->freeBlue++; - break; - } - return BadAlloc; - } - ppix[npix] = pixel; - pixp[client] = ppix; - nump[client]++; - - return Success; -} - /* Comparison functions -- passed to FindColor to determine if an * entry is already the color we're looking for or not */ static int diff --git a/dix/dispatch.c b/dix/dispatch.c index 9208582a6..dbbac8bd6 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -108,6 +108,7 @@ int ProcInitialConnection(); #include "windowstr.h" #include <X11/fonts/fontstruct.h> +#include <X11/fonts/fontutil.h> #include "dixfontstr.h" #include "gcstruct.h" #include "selection.h" diff --git a/dix/dixfonts.c b/dix/dixfonts.c index be389e82f..968cee461 100644 --- a/dix/dixfonts.c +++ b/dix/dixfonts.c @@ -156,7 +156,7 @@ SetDefaultFont(const char *defaultfontname) * init_fpe() and free_fpe(), there shouldn't be any problem in using * freed data. */ -void +static void QueueFontWakeup(FontPathElementPtr fpe) { int i; @@ -179,7 +179,7 @@ QueueFontWakeup(FontPathElementPtr fpe) num_slept_fpes++; } -void +static void RemoveFontWakeup(FontPathElementPtr fpe) { int i, j; @@ -195,7 +195,7 @@ RemoveFontWakeup(FontPathElementPtr fpe) } } -void +static void FontWakeup(void *data, int count, void *LastSelectMask) { int i; @@ -849,7 +849,7 @@ ListFonts(ClientPtr client, unsigned char *pattern, unsigned length, return Success; } -int +static int doListFontsWithInfo(ClientPtr client, LFWIclosurePtr c) { FontPathElementPtr fpe; @@ -1105,7 +1105,7 @@ static ChangeGCVal clearGC[] = { {.ptr = NullPixmap} }; #define clearGCmask (GCClipMask) -int +static int doPolyText(ClientPtr client, PTclosurePtr c) { FontPtr pFont = c->pGC->font, oldpFont; @@ -1389,7 +1389,7 @@ PolyText(ClientPtr client, DrawablePtr pDraw, GC * pGC, unsigned char *pElt, #undef TextEltHeader #undef FontShiftSize -int +static int doImageText(ClientPtr client, ITclosurePtr c) { int err = Success, lgerr; /* err is in X error, not font error, space */ diff --git a/dix/enterleave.c b/dix/enterleave.c index 7f1f94165..f0b1572fb 100644 --- a/dix/enterleave.c +++ b/dix/enterleave.c @@ -212,7 +212,7 @@ SetFocusOut(DeviceIntPtr dev) * @return The window that is the first ancestor of both 'a' and 'b', or the * NullWindow if they do not have a common ancestor. */ -WindowPtr +static WindowPtr CommonAncestor(WindowPtr a, WindowPtr b) { for (b = b->parent; b; b = b->parent) diff --git a/dix/enterleave.h b/dix/enterleave.h index a59d05799..4b833d8a3 100644 --- a/dix/enterleave.h +++ b/dix/enterleave.h @@ -41,8 +41,6 @@ extern void EnterLeaveEvent(DeviceIntPtr mouse, int type, int mode, int detail, WindowPtr pWin, Window child); -extern WindowPtr CommonAncestor(WindowPtr a, WindowPtr b); - extern void CoreEnterLeaveEvent(DeviceIntPtr mouse, int type, int mode, diff --git a/dix/main.c b/dix/main.c index 09f9504b8..db3b9c0a9 100644 --- a/dix/main.c +++ b/dix/main.c @@ -95,6 +95,8 @@ Equipment Corporation. #include "cursorstr.h" #include "selection.h" #include <X11/fonts/font.h> +#include <X11/fonts/fontstruct.h> +#include <X11/fonts/fontutil.h> #include "opaque.h" #include "servermd.h" #include "hotplug.h" diff --git a/dix/window.c b/dix/window.c index d49276c98..d57f320f8 100644 --- a/dix/window.c +++ b/dix/window.c @@ -380,10 +380,7 @@ SetWindowToDefaults(WindowPtr pWin) pWin->forcedBS = FALSE; pWin->redirectDraw = RedirectDrawNone; pWin->forcedBG = FALSE; - -#ifdef ROOTLESS - pWin->rootlessUnhittable = FALSE; -#endif + pWin->unhittable = FALSE; #ifdef COMPOSITE pWin->damagedDescendants = FALSE; @@ -1470,7 +1467,7 @@ ChangeWindowAttributes(WindowPtr pWin, Mask vmask, XID *vlist, ClientPtr client) RegionNull(&exposed); RegionSubtract(&exposed, &pWin->borderClip, &pWin->winSize); - miPaintWindow(pWin, &exposed, PW_BORDER); + pWin->drawable.pScreen->PaintWindow(pWin, &exposed, PW_BORDER); RegionUninit(&exposed); } return error; @@ -3037,7 +3034,7 @@ dixSaveScreens(ClientPtr client, int on, int mode) /* make it look like screen saver is off, so that * NotClippedByChildren will compute a clip list - * for the root window, so miPaintWindow works + * for the root window, so PaintWindow works */ screenIsSaved = SCREEN_SAVER_OFF; (*pWin->drawable.pScreen->MoveWindow) (pWin, diff --git a/dri3/dri3.c b/dri3/dri3.c index 385862a3b..d042b8b7d 100644 --- a/dri3/dri3.c +++ b/dri3/dri3.c @@ -26,9 +26,8 @@ #include "dri3_priv.h" -int dri3_request; +static int dri3_request; DevPrivateKeyRec dri3_screen_private_key; -DevPrivateKeyRec dri3_window_private_key; static int dri3_screen_generation; diff --git a/dri3/dri3_event.c b/dri3/dri3_event.c deleted file mode 100644 index cb509a26d..000000000 --- a/dri3/dri3_event.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright © 2013 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting documentation, and - * that the name of the copyright holders not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. The copyright holders make no representations - * about the suitability of this software for any purpose. It is provided "as - * is" without express or implied warranty. - * - * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifdef HAVE_XORG_CONFIG_H -#include <xorg-config.h> -#endif - -#include "dri3_priv.h" - -RESTYPE dri3_event_type; - -static int -dri3_free_event(void *data, XID id) -{ - dri3_event_ptr dri3_event = (dri3_event_ptr) data; - dri3_window_priv_ptr window_priv = dri3_window_priv(dri3_event->window); - dri3_event_ptr *previous, current; - - for (previous = &window_priv->events; (current = *previous); previous = ¤t->next) { - if (current == dri3_event) { - *previous = dri3_event->next; - break; - } - } - free((void *) dri3_event); - return 1; - -} - -void -dri3_free_events(WindowPtr window) -{ - dri3_window_priv_ptr window_priv = dri3_window_priv(window); - dri3_event_ptr event; - - if (!window_priv) - return; - - while ((event = window_priv->events)) - FreeResource(event->id, RT_NONE); -} - -static void -dri3_event_swap(xGenericEvent *from, xGenericEvent *to) -{ - *to = *from; - swaps(&to->sequenceNumber); - swapl(&to->length); - swaps(&to->evtype); - switch (from->evtype) { - case DRI3_ConfigureNotify: { - xDRI3ConfigureNotify *c = (xDRI3ConfigureNotify *) to; - - swapl(&c->eid); - swapl(&c->window); - swaps(&c->x); - swaps(&c->y); - swaps(&c->width); - swaps(&c->height); - swaps(&c->off_x); - swaps(&c->off_y); - swaps(&c->pixmap_width); - swaps(&c->pixmap_height); - swapl(&c->pixmap_flags); - break; - } - } -} - -void -dri3_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw, WindowPtr sibling) -{ - dri3_window_priv_ptr window_priv = dri3_window_priv(window); - - if (window_priv) { - xDRI3ConfigureNotify cn = { - .type = GenericEvent, - .extension = dri3_request, - .length = (sizeof(xDRI3ConfigureNotify) - 32) >> 2, - .evtype = DRI3_ConfigureNotify, - .eid = 0, - .window = window->drawable.id, - .x = x, - .y = y, - .width = w, - .height = h, - .off_x = 0, - .off_y = 0, - .pixmap_width = w, - .pixmap_height = h, - .pixmap_flags = 0 - }; - dri3_event_ptr event; - dri3_screen_priv_ptr screen_priv = dri3_screen_priv(window->drawable.pScreen); - - if (screen_priv->info && screen_priv->info->driver_config) - screen_priv->info->driver_config(window, &cn); - - for (event = window_priv->events; event; event = event->next) { - if (event->mask & (1 << DRI3ConfigureNotify)) { - cn.eid = event->id; - WriteEventsToClient(event->client, 1, (xEvent *) &cn); - } - } - } -} - -int -dri3_select_input(ClientPtr client, XID eid, WindowPtr window, CARD32 mask) -{ - dri3_window_priv_ptr window_priv = dri3_window_priv(window); - dri3_event_ptr event; - - if (!window_priv) - return BadAlloc; - - event = calloc (1, sizeof (dri3_event_rec)); - if (!event) - return BadAlloc; - - event->client = client; - event->window = window; - event->id = eid; - event->mask = mask; - - event->next = window_priv->events; - window_priv->events = event; - - if (!AddResource(event->id, dri3_event_type, (void *) event)) - return BadAlloc; - - return Success; -} - -Bool -dri3_event_init(void) -{ - dri3_event_type = CreateNewResourceType(dri3_free_event, "DRI3Event"); - if (!dri3_event_type) - return FALSE; - - GERegisterExtension(dri3_request, dri3_event_swap); - return TRUE; -} diff --git a/dri3/dri3_priv.h b/dri3/dri3_priv.h index e2fed839b..e61ef226c 100644 --- a/dri3/dri3_priv.h +++ b/dri3/dri3_priv.h @@ -32,8 +32,6 @@ #include <randrstr.h> #include "dri3.h" -extern int dri3_request; - extern DevPrivateKeyRec dri3_screen_private_key; typedef struct dri3_screen_priv { @@ -472,13 +472,8 @@ typedef struct { #define fbGetWindowPixmap(pWin) ((PixmapPtr)\ dixLookupPrivate(&((WindowPtr)(pWin))->devPrivates, fbGetWinPrivateKey(pWin))) -#ifdef ROOTLESS #define __fbPixDrawableX(pPix) ((pPix)->drawable.x) #define __fbPixDrawableY(pPix) ((pPix)->drawable.y) -#else -#define __fbPixDrawableX(pPix) 0 -#define __fbPixDrawableY(pPix) 0 -#endif #ifdef COMPOSITE #define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix) - (pPix)->screen_x) diff --git a/glx/createcontext.c b/glx/createcontext.c index cbeddec26..d06bc1f7f 100644 --- a/glx/createcontext.c +++ b/glx/createcontext.c @@ -87,6 +87,9 @@ __glXDisp_CreateContextAttribsARB(__GLXclientState * cl, GLbyte * pc) int minor_version = 0; uint32_t flags = 0; uint32_t render_type = GLX_RGBA_TYPE; +#ifdef GLX_CONTEXT_RELEASE_BEHAVIOR_ARB + uint32_t flush = GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB; +#endif __GLXcontext *ctx = NULL; __GLXcontext *shareCtx = NULL; __GLXscreen *glxScreen; @@ -194,6 +197,15 @@ __glXDisp_CreateContextAttribsARB(__GLXclientState * cl, GLbyte * pc) break; +#ifdef GLX_CONTEXT_RELEASE_BEHAVIOR_ARB + case GLX_CONTEXT_RELEASE_BEHAVIOR_ARB: + flush = attribs[2 * i + 1]; + if (flush != GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB + && flush != GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB) + return BadValue; + break; +#endif + default: return BadValue; } @@ -333,6 +345,9 @@ __glXDisp_CreateContextAttribsARB(__GLXclientState * cl, GLbyte * pc) ctx->drawPriv = NULL; ctx->readPriv = NULL; ctx->resetNotificationStrategy = reset; +#ifdef GLX_CONTEXT_RELEASE_BEHAVIOR_ARB + ctx->releaseBehavior = flush; +#endif /* Add the new context to the various global tables of GLX contexts. */ diff --git a/glx/extension_string.c b/glx/extension_string.c index 4bef96f0b..e881d2109 100644 --- a/glx/extension_string.c +++ b/glx/extension_string.c @@ -72,6 +72,7 @@ struct extension_info { static const struct extension_info known_glx_extensions[] = { /* GLX_ARB_get_proc_address is implemented on the client. */ /* *INDENT-OFF* */ + { GLX(ARB_context_flush_control), VER(0,0), N, }, { GLX(ARB_create_context), VER(0,0), N, }, { GLX(ARB_create_context_profile), VER(0,0), N, }, { GLX(ARB_create_context_robustness), VER(0,0), N, }, diff --git a/glx/extension_string.h b/glx/extension_string.h index e7d393297..bac7b0624 100644 --- a/glx/extension_string.h +++ b/glx/extension_string.h @@ -36,7 +36,8 @@ enum { /* GLX_ARB_get_proc_address is implemented on the client. */ - ARB_create_context_bit = 0, + ARB_context_flush_control_bit = 0, + ARB_create_context_bit, ARB_create_context_profile_bit, ARB_create_context_robustness_bit, ARB_fbconfig_float_bit, diff --git a/glx/glxcmds.c b/glx/glxcmds.c index f5f2babb8..cbd4ede39 100644 --- a/glx/glxcmds.c +++ b/glx/glxcmds.c @@ -334,6 +334,19 @@ DoCreateContext(__GLXclientState * cl, GLXContextID gcId, */ glxc->resetNotificationStrategy = GLX_NO_RESET_NOTIFICATION_ARB; +#ifdef GLX_CONTEXT_RELEASE_BEHAVIOR_ARB + /* The GLX_ARB_context_flush_control spec says: + * + * "The default value [for GLX_CONTEXT_RELEASE_BEHAVIOR] is + * CONTEXT_RELEASE_BEHAVIOR_FLUSH, and may in some cases be changed + * using platform-specific context creation extensions." + * + * Without using glXCreateContextAttribsARB, there is no way to specify a + * non-default release behavior. + */ + glxc->releaseBehavior = GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB; +#endif + /* Add the new context to the various global tables of GLX contexts. */ if (!__glXAddContext(glxc)) { @@ -626,7 +639,12 @@ DoMakeCurrent(__GLXclientState * cl, /* ** Flush the previous context if needed. */ - if (prevglxc->hasUnflushedCommands) { + Bool need_flush = GL_TRUE; +#ifdef GLX_CONTEXT_RELEASE_BEHAVIOR_ARB + if (prevglxc->releaseBehavior == GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB) + need_flush = GL_FALSE; +#endif + if (prevglxc->hasUnflushedCommands && need_flush) { if (__glXForceCurrent(cl, tag, (int *) &error)) { glFlush(); prevglxc->hasUnflushedCommands = GL_FALSE; diff --git a/glx/glxcontext.h b/glx/glxcontext.h index 677898a67..0733281d7 100644 --- a/glx/glxcontext.h +++ b/glx/glxcontext.h @@ -108,6 +108,11 @@ struct __GLXcontext { */ GLenum resetNotificationStrategy; + /** + * Context release behavior + */ + GLenum releaseBehavior; + /* ** Buffers for feedback and selection. */ diff --git a/glx/glxdri2.c b/glx/glxdri2.c index bcd57a4a3..6fb3d9278 100644 --- a/glx/glxdri2.c +++ b/glx/glxdri2.c @@ -921,6 +921,13 @@ initializeExtensions(__GLXDRIscreen * screen) "AIGLX: enabled GLX_ARB_create_context_robustness\n"); } +#ifdef __DRI2_FLUSH_CONTROL + if (strcmp(extensions[i]->name, __DRI2_FLUSH_CONTROL) == 0) { + __glXEnableExtension(screen->glx_enable_bits, + "GLX_ARB_context_flush_control\n"); + } +#endif + /* Ignore unknown extensions */ } } diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c index 5d9aa0437..9add2a13f 100644 --- a/glx/glxdriswrast.c +++ b/glx/glxdriswrast.c @@ -71,6 +71,8 @@ struct __GLXDRIscreen { const __DRIcopySubBufferExtension *copySubBuffer; const __DRItexBufferExtension *texBuffer; const __DRIconfig **driConfigs; + + unsigned char glx_enable_bits[__GLX_EXT_BYTES]; }; struct __GLXDRIcontext { @@ -394,13 +396,28 @@ initializeExtensions(__GLXDRIscreen * screen) const __DRIextension **extensions; int i; + if (screen->swrast->base.version >= 3) { + __glXEnableExtension(screen->glx_enable_bits, + "GLX_ARB_create_context"); + __glXEnableExtension(screen->glx_enable_bits, + "GLX_ARB_create_context_profile"); + __glXEnableExtension(screen->glx_enable_bits, + "GLX_EXT_create_context_es2_profile"); + } + + /* these are harmless to enable unconditionally */ + __glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_framebuffer_sRGB"); + __glXEnableExtension(screen->glx_enable_bits, "GLX_ARB_fbconfig_float"); + __glXEnableExtension(screen->glx_enable_bits, "GLX_SGI_make_current_read"); + extensions = screen->core->getExtensions(screen->driScreen); for (i = 0; extensions[i]; i++) { if (strcmp(extensions[i]->name, __DRI_COPY_SUB_BUFFER) == 0) { screen->copySubBuffer = (const __DRIcopySubBufferExtension *) extensions[i]; - /* GLX_MESA_copy_sub_buffer is always enabled. */ + __glXEnableExtension(screen->glx_enable_bits, + "GLX_MESA_copy_sub_buffer"); } if (strcmp(extensions[i]->name, __DRI_TEX_BUFFER) == 0) { @@ -408,7 +425,13 @@ initializeExtensions(__GLXDRIscreen * screen) /* GLX_EXT_texture_from_pixmap is always enabled. */ } - /* Ignore unknown extensions */ +#ifdef __DRI2_FLUSH_CONTROL + if (strcmp(extensions[i]->name, __DRI2_FLUSH_CONTROL) == 0) { + __glXEnableExtension(screen->glx_enable_bits, + "GLX_ARB_context_flush_control\n"); + } +#endif + } } @@ -420,6 +443,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) { const char *driverName = "swrast"; __GLXDRIscreen *screen; + size_t buffer_size; screen = calloc(1, sizeof *screen); if (screen == NULL) @@ -431,6 +455,8 @@ __glXDRIscreenProbe(ScreenPtr pScreen) screen->base.swapInterval = NULL; screen->base.pScreen = pScreen; + __glXInitExtensionEnableBits(screen->glx_enable_bits); + screen->driver = glxProbeDriver(driverName, (void **) &screen->core, __DRI_CORE, 1, @@ -459,6 +485,19 @@ __glXDRIscreenProbe(ScreenPtr pScreen) __glXScreenInit(&screen->base, pScreen); + /* The first call simply determines the length of the extension string. + * This allows us to allocate some memory to hold the extension string, + * but it requires that we call __glXGetExtensionString a second time. + */ + buffer_size = __glXGetExtensionString(screen->glx_enable_bits, NULL); + if (buffer_size > 0) { + free(screen->base.GLXextensions); + + screen->base.GLXextensions = xnfalloc(buffer_size); + (void) __glXGetExtensionString(screen->glx_enable_bits, + screen->base.GLXextensions); + } + screen->base.GLXmajor = 1; screen->base.GLXminor = 4; diff --git a/hw/vfb/Makefile.am b/hw/vfb/Makefile.am index f0f9fee47..c9ac35e9d 100644 --- a/hw/vfb/Makefile.am +++ b/hw/vfb/Makefile.am @@ -21,7 +21,6 @@ XVFB_LIBS = \ Xvfb_LDADD = $(XVFB_LIBS) $(XVFB_SYS_LIBS) $(XSERVER_SYS_LIBS) Xvfb_DEPENDENCIES = $(XVFB_LIBS) -Xvfb_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG) relink: $(AM_V_at)rm -f Xvfb$(EXEEXT) && $(MAKE) Xvfb$(EXEEXT) diff --git a/hw/xfree86/common/Makefile.am b/hw/xfree86/common/Makefile.am index 54e7f4d0a..3bc0046aa 100644 --- a/hw/xfree86/common/Makefile.am +++ b/hw/xfree86/common/Makefile.am @@ -16,7 +16,6 @@ endif if XF86VIDMODE XF86VMODESOURCES = xf86vmode.c -XF86VMODE_SDK = vidmodeproc.h endif if DGA diff --git a/hw/xfree86/common/dgaproc.h b/hw/xfree86/common/dgaproc.h index 87e923f26..7925bd483 100644 --- a/hw/xfree86/common/dgaproc.h +++ b/hw/xfree86/common/dgaproc.h @@ -54,57 +54,15 @@ typedef struct { /* DDX interface */ -extern _X_EXPORT int - DGASetMode(int Index, int num, XDGAModePtr mode, PixmapPtr *pPix); - -extern _X_EXPORT void - DGASetInputMode(int Index, Bool keyboard, Bool mouse); - -extern _X_EXPORT void - DGASelectInput(int Index, ClientPtr client, long mask); - -extern _X_EXPORT Bool DGAAvailable(int Index); -extern _X_EXPORT Bool DGAScreenAvailable(ScreenPtr pScreen); -extern _X_EXPORT Bool DGAActive(int Index); -extern _X_EXPORT void DGAShutdown(void); -extern _X_EXPORT void DGAInstallCmap(ColormapPtr cmap); -extern _X_EXPORT int DGAGetViewportStatus(int Index); -extern _X_EXPORT int DGASync(int Index); - -extern _X_EXPORT int - DGAFillRect(int Index, int x, int y, int w, int h, unsigned long color); - -extern _X_EXPORT int - DGABlitRect(int Index, int srcx, int srcy, int w, int h, int dstx, int dsty); - -extern _X_EXPORT int - -DGABlitTransRect(int Index, - int srcx, int srcy, - int w, int h, int dstx, int dsty, unsigned long color); - -extern _X_EXPORT int - DGASetViewport(int Index, int x, int y, int mode); - -extern _X_EXPORT int DGAGetModes(int Index); -extern _X_EXPORT int DGAGetOldDGAMode(int Index); - -extern _X_EXPORT int DGAGetModeInfo(int Index, XDGAModePtr mode, int num); - -extern _X_EXPORT Bool DGAVTSwitch(void); -extern _X_EXPORT Bool DGAStealButtonEvent(DeviceIntPtr dev, int Index, - int button, int is_down); -extern _X_EXPORT Bool DGAStealMotionEvent(DeviceIntPtr dev, int Index, int dx, - int dy); -extern _X_EXPORT Bool DGAStealKeyEvent(DeviceIntPtr dev, int Index, - int key_code, int is_down); - -extern _X_EXPORT Bool DGAOpenFramebuffer(int Index, char **name, - unsigned char **mem, int *size, - int *offset, int *flags); -extern _X_EXPORT void DGACloseFramebuffer(int Index); -extern _X_EXPORT Bool DGAChangePixmapMode(int Index, int *x, int *y, int mode); -extern _X_EXPORT int DGACreateColormap(int Index, ClientPtr client, int id, - int mode, int alloc); +extern Bool DGAScreenAvailable(ScreenPtr pScreen); +extern Bool DGAActive(int Index); +extern void DGAShutdown(void); + +extern Bool DGAVTSwitch(void); +extern Bool DGAStealButtonEvent(DeviceIntPtr dev, int Index, + int button, int is_down); +extern Bool DGAStealMotionEvent(DeviceIntPtr dev, int Index, int dx, int dy); +extern Bool DGAStealKeyEvent(DeviceIntPtr dev, int Index, + int key_code, int is_down); #endif /* __DGAPROC_H */ diff --git a/hw/xfree86/common/vidmodeproc.h b/hw/xfree86/common/vidmodeproc.h index cff340c47..59d714c77 100644 --- a/hw/xfree86/common/vidmodeproc.h +++ b/hw/xfree86/common/vidmodeproc.h @@ -41,44 +41,43 @@ typedef union { extern Bool VidModeExtensionInit(ScreenPtr pScreen); -extern _X_EXPORT Bool VidModeAvailable(int scrnIndex); -extern _X_EXPORT Bool VidModeGetCurrentModeline(int scrnIndex, void **mode, - int *dotClock); -extern _X_EXPORT Bool VidModeGetFirstModeline(int scrnIndex, void **mode, - int *dotClock); -extern _X_EXPORT Bool VidModeGetNextModeline(int scrnIndex, void **mode, - int *dotClock); -extern _X_EXPORT Bool VidModeDeleteModeline(int scrnIndex, void *mode); -extern _X_EXPORT Bool VidModeZoomViewport(int scrnIndex, int zoom); -extern _X_EXPORT Bool VidModeGetViewPort(int scrnIndex, int *x, int *y); -extern _X_EXPORT Bool VidModeSetViewPort(int scrnIndex, int x, int y); -extern _X_EXPORT Bool VidModeSwitchMode(int scrnIndex, void *mode); -extern _X_EXPORT Bool VidModeLockZoom(int scrnIndex, Bool lock); -extern _X_EXPORT Bool VidModeGetMonitor(int scrnIndex, void **monitor); -extern _X_EXPORT int VidModeGetNumOfClocks(int scrnIndex, Bool *progClock); -extern _X_EXPORT Bool VidModeGetClocks(int scrnIndex, int *Clocks); -extern _X_EXPORT ModeStatus VidModeCheckModeForMonitor(int scrnIndex, - void *mode); -extern _X_EXPORT ModeStatus VidModeCheckModeForDriver(int scrnIndex, - void *mode); -extern _X_EXPORT void VidModeSetCrtcForMode(int scrnIndex, void *mode); -extern _X_EXPORT Bool VidModeAddModeline(int scrnIndex, void *mode); -extern _X_EXPORT int VidModeGetDotClock(int scrnIndex, int Clock); -extern _X_EXPORT int VidModeGetNumOfModes(int scrnIndex); -extern _X_EXPORT Bool VidModeSetGamma(int scrnIndex, float red, float green, - float blue); -extern _X_EXPORT Bool VidModeGetGamma(int scrnIndex, float *red, float *green, - float *blue); -extern _X_EXPORT void *VidModeCreateMode(void); -extern _X_EXPORT void VidModeCopyMode(void *modefrom, void *modeto); -extern _X_EXPORT int VidModeGetModeValue(void *mode, int valtyp); -extern _X_EXPORT void VidModeSetModeValue(void *mode, int valtyp, int val); -extern _X_EXPORT vidMonitorValue VidModeGetMonitorValue(void *monitor, - int valtyp, int indx); -extern _X_EXPORT Bool VidModeSetGammaRamp(int, int, CARD16 *, CARD16 *, - CARD16 *); -extern _X_EXPORT Bool VidModeGetGammaRamp(int, int, CARD16 *, CARD16 *, - CARD16 *); -extern _X_EXPORT int VidModeGetGammaRampSize(int scrnIndex); +extern Bool VidModeGetCurrentModeline(int scrnIndex, void **mode, + int *dotClock); +extern Bool VidModeGetFirstModeline(int scrnIndex, void **mode, + int *dotClock); +extern Bool VidModeGetNextModeline(int scrnIndex, void **mode, + int *dotClock); +extern Bool VidModeDeleteModeline(int scrnIndex, void *mode); +extern Bool VidModeZoomViewport(int scrnIndex, int zoom); +extern Bool VidModeGetViewPort(int scrnIndex, int *x, int *y); +extern Bool VidModeSetViewPort(int scrnIndex, int x, int y); +extern Bool VidModeSwitchMode(int scrnIndex, void *mode); +extern Bool VidModeLockZoom(int scrnIndex, Bool lock); +extern Bool VidModeGetMonitor(int scrnIndex, void **monitor); +extern int VidModeGetNumOfClocks(int scrnIndex, Bool *progClock); +extern Bool VidModeGetClocks(int scrnIndex, int *Clocks); +extern ModeStatus VidModeCheckModeForMonitor(int scrnIndex, + void *mode); +extern ModeStatus VidModeCheckModeForDriver(int scrnIndex, + void *mode); +extern void VidModeSetCrtcForMode(int scrnIndex, void *mode); +extern Bool VidModeAddModeline(int scrnIndex, void *mode); +extern int VidModeGetDotClock(int scrnIndex, int Clock); +extern int VidModeGetNumOfModes(int scrnIndex); +extern Bool VidModeSetGamma(int scrnIndex, float red, float green, + float blue); +extern Bool VidModeGetGamma(int scrnIndex, float *red, float *green, + float *blue); +extern void *VidModeCreateMode(void); +extern void VidModeCopyMode(void *modefrom, void *modeto); +extern int VidModeGetModeValue(void *mode, int valtyp); +extern void VidModeSetModeValue(void *mode, int valtyp, int val); +extern vidMonitorValue VidModeGetMonitorValue(void *monitor, + int valtyp, int indx); +extern Bool VidModeSetGammaRamp(int, int, CARD16 *, CARD16 *, + CARD16 *); +extern Bool VidModeGetGammaRamp(int, int, CARD16 *, CARD16 *, + CARD16 *); +extern int VidModeGetGammaRampSize(int scrnIndex); #endif diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h index 49ff35b86..1cde47873 100644 --- a/hw/xfree86/common/xf86.h +++ b/hw/xfree86/common/xf86.h @@ -368,22 +368,11 @@ xf86GetBppFromDepth(ScrnInfoPtr pScrn, int depth); /* xf86Mode.c */ -extern _X_EXPORT int -xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2, - int DivFactor, int MulFactor, int *divider); extern _X_EXPORT const char * xf86ModeStatusToString(ModeStatus status); extern _X_EXPORT ModeStatus -xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep, - ClockRangePtr clockRanges, LookupModeFlags strategy); -extern _X_EXPORT ModeStatus xf86CheckModeForMonitor(DisplayModePtr mode, MonPtr monitor); extern _X_EXPORT ModeStatus -xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, - ClockRangePtr clockRanges, - LookupModeFlags strategy, - int maxPitch, int virtualX, int virtualY); -extern _X_EXPORT ModeStatus xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, int flags); extern _X_EXPORT int xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes, diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c index 9533e1c52..c689dcb73 100644 --- a/hw/xfree86/common/xf86DGA.c +++ b/hw/xfree86/common/xf86DGA.c @@ -471,7 +471,7 @@ xf86SetDGAMode(ScrnInfoPtr pScrn, int num, DGADevicePtr devRet) /*********** exported ones ***************/ -void +static void DGASetInputMode(int index, Bool keyboard, Bool mouse) { ScreenPtr pScreen = screenInfo.screens[index]; @@ -488,7 +488,7 @@ DGASetInputMode(int index, Bool keyboard, Bool mouse) } } -Bool +static Bool DGAChangePixmapMode(int index, int *x, int *y, int mode) { DGAScreenPtr pScreenPriv; @@ -560,7 +560,7 @@ DGAScreenAvailable(ScreenPtr pScreen) return FALSE; } -Bool +static Bool DGAAvailable(int index) { ScreenPtr pScreen; @@ -606,7 +606,7 @@ DGAShutdown(void) /* Called by the extension to initialize a mode */ -int +static int DGASetMode(int index, int num, XDGAModePtr mode, PixmapPtr *pPix) { ScrnInfoPtr pScrn = xf86Screens[index]; @@ -626,7 +626,7 @@ DGASetMode(int index, int num, XDGAModePtr mode, PixmapPtr *pPix) /* Called from the extension to let the DDX know which events are requested */ -void +static void DGASelectInput(int index, ClientPtr client, long mask) { DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); @@ -636,7 +636,7 @@ DGASelectInput(int index, ClientPtr client, long mask) pScreenPriv->input = mask; } -int +static int DGAGetViewportStatus(int index) { DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); @@ -649,7 +649,7 @@ DGAGetViewportStatus(int index) return (*pScreenPriv->funcs->GetViewport) (pScreenPriv->pScrn); } -int +static int DGASetViewport(int index, int x, int y, int mode) { DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); @@ -675,7 +675,7 @@ BitsClear(CARD32 data) return bits; } -int +static int DGACreateColormap(int index, ClientPtr client, int id, int mode, int alloc) { ScreenPtr pScreen = screenInfo.screens[index]; @@ -744,7 +744,7 @@ DGACreateColormap(int index, ClientPtr client, int id, int mode, int alloc) /* Called by the extension to install a colormap on DGA active screens */ -void +static void DGAInstallCmap(ColormapPtr cmap) { ScreenPtr pScreen = cmap->pScreen; @@ -760,7 +760,7 @@ DGAInstallCmap(ColormapPtr cmap) (*pScreen->InstallColormap) (cmap); } -int +static int DGASync(int index) { DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); @@ -773,7 +773,7 @@ DGASync(int index) return Success; } -int +static int DGAFillRect(int index, int x, int y, int w, int h, unsigned long color) { DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); @@ -789,7 +789,7 @@ DGAFillRect(int index, int x, int y, int w, int h, unsigned long color) return BadMatch; } -int +static int DGABlitRect(int index, int srcx, int srcy, int w, int h, int dstx, int dsty) { DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); @@ -806,7 +806,7 @@ DGABlitRect(int index, int srcx, int srcy, int w, int h, int dstx, int dsty) return BadMatch; } -int +static int DGABlitTransRect(int index, int srcx, int srcy, int w, int h, int dstx, int dsty, unsigned long color) @@ -826,7 +826,7 @@ DGABlitTransRect(int index, return BadMatch; } -int +static int DGAGetModes(int index) { DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); @@ -836,7 +836,7 @@ DGAGetModes(int index) return pScreenPriv->numModes; } -int +static int DGAGetModeInfo(int index, XDGAModePtr mode, int num) { DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); @@ -1126,7 +1126,7 @@ DGAProcessPointerEvent(ScreenPtr pScreen, DGAEvent * event, DeviceIntPtr mouse) } } -Bool +static Bool DGAOpenFramebuffer(int index, char **name, unsigned char **mem, int *size, int *offset, int *flags) @@ -1140,7 +1140,7 @@ DGAOpenFramebuffer(int index, flags); } -void +static void DGACloseFramebuffer(int index) { DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); @@ -1152,7 +1152,7 @@ DGACloseFramebuffer(int index) /* For DGA 1.0 backwards compatibility only */ -int +static int DGAGetOldDGAMode(int index) { DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); diff --git a/hw/xfree86/common/xf86Mode.c b/hw/xfree86/common/xf86Mode.c index 9a5550faf..3f446ae3b 100644 --- a/hw/xfree86/common/xf86Mode.c +++ b/hw/xfree86/common/xf86Mode.c @@ -112,11 +112,10 @@ printModeRejectMessage(int index, DisplayModePtr p, int status) } /* - * xf86GetNearestClock -- - * Find closest clock to given frequency (in kHz). This assumes the - * number of clocks is greater than zero. + * Find closest clock to given frequency (in kHz). This assumes the + * number of clocks is greater than zero. */ -int +static int xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2, int DivFactor, int MulFactor, int *divider) { @@ -451,7 +450,7 @@ xf86HandleBuiltinMode(ScrnInfoPtr scrp, * reason. */ -ModeStatus +static ModeStatus xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep, ClockRangePtr clockRanges, LookupModeFlags strategy) { @@ -845,7 +844,7 @@ xf86CheckModeSize(ScrnInfoPtr scrp, int w, int x, int y) * maxVValue maximum vertical timing value */ -ModeStatus +static ModeStatus xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, ClockRangePtr clockRanges, LookupModeFlags strategy, diff --git a/hw/xfree86/common/xf86VidMode.c b/hw/xfree86/common/xf86VidMode.c index e708b2792..10c7b4b40 100644 --- a/hw/xfree86/common/xf86VidMode.c +++ b/hw/xfree86/common/xf86VidMode.c @@ -111,7 +111,7 @@ VidModeClose(ScreenPtr pScreen) return pScreen->CloseScreen(pScreen); } -Bool +static Bool VidModeAvailable(int scrnIndex) { ScrnInfoPtr pScrn; diff --git a/hw/xfree86/doc/ddxDesign.xml b/hw/xfree86/doc/ddxDesign.xml index 6a9de9e7f..aed77a9f0 100644 --- a/hw/xfree86/doc/ddxDesign.xml +++ b/hw/xfree86/doc/ddxDesign.xml @@ -6957,28 +6957,6 @@ use of some of these secondary mode helper functions. <blockquote><para> <programlisting> - int xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2, - int *divider); - </programlisting> - <blockquote><para> - This function returns the index of the closest clock to the - frequency <parameter>freq</parameter> given (in kHz). It assumes that - the number of clocks is greater than zero. It requires that the - <structfield>numClocks</structfield> and <structfield>clock</structfield> fields of the - <structname>ScrnInfoRec</structname> are initialised. The - <structfield>allowDiv2</structfield> field determines if the clocks can be - halved. The <parameter>*divider</parameter> return value indicates - whether clock division is used when determining the clock returned. - </para> - - <para> - This function is only for non-programmable clocks. - </para> - - </blockquote></para></blockquote> - - <blockquote><para> - <programlisting> const char *xf86ModeStatusToString(ModeStatus status); </programlisting> <blockquote><para> @@ -6990,59 +6968,6 @@ use of some of these secondary mode helper functions. <blockquote><para> <programlisting> - ModeStatus xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep, - ClockRangePtr clockRanges, LookupModeFlags strategy); - </programlisting> - <blockquote><para> - This function takes a pointer to a mode with the name filled in, - and looks for a mode in the <structfield>modePool</structfield> list which - matches. The parameters of the matching mode are filled in to - <parameter>*modep</parameter>. The <parameter>clockRanges</parameter> and - <parameter>strategy</parameter> parameters are as for the - <function>xf86ValidateModes()</function> function above. - </para> - - <para> - This function requires the <structfield>modePool</structfield>, - <structfield>clock[]</structfield>, <structfield>numClocks</structfield> and - <structfield>progClock</structfield> fields of the <structname>ScrnInfoRec</structname> - to be initialised before being called. - </para> - - <para> - The return value is <constant>MODE_OK</constant> if a mode was found. - Otherwise it indicates why a matching mode could not be found. - </para> - - </blockquote></para></blockquote> - - <blockquote><para> - <programlisting> - ModeStatus xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, - DisplayModePtr mode, ClockRangePtr clockRanges, - LookupModeFlags strategy, int maxPitch, - int virtualX, int virtualY); - </programlisting> - <blockquote><para> - This function checks the passed mode against some basic driver - constraints. Apart from the ones passed explicitly, the - <structfield>maxHValue</structfield> and <structfield>maxVValue</structfield> fields of - the <structname>ScrnInfoRec</structname> are also used. If the - <structfield>ValidMode</structfield> field of the <structname>ScrnInfoRec</structname> - is set, that function is also called to check the mode. Next, the - mode is checked against the monitor's constraints. - </para> - - <para> - If the mode is consistent with all constraints, the return value - is <constant>MODE_OK</constant>. Otherwise the return value indicates - which constraint wasn't met. - </para> - - </blockquote></para></blockquote> - - <blockquote><para> - <programlisting> void xf86DeleteMode(DisplayModePtr *modeList, DisplayModePtr mode); </programlisting> <blockquote><para> diff --git a/hw/xfree86/parser/InputClass.c b/hw/xfree86/parser/InputClass.c index c2fbd22a7..29bd9fa64 100644 --- a/hw/xfree86/parser/InputClass.c +++ b/hw/xfree86/parser/InputClass.c @@ -58,6 +58,82 @@ xf86ConfigSymTabRec InputClassTab[] = { {-1, ""}, }; +static void +xf86freeInputClassList(XF86ConfInputClassPtr ptr) +{ + XF86ConfInputClassPtr prev; + + while (ptr) { + xf86MatchGroup *group, *next; + char **list; + + TestFree(ptr->identifier); + TestFree(ptr->driver); + + xorg_list_for_each_entry_safe(group, next, &ptr->match_product, entry) { + xorg_list_del(&group->entry); + for (list = group->values; *list; list++) + free(*list); + free(group); + } + xorg_list_for_each_entry_safe(group, next, &ptr->match_vendor, entry) { + xorg_list_del(&group->entry); + for (list = group->values; *list; list++) + free(*list); + free(group); + } + xorg_list_for_each_entry_safe(group, next, &ptr->match_device, entry) { + xorg_list_del(&group->entry); + for (list = group->values; *list; list++) + free(*list); + free(group); + } + xorg_list_for_each_entry_safe(group, next, &ptr->match_os, entry) { + xorg_list_del(&group->entry); + for (list = group->values; *list; list++) + free(*list); + free(group); + } + xorg_list_for_each_entry_safe(group, next, &ptr->match_pnpid, entry) { + xorg_list_del(&group->entry); + for (list = group->values; *list; list++) + free(*list); + free(group); + } + xorg_list_for_each_entry_safe(group, next, &ptr->match_usbid, entry) { + xorg_list_del(&group->entry); + for (list = group->values; *list; list++) + free(*list); + free(group); + } + xorg_list_for_each_entry_safe(group, next, &ptr->match_driver, entry) { + xorg_list_del(&group->entry); + for (list = group->values; *list; list++) + free(*list); + free(group); + } + xorg_list_for_each_entry_safe(group, next, &ptr->match_tag, entry) { + xorg_list_del(&group->entry); + for (list = group->values; *list; list++) + free(*list); + free(group); + } + xorg_list_for_each_entry_safe(group, next, &ptr->match_layout, entry) { + xorg_list_del(&group->entry); + for (list = group->values; *list; list++) + free(*list); + free(group); + } + + TestFree(ptr->comment); + xf86optionListFree(ptr->option_lst); + + prev = ptr; + ptr = ptr->list.next; + free(prev); + } +} + #define CLEANUP xf86freeInputClassList #define TOKEN_SEP "|" @@ -354,79 +430,3 @@ xf86printInputClassSection(FILE * cf, XF86ConfInputClassPtr ptr) ptr = ptr->list.next; } } - -void -xf86freeInputClassList(XF86ConfInputClassPtr ptr) -{ - XF86ConfInputClassPtr prev; - - while (ptr) { - xf86MatchGroup *group, *next; - char **list; - - TestFree(ptr->identifier); - TestFree(ptr->driver); - - xorg_list_for_each_entry_safe(group, next, &ptr->match_product, entry) { - xorg_list_del(&group->entry); - for (list = group->values; *list; list++) - free(*list); - free(group); - } - xorg_list_for_each_entry_safe(group, next, &ptr->match_vendor, entry) { - xorg_list_del(&group->entry); - for (list = group->values; *list; list++) - free(*list); - free(group); - } - xorg_list_for_each_entry_safe(group, next, &ptr->match_device, entry) { - xorg_list_del(&group->entry); - for (list = group->values; *list; list++) - free(*list); - free(group); - } - xorg_list_for_each_entry_safe(group, next, &ptr->match_os, entry) { - xorg_list_del(&group->entry); - for (list = group->values; *list; list++) - free(*list); - free(group); - } - xorg_list_for_each_entry_safe(group, next, &ptr->match_pnpid, entry) { - xorg_list_del(&group->entry); - for (list = group->values; *list; list++) - free(*list); - free(group); - } - xorg_list_for_each_entry_safe(group, next, &ptr->match_usbid, entry) { - xorg_list_del(&group->entry); - for (list = group->values; *list; list++) - free(*list); - free(group); - } - xorg_list_for_each_entry_safe(group, next, &ptr->match_driver, entry) { - xorg_list_del(&group->entry); - for (list = group->values; *list; list++) - free(*list); - free(group); - } - xorg_list_for_each_entry_safe(group, next, &ptr->match_tag, entry) { - xorg_list_del(&group->entry); - for (list = group->values; *list; list++) - free(*list); - free(group); - } - xorg_list_for_each_entry_safe(group, next, &ptr->match_layout, entry) { - xorg_list_del(&group->entry); - for (list = group->values; *list; list++) - free(*list); - free(group); - } - - TestFree(ptr->comment); - xf86optionListFree(ptr->option_lst); - - prev = ptr; - ptr = ptr->list.next; - free(prev); - } -} diff --git a/hw/xfree86/parser/OutputClass.c b/hw/xfree86/parser/OutputClass.c index 7e9a8ac1a..3f2082ecb 100644 --- a/hw/xfree86/parser/OutputClass.c +++ b/hw/xfree86/parser/OutputClass.c @@ -41,6 +41,32 @@ xf86ConfigSymTabRec OutputClassTab[] = { {-1, ""}, }; +static void +xf86freeOutputClassList(XF86ConfOutputClassPtr ptr) +{ + XF86ConfOutputClassPtr prev; + + while (ptr) { + xf86MatchGroup *group, *next; + char **list; + + TestFree(ptr->identifier); + TestFree(ptr->comment); + TestFree(ptr->driver); + + xorg_list_for_each_entry_safe(group, next, &ptr->match_driver, entry) { + xorg_list_del(&group->entry); + for (list = group->values; *list; list++) + free(*list); + free(group); + } + + prev = ptr; + ptr = ptr->list.next; + free(prev); + } +} + #define CLEANUP xf86freeOutputClassList #define TOKEN_SEP "|" @@ -139,29 +165,3 @@ xf86printOutputClassSection(FILE * cf, XF86ConfOutputClassPtr ptr) ptr = ptr->list.next; } } - -void -xf86freeOutputClassList(XF86ConfOutputClassPtr ptr) -{ - XF86ConfOutputClassPtr prev; - - while (ptr) { - xf86MatchGroup *group, *next; - char **list; - - TestFree(ptr->identifier); - TestFree(ptr->comment); - TestFree(ptr->driver); - - xorg_list_for_each_entry_safe(group, next, &ptr->match_driver, entry) { - xorg_list_del(&group->entry); - for (list = group->values; *list; list++) - free(*list); - free(group); - } - - prev = ptr; - ptr = ptr->list.next; - free(prev); - } -} diff --git a/hw/xfree86/parser/Screen.c b/hw/xfree86/parser/Screen.c index b5b454ff4..47319706f 100644 --- a/hw/xfree86/parser/Screen.c +++ b/hw/xfree86/parser/Screen.c @@ -76,6 +76,33 @@ static xf86ConfigSymTabRec DisplayTab[] = { {-1, ""}, }; +static void +xf86freeModeList(XF86ModePtr ptr) +{ + XF86ModePtr prev; + + while (ptr) { + TestFree(ptr->mode_name); + prev = ptr; + ptr = ptr->list.next; + free(prev); + } +} + +static void +xf86freeDisplayList(XF86ConfDisplayPtr ptr) +{ + XF86ConfDisplayPtr prev; + + while (ptr) { + xf86freeModeList(ptr->disp_mode_lst); + xf86optionListFree(ptr->disp_option_lst); + prev = ptr; + ptr = ptr->list.next; + free(prev); + } +} + #define CLEANUP xf86freeDisplayList static XF86ConfDisplayPtr @@ -433,28 +460,7 @@ xf86printScreenSection(FILE * cf, XF86ConfScreenPtr ptr) } -void -xf86freeScreenList(XF86ConfScreenPtr ptr) -{ - XF86ConfScreenPtr prev; - int i; - while (ptr) { - TestFree(ptr->scrn_identifier); - TestFree(ptr->scrn_monitor_str); - TestFree(ptr->scrn_device_str); - for (i = 0; i < ptr->num_gpu_devices; i++) - TestFree(ptr->scrn_gpu_device_str[i]); - TestFree(ptr->scrn_comment); - xf86optionListFree(ptr->scrn_option_lst); - xf86freeAdaptorLinkList(ptr->scrn_adaptor_lst); - xf86freeDisplayList(ptr->scrn_display_lst); - prev = ptr; - ptr = ptr->list.next; - free(prev); - } -} - -void +static void xf86freeAdaptorLinkList(XF86ConfAdaptorLinkPtr ptr) { XF86ConfAdaptorLinkPtr prev; @@ -468,26 +474,20 @@ xf86freeAdaptorLinkList(XF86ConfAdaptorLinkPtr ptr) } void -xf86freeDisplayList(XF86ConfDisplayPtr ptr) -{ - XF86ConfDisplayPtr prev; - - while (ptr) { - xf86freeModeList(ptr->disp_mode_lst); - xf86optionListFree(ptr->disp_option_lst); - prev = ptr; - ptr = ptr->list.next; - free(prev); - } -} - -void -xf86freeModeList(XF86ModePtr ptr) +xf86freeScreenList(XF86ConfScreenPtr ptr) { - XF86ModePtr prev; - + XF86ConfScreenPtr prev; + int i; while (ptr) { - TestFree(ptr->mode_name); + TestFree(ptr->scrn_identifier); + TestFree(ptr->scrn_monitor_str); + TestFree(ptr->scrn_device_str); + for (i = 0; i < ptr->num_gpu_devices; i++) + TestFree(ptr->scrn_gpu_device_str[i]); + TestFree(ptr->scrn_comment); + xf86optionListFree(ptr->scrn_option_lst); + xf86freeAdaptorLinkList(ptr->scrn_adaptor_lst); + xf86freeDisplayList(ptr->scrn_display_lst); prev = ptr; ptr = ptr->list.next; free(prev); diff --git a/hw/xfree86/parser/Vendor.c b/hw/xfree86/parser/Vendor.c index 4f6e510bb..f137a4eb9 100644 --- a/hw/xfree86/parser/Vendor.c +++ b/hw/xfree86/parser/Vendor.c @@ -68,6 +68,22 @@ static xf86ConfigSymTabRec VendorSubTab[] = { {-1, ""}, }; +static void +xf86freeVendorSubList(XF86ConfVendSubPtr ptr) +{ + XF86ConfVendSubPtr prev; + + while (ptr) { + TestFree(ptr->vs_identifier); + TestFree(ptr->vs_name); + TestFree(ptr->vs_comment); + xf86optionListFree(ptr->vs_option_lst); + prev = ptr; + ptr = ptr->list.next; + free(prev); + } +} + #define CLEANUP xf86freeVendorSubList static XF86ConfVendSubPtr @@ -215,19 +231,3 @@ xf86freeVendorList(XF86ConfVendorPtr p) xf86optionListFree(p->vnd_option_lst); free(p); } - -void -xf86freeVendorSubList(XF86ConfVendSubPtr ptr) -{ - XF86ConfVendSubPtr prev; - - while (ptr) { - TestFree(ptr->vs_identifier); - TestFree(ptr->vs_name); - TestFree(ptr->vs_comment); - xf86optionListFree(ptr->vs_option_lst); - prev = ptr; - ptr = ptr->list.next; - free(prev); - } -} diff --git a/hw/xfree86/parser/configProcs.h b/hw/xfree86/parser/configProcs.h index 774e2a2da..e6c231e2d 100644 --- a/hw/xfree86/parser/configProcs.h +++ b/hw/xfree86/parser/configProcs.h @@ -55,12 +55,10 @@ int xf86validateInput(XF86ConfigPtr p); /* InputClass.c */ XF86ConfInputClassPtr xf86parseInputClassSection(void); void xf86printInputClassSection(FILE * f, XF86ConfInputClassPtr ptr); -void xf86freeInputClassList(XF86ConfInputClassPtr ptr); /* OutputClass.c */ XF86ConfOutputClassPtr xf86parseOutputClassSection(void); void xf86printOutputClassSection(FILE * f, XF86ConfOutputClassPtr ptr); -void xf86freeOutputClassList(XF86ConfOutputClassPtr ptr); /* Layout.c */ XF86ConfLayoutPtr xf86parseLayoutSection(void); @@ -92,16 +90,12 @@ XF86ConfInputPtr xf86parsePointerSection(void); XF86ConfScreenPtr xf86parseScreenSection(void); void xf86printScreenSection(FILE * cf, XF86ConfScreenPtr ptr); extern _X_EXPORT void xf86freeScreenList(XF86ConfScreenPtr ptr); -void xf86freeAdaptorLinkList(XF86ConfAdaptorLinkPtr ptr); -void xf86freeDisplayList(XF86ConfDisplayPtr ptr); -void xf86freeModeList(XF86ModePtr ptr); int xf86validateScreen(XF86ConfigPtr p); /* Vendor.c */ XF86ConfVendorPtr xf86parseVendorSection(void); void xf86freeVendorList(XF86ConfVendorPtr p); void xf86printVendorSection(FILE * cf, XF86ConfVendorPtr ptr); -void xf86freeVendorSubList(XF86ConfVendSubPtr ptr); /* Video.c */ XF86ConfVideoAdaptorPtr xf86parseVideoAdaptorSection(void); diff --git a/hw/xfree86/sdksyms.sh b/hw/xfree86/sdksyms.sh index 05ac41096..5391b72dd 100755 --- a/hw/xfree86/sdksyms.sh +++ b/hw/xfree86/sdksyms.sh @@ -54,7 +54,6 @@ cat > sdksyms.c << EOF #include "xvmcext.h" #endif #include "geext.h" -#include "geint.h" #ifdef MITSHM #include "shmint.h" #endif @@ -137,9 +136,6 @@ cat > sdksyms.c << EOF # include "xf86xvmc.h" # include "xf86xvpriv.h" #endif -#if XF86VIDMODE -# include "vidmodeproc.h" -#endif #include "xorgVersion.h" #if defined(__sparc__) || defined(__sparc) # include "xf86sbusBus.h" @@ -180,12 +176,6 @@ cat > sdksyms.c << EOF #endif -/* hw/xfree86/dixmods/extmod/Makefile.am -- module */ -#ifdef XFreeXDGA -#include "dgaproc.h" -#endif - - /* hw/xfree86/parser/Makefile.am */ #include "xf86Parser.h" #include "xf86Optrec.h" @@ -295,8 +285,6 @@ cat > sdksyms.c << EOF #include "selection.h" #include "servermd.h" #include "site.h" -#include "swaprep.h" -#include "swapreq.h" #include "validate.h" #include "window.h" #include "windowstr.h" diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c index 851ce4842..d3ec133f6 100644 --- a/hw/xquartz/quartz.c +++ b/hw/xquartz/quartz.c @@ -300,8 +300,8 @@ QuartzUpdateScreens(void) quartzProcs->UpdateScreen(pScreen); - /* miPaintWindow needs to be called after RootlessUpdateScreenPixmap (from xprUpdateScreen) */ - miPaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND); + /* PaintWindow needs to be called after RootlessUpdateScreenPixmap (from xprUpdateScreen) */ + pScreen->PaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND); /* Tell RandR about the new size, so new connections get the correct info */ RRScreenSizeNotify(pScreen); diff --git a/hw/xwin/winrandr.c b/hw/xwin/winrandr.c index 73925070d..f4ba054bc 100644 --- a/hw/xwin/winrandr.c +++ b/hw/xwin/winrandr.c @@ -104,7 +104,7 @@ winDoRandRScreenSetSize(ScreenPtr pScreen, SetRootClip(pScreen, TRUE); // and arrange for it to be repainted - miPaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND); + pScreen->PaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND); /* Indicate that a screen size change took place */ RRScreenSizeNotify(pScreen); diff --git a/include/Makefile.am b/include/Makefile.am index 738b582e9..70b83ffec 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -52,8 +52,6 @@ sdk_HEADERS = \ selection.h \ servermd.h \ site.h \ - swaprep.h \ - swapreq.h \ validate.h \ window.h \ windowstr.h \ @@ -74,5 +72,7 @@ EXTRA_DIST = \ dixfontstubs.h eventconvert.h eventstr.h inpututils.h \ probes.h \ protocol-versions.h \ + swaprep.h \ + swapreq.h \ systemd-logind.h \ xsha1.h diff --git a/include/colormap.h b/include/colormap.h index 5f6b97fec..f3b18a613 100644 --- a/include/colormap.h +++ b/include/colormap.h @@ -108,18 +108,6 @@ extern _X_EXPORT void FakeAllocColor(ColormapPtr /*pmap */ , extern _X_EXPORT void FakeFreeColor(ColormapPtr /*pmap */ , Pixel /*pixel */ ); -typedef int (*ColorCompareProcPtr) (EntryPtr /*pent */ , - xrgb * /*prgb */ ); - -extern _X_EXPORT int FindColor(ColormapPtr /*pmap */ , - EntryPtr /*pentFirst */ , - int /*size */ , - xrgb * /*prgb */ , - Pixel * /*pPixel */ , - int /*channel */ , - int /*client */ , - ColorCompareProcPtr /*comp */ ); - extern _X_EXPORT int QueryColors(ColormapPtr /*pmap */ , int /*count */ , Pixel * /*ppixIn */ , diff --git a/include/dixfont.h b/include/dixfont.h index 48c630539..1895509b3 100644 --- a/include/dixfont.h +++ b/include/dixfont.h @@ -36,14 +36,6 @@ typedef struct _DIXFontProp *DIXFontPropPtr; extern _X_EXPORT Bool SetDefaultFont(const char * /*defaultfontname */ ); -extern _X_EXPORT void QueueFontWakeup(FontPathElementPtr /*fpe */ ); - -extern _X_EXPORT void RemoveFontWakeup(FontPathElementPtr /*fpe */ ); - -extern _X_EXPORT void FontWakeup(void *data, - int count, - void *LastSelectMask); - extern _X_EXPORT int OpenFont(ClientPtr /*client */ , XID /*fid */ , Mask /*flags */ , @@ -64,14 +56,6 @@ extern _X_EXPORT int ListFonts(ClientPtr /*client */ , unsigned int /*length */ , unsigned int /*max_names */ ); -extern _X_EXPORT int - doListFontsWithInfo(ClientPtr /*client */ , - LFWIclosurePtr /*c */ ); - -extern _X_EXPORT int doPolyText(ClientPtr /*client */ , - PTclosurePtr /*c */ - ); - extern _X_EXPORT int PolyText(ClientPtr /*client */ , DrawablePtr /*pDraw */ , GCPtr /*pGC */ , @@ -82,9 +66,6 @@ extern _X_EXPORT int PolyText(ClientPtr /*client */ , int /*reqType */ , XID /*did */ ); -extern _X_EXPORT int doImageText(ClientPtr /*client */ , - ITclosurePtr /*c */ ); - extern _X_EXPORT int ImageText(ClientPtr /*client */ , DrawablePtr /*pDraw */ , GCPtr /*pGC */ , @@ -126,22 +107,6 @@ extern _X_EXPORT void dixGetGlyphs(FontPtr /*font */ , unsigned long * /*glyphcount */ , CharInfoPtr * /*glyphs */ ); -extern _X_EXPORT void QueryGlyphExtents(FontPtr /*pFont */ , - CharInfoPtr * /*charinfo */ , - unsigned long /*count */ , - ExtentInfoPtr /*info */ ); - -extern _X_EXPORT Bool QueryTextExtents(FontPtr /*pFont */ , - unsigned long /*count */ , - unsigned char * /*chars */ , - ExtentInfoPtr /*info */ ); - -extern _X_EXPORT Bool ParseGlyphCachingMode(char * /*str */ ); - -extern _X_EXPORT void InitGlyphCaching(void); - -extern _X_EXPORT void SetGlyphCachingMode(int /*newmode */ ); - extern _X_EXPORT void register_fpe_functions(void); #endif /* DIXFONT_H */ diff --git a/include/dixstruct.h b/include/dixstruct.h index 6c13895d7..757506623 100644 --- a/include/dixstruct.h +++ b/include/dixstruct.h @@ -126,21 +126,18 @@ SetReqFds(ClientPtr client, int req_fds) { /* * Scheduling interface */ -extern _X_EXPORT long SmartScheduleTime; -extern _X_EXPORT long SmartScheduleInterval; -extern _X_EXPORT long SmartScheduleSlice; -extern _X_EXPORT long SmartScheduleMaxSlice; -extern _X_EXPORT Bool SmartScheduleDisable; -extern _X_EXPORT void -SmartScheduleStartTimer(void); -extern _X_EXPORT void -SmartScheduleStopTimer(void); +extern long SmartScheduleTime; +extern long SmartScheduleInterval; +extern long SmartScheduleSlice; +extern long SmartScheduleMaxSlice; +extern Bool SmartScheduleDisable; +extern void SmartScheduleStartTimer(void); +extern void SmartScheduleStopTimer(void); #define SMART_MAX_PRIORITY (20) #define SMART_MIN_PRIORITY (-20) -extern _X_EXPORT void -SmartScheduleInit(void); +extern void SmartScheduleInit(void); /* This prototype is used pervasively in Xext, dix */ #define DISPATCH_PROC(func) int func(ClientPtr /* client */) @@ -179,13 +176,13 @@ typedef struct _CallbackList { /* proc vectors */ -extern _X_EXPORT int (*InitialVector[3]) (ClientPtr /*client */ ); +extern int (*InitialVector[3]) (ClientPtr /*client */ ); extern _X_EXPORT int (*ProcVector[256]) (ClientPtr /*client */ ); extern _X_EXPORT int (*SwappedProcVector[256]) (ClientPtr /*client */ ); -extern _X_EXPORT ReplySwapPtr ReplySwapVector[256]; +extern ReplySwapPtr ReplySwapVector[256]; extern _X_EXPORT int ProcBadRequest(ClientPtr /*client */ ); diff --git a/include/scrnintstr.h b/include/scrnintstr.h index a627fe7ac..2e617c466 100644 --- a/include/scrnintstr.h +++ b/include/scrnintstr.h @@ -158,6 +158,10 @@ typedef void (*PostValidateTreeProcPtr) (WindowPtr /*pParent */ , typedef void (*WindowExposuresProcPtr) (WindowPtr /*pWindow */ , RegionPtr /*prgn */); +typedef void (*PaintWindowProcPtr) (WindowPtr /*pWindow*/, + RegionPtr /*pRegion*/, + int /*what*/); + typedef void (*CopyWindowProcPtr) (WindowPtr /*pWindow */ , DDXPointRec /*ptOldOrg */ , RegionPtr /*prgnSrc */ ); @@ -498,6 +502,7 @@ typedef struct _Screen { ClearToBackgroundProcPtr ClearToBackground; ClipNotifyProcPtr ClipNotify; RestackWindowProcPtr RestackWindow; + PaintWindowProcPtr PaintWindow; /* Pixmap procedures */ diff --git a/include/swaprep.h b/include/swaprep.h index 3fa2a090c..63c54c7fb 100644 --- a/include/swaprep.h +++ b/include/swaprep.h @@ -26,207 +26,207 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef SWAPREP_H #define SWAPREP_H 1 -extern _X_EXPORT void Swap32Write(ClientPtr /* pClient */ , - int /* size */ , - CARD32 * /* pbuf */ ); +extern void Swap32Write(ClientPtr /* pClient */ , + int /* size */ , + CARD32 * /* pbuf */ ); -extern _X_EXPORT void CopySwap32Write(ClientPtr /* pClient */ , - int /* size */ , - CARD32 * /* pbuf */ ); +extern void CopySwap32Write(ClientPtr /* pClient */ , + int /* size */ , + CARD32 * /* pbuf */ ); + +extern void CopySwap16Write(ClientPtr /* pClient */ , + int /* size */ , + short * /* pbuf */ ); + +extern void SGenericReply(ClientPtr /* pClient */ , + int /* size */ , + xGenericReply * /* pRep */ ); -extern _X_EXPORT void CopySwap16Write(ClientPtr /* pClient */ , +extern void SGetWindowAttributesReply(ClientPtr /* pClient */ , int /* size */ , - short * /* pbuf */ ); + xGetWindowAttributesReply * + /* pRep */ ); + +extern void SGetGeometryReply(ClientPtr /* pClient */ , + int /* size */ , + xGetGeometryReply * /* pRep */ ); + +extern void SQueryTreeReply(ClientPtr /* pClient */ , + int /* size */ , + xQueryTreeReply * /* pRep */ ); + +extern void SInternAtomReply(ClientPtr /* pClient */ , + int /* size */ , + xInternAtomReply * /* pRep */ ); + +extern void SGetAtomNameReply(ClientPtr /* pClient */ , + int /* size */ , + xGetAtomNameReply * /* pRep */ ); -extern _X_EXPORT void SGenericReply(ClientPtr /* pClient */ , +extern void SGetPropertyReply(ClientPtr /* pClient */ , + int /* size */ , + xGetPropertyReply * /* pRep */ ); + +extern void SListPropertiesReply(ClientPtr /* pClient */ , + int /* size */ , + xListPropertiesReply * /* pRep */ ); + +extern void SGetSelectionOwnerReply(ClientPtr /* pClient */ , int /* size */ , - xGenericReply * /* pRep */ ); + xGetSelectionOwnerReply * + /* pRep */ ); -extern _X_EXPORT void SGetWindowAttributesReply(ClientPtr /* pClient */ , - int /* size */ , - xGetWindowAttributesReply * - /* pRep */ ); +extern void SQueryPointerReply(ClientPtr /* pClient */ , + int /* size */ , + xQueryPointerReply * /* pRep */ ); -extern _X_EXPORT void SGetGeometryReply(ClientPtr /* pClient */ , - int /* size */ , - xGetGeometryReply * /* pRep */ ); +extern void SwapTimeCoordWrite(ClientPtr /* pClient */ , + int /* size */ , + xTimecoord * /* pRep */ ); -extern _X_EXPORT void SQueryTreeReply(ClientPtr /* pClient */ , - int /* size */ , - xQueryTreeReply * /* pRep */ ); +extern void SGetMotionEventsReply(ClientPtr /* pClient */ , + int /* size */ , + xGetMotionEventsReply * /* pRep */ + ); -extern _X_EXPORT void SInternAtomReply(ClientPtr /* pClient */ , - int /* size */ , - xInternAtomReply * /* pRep */ ); +extern void STranslateCoordsReply(ClientPtr /* pClient */ , + int /* size */ , + xTranslateCoordsReply * /* pRep */ + ); -extern _X_EXPORT void SGetAtomNameReply(ClientPtr /* pClient */ , - int /* size */ , - xGetAtomNameReply * /* pRep */ ); +extern void SGetInputFocusReply(ClientPtr /* pClient */ , + int /* size */ , + xGetInputFocusReply * /* pRep */ ); -extern _X_EXPORT void SGetPropertyReply(ClientPtr /* pClient */ , - int /* size */ , - xGetPropertyReply * /* pRep */ ); +extern void SQueryKeymapReply(ClientPtr /* pClient */ , + int /* size */ , + xQueryKeymapReply * /* pRep */ ); -extern _X_EXPORT void SListPropertiesReply(ClientPtr /* pClient */ , - int /* size */ , - xListPropertiesReply * /* pRep */ ); +extern void SQueryFontReply(ClientPtr /* pClient */ , + int /* size */ , + xQueryFontReply * /* pRep */ ); -extern _X_EXPORT void SGetSelectionOwnerReply(ClientPtr /* pClient */ , - int /* size */ , - xGetSelectionOwnerReply * - /* pRep */ ); +extern void SQueryTextExtentsReply(ClientPtr /* pClient */ , + int /* size */ , + xQueryTextExtentsReply * /* pRep */ + ); -extern _X_EXPORT void SQueryPointerReply(ClientPtr /* pClient */ , - int /* size */ , - xQueryPointerReply * /* pRep */ ); +extern void SListFontsReply(ClientPtr /* pClient */ , + int /* size */ , + xListFontsReply * /* pRep */ ); -extern _X_EXPORT void SwapTimeCoordWrite(ClientPtr /* pClient */ , - int /* size */ , - xTimecoord * /* pRep */ ); +extern void SListFontsWithInfoReply(ClientPtr /* pClient */ , + int /* size */ , + xListFontsWithInfoReply * + /* pRep */ ); -extern _X_EXPORT void SGetMotionEventsReply(ClientPtr /* pClient */ , - int /* size */ , - xGetMotionEventsReply * /* pRep */ - ); +extern void SGetFontPathReply(ClientPtr /* pClient */ , + int /* size */ , + xGetFontPathReply * /* pRep */ ); -extern _X_EXPORT void STranslateCoordsReply(ClientPtr /* pClient */ , - int /* size */ , - xTranslateCoordsReply * /* pRep */ - ); +extern void SGetImageReply(ClientPtr /* pClient */ , + int /* size */ , + xGetImageReply * /* pRep */ ); -extern _X_EXPORT void SGetInputFocusReply(ClientPtr /* pClient */ , - int /* size */ , - xGetInputFocusReply * /* pRep */ ); +extern void SListInstalledColormapsReply(ClientPtr /* pClient */ , + int /* size */ , + xListInstalledColormapsReply + * /* pRep */ ); -extern _X_EXPORT void SQueryKeymapReply(ClientPtr /* pClient */ , - int /* size */ , - xQueryKeymapReply * /* pRep */ ); +extern void SAllocColorReply(ClientPtr /* pClient */ , + int /* size */ , + xAllocColorReply * /* pRep */ ); -extern _X_EXPORT void SQueryFontReply(ClientPtr /* pClient */ , - int /* size */ , - xQueryFontReply * /* pRep */ ); +extern void SAllocNamedColorReply(ClientPtr /* pClient */ , + int /* size */ , + xAllocNamedColorReply * /* pRep */ + ); -extern _X_EXPORT void SQueryTextExtentsReply(ClientPtr /* pClient */ , - int /* size */ , - xQueryTextExtentsReply * /* pRep */ - ); +extern void SAllocColorCellsReply(ClientPtr /* pClient */ , + int /* size */ , + xAllocColorCellsReply * /* pRep */ + ); -extern _X_EXPORT void SListFontsReply(ClientPtr /* pClient */ , - int /* size */ , - xListFontsReply * /* pRep */ ); +extern void SAllocColorPlanesReply(ClientPtr /* pClient */ , + int /* size */ , + xAllocColorPlanesReply * /* pRep */ + ); -extern _X_EXPORT void SListFontsWithInfoReply(ClientPtr /* pClient */ , - int /* size */ , - xListFontsWithInfoReply * - /* pRep */ ); +extern void SQColorsExtend(ClientPtr /* pClient */ , + int /* size */ , + xrgb * /* prgb */ ); -extern _X_EXPORT void SGetFontPathReply(ClientPtr /* pClient */ , - int /* size */ , - xGetFontPathReply * /* pRep */ ); +extern void SQueryColorsReply(ClientPtr /* pClient */ , + int /* size */ , + xQueryColorsReply * /* pRep */ ); -extern _X_EXPORT void SGetImageReply(ClientPtr /* pClient */ , - int /* size */ , - xGetImageReply * /* pRep */ ); +extern void SLookupColorReply(ClientPtr /* pClient */ , + int /* size */ , + xLookupColorReply * /* pRep */ ); -extern _X_EXPORT void SListInstalledColormapsReply(ClientPtr /* pClient */ , - int /* size */ , - xListInstalledColormapsReply - * /* pRep */ ); +extern void SQueryBestSizeReply(ClientPtr /* pClient */ , + int /* size */ , + xQueryBestSizeReply * /* pRep */ ); -extern _X_EXPORT void SAllocColorReply(ClientPtr /* pClient */ , - int /* size */ , - xAllocColorReply * /* pRep */ ); +extern void SListExtensionsReply(ClientPtr /* pClient */ , + int /* size */ , + xListExtensionsReply * /* pRep */ ); -extern _X_EXPORT void SAllocNamedColorReply(ClientPtr /* pClient */ , - int /* size */ , - xAllocNamedColorReply * /* pRep */ - ); +extern void SGetKeyboardMappingReply(ClientPtr /* pClient */ , + int /* size */ , + xGetKeyboardMappingReply * + /* pRep */ ); -extern _X_EXPORT void SAllocColorCellsReply(ClientPtr /* pClient */ , - int /* size */ , - xAllocColorCellsReply * /* pRep */ - ); +extern void SGetPointerMappingReply(ClientPtr /* pClient */ , + int /* size */ , + xGetPointerMappingReply * + /* pRep */ ); -extern _X_EXPORT void SAllocColorPlanesReply(ClientPtr /* pClient */ , - int /* size */ , - xAllocColorPlanesReply * /* pRep */ - ); +extern void SGetModifierMappingReply(ClientPtr /* pClient */ , + int /* size */ , + xGetModifierMappingReply * + /* pRep */ ); -extern _X_EXPORT void SQColorsExtend(ClientPtr /* pClient */ , +extern void SGetKeyboardControlReply(ClientPtr /* pClient */ , int /* size */ , - xrgb * /* prgb */ ); - -extern _X_EXPORT void SQueryColorsReply(ClientPtr /* pClient */ , - int /* size */ , - xQueryColorsReply * /* pRep */ ); - -extern _X_EXPORT void SLookupColorReply(ClientPtr /* pClient */ , - int /* size */ , - xLookupColorReply * /* pRep */ ); - -extern _X_EXPORT void SQueryBestSizeReply(ClientPtr /* pClient */ , - int /* size */ , - xQueryBestSizeReply * /* pRep */ ); - -extern _X_EXPORT void SListExtensionsReply(ClientPtr /* pClient */ , - int /* size */ , - xListExtensionsReply * /* pRep */ ); - -extern _X_EXPORT void SGetKeyboardMappingReply(ClientPtr /* pClient */ , - int /* size */ , - xGetKeyboardMappingReply * - /* pRep */ ); - -extern _X_EXPORT void SGetPointerMappingReply(ClientPtr /* pClient */ , - int /* size */ , - xGetPointerMappingReply * - /* pRep */ ); - -extern _X_EXPORT void SGetModifierMappingReply(ClientPtr /* pClient */ , - int /* size */ , - xGetModifierMappingReply * - /* pRep */ ); - -extern _X_EXPORT void SGetKeyboardControlReply(ClientPtr /* pClient */ , - int /* size */ , - xGetKeyboardControlReply * - /* pRep */ ); - -extern _X_EXPORT void SGetPointerControlReply(ClientPtr /* pClient */ , - int /* size */ , - xGetPointerControlReply * - /* pRep */ ); - -extern _X_EXPORT void SGetScreenSaverReply(ClientPtr /* pClient */ , - int /* size */ , - xGetScreenSaverReply * /* pRep */ ); - -extern _X_EXPORT void SLHostsExtend(ClientPtr /* pClient */ , + xGetKeyboardControlReply * + /* pRep */ ); + +extern void SGetPointerControlReply(ClientPtr /* pClient */ , int /* size */ , - char * /* buf */ ); + xGetPointerControlReply * + /* pRep */ ); -extern _X_EXPORT void SListHostsReply(ClientPtr /* pClient */ , - int /* size */ , - xListHostsReply * /* pRep */ ); +extern void SGetScreenSaverReply(ClientPtr /* pClient */ , + int /* size */ , + xGetScreenSaverReply * /* pRep */ ); + +extern void SLHostsExtend(ClientPtr /* pClient */ , + int /* size */ , + char * /* buf */ ); + +extern void SListHostsReply(ClientPtr /* pClient */ , + int /* size */ , + xListHostsReply * /* pRep */ ); -extern _X_EXPORT void SErrorEvent(xError * /* from */ , - xError * /* to */ ); +extern void SErrorEvent(xError * /* from */ , + xError * /* to */ ); -extern _X_EXPORT void SwapConnSetupInfo(char * /* pInfo */ , - char * /* pInfoTBase */ ); +extern void SwapConnSetupInfo(char * /* pInfo */ , + char * /* pInfoTBase */ ); -extern _X_EXPORT void WriteSConnectionInfo(ClientPtr /* pClient */ , - unsigned long /* size */ , - char * /* pInfo */ ); +extern void WriteSConnectionInfo(ClientPtr /* pClient */ , + unsigned long /* size */ , + char * /* pInfo */ ); -extern _X_EXPORT void SwapConnSetupPrefix(xConnSetupPrefix * /* pcspFrom */ , - xConnSetupPrefix * /* pcspTo */ ); +extern void SwapConnSetupPrefix(xConnSetupPrefix * /* pcspFrom */ , + xConnSetupPrefix * /* pcspTo */ ); -extern _X_EXPORT void WriteSConnSetupPrefix(ClientPtr /* pClient */ , - xConnSetupPrefix * /* pcsp */ ); +extern void WriteSConnSetupPrefix(ClientPtr /* pClient */ , + xConnSetupPrefix * /* pcsp */ ); #undef SWAPREP_PROC -#define SWAPREP_PROC(func) extern _X_EXPORT void func(xEvent * /* from */, xEvent * /* to */) +#define SWAPREP_PROC(func) extern void func(xEvent * /* from */, xEvent * /* to */) SWAPREP_PROC(SCirculateEvent); SWAPREP_PROC(SClientMessageEvent); diff --git a/include/swapreq.h b/include/swapreq.h index 07eff807f..d696aa05e 100644 --- a/include/swapreq.h +++ b/include/swapreq.h @@ -26,13 +26,13 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef SWAPREQ_H #define SWAPREQ_H 1 -extern _X_EXPORT void SwapColorItem(xColorItem * /* pItem */ ); +extern void SwapColorItem(xColorItem * /* pItem */ ); -extern _X_EXPORT void SwapConnClientPrefix(xConnClientPrefix * /* pCCP */ ); +extern void SwapConnClientPrefix(xConnClientPrefix * /* pCCP */ ); #undef SWAPREQ_PROC -#define SWAPREQ_PROC(func) extern _X_EXPORT int func(ClientPtr /* client */) +#define SWAPREQ_PROC(func) extern int func(ClientPtr /* client */) SWAPREQ_PROC(SProcAllocColor); SWAPREQ_PROC(SProcAllocColorCells); diff --git a/include/windowstr.h b/include/windowstr.h index 53eef376e..4383dabdc 100644 --- a/include/windowstr.h +++ b/include/windowstr.h @@ -162,9 +162,7 @@ typedef struct _Window { unsigned forcedBS:1; /* system-supplied backingStore */ unsigned redirectDraw:2; /* COMPOSITE rendering redirect */ unsigned forcedBG:1; /* must have an opaque background */ -#ifdef ROOTLESS - unsigned rootlessUnhittable:1; /* doesn't hit-test */ -#endif + unsigned unhittable:1; /* doesn't hit-test, for rootless */ #ifdef COMPOSITE unsigned damagedDescendants:1; /* some descendants are damaged */ unsigned inhibitBGPaint:1; /* paint the background? */ diff --git a/mi/miexpose.c b/mi/miexpose.c index 4124d67c6..148d1a63b 100644 --- a/mi/miexpose.c +++ b/mi/miexpose.c @@ -268,10 +268,11 @@ miHandleExposures(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, RegionTranslate(&rgnExposed, pDstDrawable->x, pDstDrawable->y); if (extents) { - /* miPaintWindow doesn't clip, so we have to */ + /* PaintWindow doesn't clip, so we have to */ RegionIntersect(&rgnExposed, &rgnExposed, &pWin->clipList); } - miPaintWindow((WindowPtr) pDstDrawable, &rgnExposed, PW_BACKGROUND); + pDstDrawable->pScreen->PaintWindow((WindowPtr) pDstDrawable, + &rgnExposed, PW_BACKGROUND); if (extents) { RegionReset(&rgnExposed, &expBox); @@ -383,16 +384,14 @@ miWindowExposures(WindowPtr pWin, RegionPtr prgn) * work overall, on both client and server. This is cheating, but * isn't prohibited by the protocol ("spontaneous combustion" :-). */ - BoxRec box; - - box = *RegionExtents(prgn); + BoxRec box = *RegionExtents(prgn); exposures = &expRec; RegionInit(exposures, &box, 1); RegionReset(prgn, &box); /* miPaintWindow doesn't clip, so we have to */ RegionIntersect(prgn, prgn, &pWin->clipList); } - miPaintWindow(pWin, prgn, PW_BACKGROUND); + pWin->drawable.pScreen->PaintWindow(pWin, prgn, PW_BACKGROUND); if (clientInterested) miSendExposures(pWin, exposures, pWin->drawable.x, pWin->drawable.y); @@ -402,14 +401,6 @@ miWindowExposures(WindowPtr pWin, RegionPtr prgn) } } -#ifdef ROOTLESS -/* Ugly, ugly, but we lost our hooks into miPaintWindow... =/ */ -void RootlessSetPixmapOfAncestors(WindowPtr pWin); -void RootlessStartDrawing(WindowPtr pWin); -void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn); -Bool IsFramedWindow(WindowPtr pWin); -#endif - void miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) { @@ -437,22 +428,6 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) Bool solid = TRUE; DrawablePtr drawable = &pWin->drawable; -#ifdef ROOTLESS - if (!drawable || drawable->type == UNDRAWABLE_WINDOW) - return; - - if (IsFramedWindow(pWin)) { - RootlessStartDrawing(pWin); - RootlessDamageRegion(pWin, prgn); - - if (pWin->backgroundState == ParentRelative) { - if ((what == PW_BACKGROUND) || - (what == PW_BORDER && !pWin->borderIsPixel)) - RootlessSetPixmapOfAncestors(pWin); - } - } -#endif - if (what == PW_BACKGROUND) { while (pWin->backgroundState == ParentRelative) pWin = pWin->parent; diff --git a/mi/miglblt.c b/mi/miglblt.c index e9d3a1af0..46268aee9 100644 --- a/mi/miglblt.c +++ b/mi/miglblt.c @@ -53,6 +53,7 @@ SOFTWARE. #include <X11/Xproto.h> #include "misc.h" #include <X11/fonts/fontstruct.h> +#include <X11/fonts/fontutil.h> #include "dixfontstr.h" #include "gcstruct.h" #include "windowstr.h" diff --git a/mi/mioverlay.c b/mi/mioverlay.c index 2b20fd72f..9f3ef0725 100644 --- a/mi/mioverlay.c +++ b/mi/mioverlay.c @@ -844,8 +844,8 @@ miOverlayHandleExposures(WindowPtr pWin) if ((mival = pTree->valdata)) { if (!((*pPriv->InOverlay) (pTree->pWin))) { if (RegionNotEmpty(&mival->borderExposed)) { - miPaintWindow(pTree->pWin, &mival->borderExposed, - PW_BORDER); + pScreen->PaintWindow(pTree->pWin, &mival->borderExposed, + PW_BORDER); } RegionUninit(&mival->borderExposed); @@ -883,7 +883,8 @@ miOverlayHandleExposures(WindowPtr pWin) } else { if (RegionNotEmpty(&val->after.borderExposed)) { - miPaintWindow(pChild, &val->after.borderExposed, PW_BORDER); + pScreen->PaintWindow(pChild, &val->after.borderExposed, + PW_BORDER); } (*WindowExposures) (pChild, &val->after.exposed); } @@ -982,6 +983,7 @@ static void miOverlayWindowExposures(WindowPtr pWin, RegionPtr prgn) { RegionPtr exposures = prgn; + ScreenPtr pScreen = pWin->drawable.pScreen; if (prgn && !RegionNil(prgn)) { RegionRec expRec; @@ -1007,7 +1009,7 @@ miOverlayWindowExposures(WindowPtr pWin, RegionPtr prgn) else RegionIntersect(prgn, prgn, &pWin->clipList); } - miPaintWindow(pWin, prgn, PW_BACKGROUND); + pScreen->PaintWindow(pWin, prgn, PW_BACKGROUND); if (clientInterested) miSendExposures(pWin, exposures, pWin->drawable.x, pWin->drawable.y); @@ -1606,7 +1608,7 @@ miOverlayClearToBackground(WindowPtr pWin, if (generateExposures) (*pScreen->WindowExposures) (pWin, ®); else if (pWin->backgroundState != None) - miPaintWindow(pWin, ®, PW_BACKGROUND); + pScreen->PaintWindow(pWin, ®, PW_BACKGROUND); RegionUninit(®); } diff --git a/mi/miscrinit.c b/mi/miscrinit.c index b53c7e41a..9c6af0dc7 100644 --- a/mi/miscrinit.c +++ b/mi/miscrinit.c @@ -253,6 +253,7 @@ miScreenInit(ScreenPtr pScreen, void *pbits, /* pointer to screen bits */ pScreen->ClearToBackground = miClearToBackground; pScreen->ClipNotify = (ClipNotifyProcPtr) 0; pScreen->RestackWindow = (RestackWindowProcPtr) 0; + pScreen->PaintWindow = miPaintWindow; /* CreatePixmap, DestroyPixmap */ /* RealizeFont, UnrealizeFont */ /* CreateGC */ diff --git a/mi/miwindow.c b/mi/miwindow.c index 7574239f5..39c279e18 100644 --- a/mi/miwindow.c +++ b/mi/miwindow.c @@ -113,7 +113,7 @@ miClearToBackground(WindowPtr pWin, if (generateExposures) (*pWin->drawable.pScreen->WindowExposures) (pWin, ®); else if (pWin->backgroundState != None) - miPaintWindow(pWin, ®, PW_BACKGROUND); + pWin->drawable.pScreen->PaintWindow(pWin, ®, PW_BACKGROUND); RegionUninit(®); } @@ -219,7 +219,9 @@ miHandleValidateExposures(WindowPtr pWin) while (1) { if ((val = pChild->valdata)) { if (RegionNotEmpty(&val->after.borderExposed)) - miPaintWindow(pChild, &val->after.borderExposed, PW_BORDER); + pWin->drawable.pScreen->PaintWindow(pChild, + &val->after.borderExposed, + PW_BORDER); RegionUninit(&val->after.borderExposed); (*WindowExposures) (pChild, &val->after.exposed); RegionUninit(&val->after.exposed); @@ -767,14 +769,11 @@ miSpriteTrace(SpritePtr pSprite, int x, int y) RegionContainsPoint(wInputShape(pWin), x - pWin->drawable.x, y - pWin->drawable.y, &box)) -#ifdef ROOTLESS /* In rootless mode windows may be offscreen, even when * they're in X's stack. (E.g. if the native window system * implements some form of virtual desktop system). */ - && !pWin->rootlessUnhittable -#endif - ) { + && !pWin->unhittable) { if (pSprite->spriteTraceGood >= pSprite->spriteTraceSize) { pSprite->spriteTraceSize += 10; pSprite->spriteTrace = reallocarray(pSprite->spriteTrace, diff --git a/miext/Makefile.am b/miext/Makefile.am index b84adc12b..add4d18b0 100644 --- a/miext/Makefile.am +++ b/miext/Makefile.am @@ -1,8 +1 @@ -SUBDIRS = sync damage shadow -if XQUARTZ -SUBDIRS += rootless -endif -if XWIN_MULTIWINDOWEXTWM -SUBDIRS += rootless -endif -DIST_SUBDIRS = sync damage shadow rootless +SUBDIRS = sync damage shadow rootless diff --git a/miext/damage/damage.c b/miext/damage/damage.c index ce20169d4..746e7984f 100644 --- a/miext/damage/damage.c +++ b/miext/damage/damage.c @@ -32,6 +32,7 @@ #include <X11/fonts/font.h> #include "dixfontstr.h" #include <X11/fonts/fontstruct.h> +#include <X11/fonts/fontutil.h> #include "mi.h" #include "regionstr.h" #include "globals.h" diff --git a/miext/rootless/rootlessCommon.h b/miext/rootless/rootlessCommon.h index fd9c941f4..aa5557954 100644 --- a/miext/rootless/rootlessCommon.h +++ b/miext/rootless/rootlessCommon.h @@ -94,6 +94,7 @@ typedef struct _RootlessScreenRec { ChangeBorderWidthProcPtr ChangeBorderWidth; PositionWindowProcPtr PositionWindow; ChangeWindowAttributesProcPtr ChangeWindowAttributes; + PaintWindowProcPtr PaintWindow; CreateGCProcPtr CreateGC; CopyWindowProcPtr CopyWindow; diff --git a/miext/rootless/rootlessConfig.h b/miext/rootless/rootlessConfig.h index d39ae63d2..4c464b9f5 100644 --- a/miext/rootless/rootlessConfig.h +++ b/miext/rootless/rootlessConfig.h @@ -35,28 +35,17 @@ #define _ROOTLESSCONFIG_H #ifdef __APPLE__ +#define ROOTLESS_RESIZE_GRAVITY TRUE +#endif + +/*# define ROOTLESSDEBUG*/ #define ROOTLESS_PROTECT_ALPHA TRUE #define ROOTLESS_REDISPLAY_DELAY 10 -#define ROOTLESS_RESIZE_GRAVITY TRUE -/*# define ROOTLESSDEBUG*/ /* Bit mask for alpha channel with a particular number of bits per pixel. Note that we only care for 32bpp data. Mac OS X uses planar alpha for 16bpp. */ #define RootlessAlphaMask(bpp) ((bpp) == 32 ? 0xFF000000 : 0) -#endif /* __APPLE__ */ - -#if defined(__CYGWIN__) || defined(WIN32) - -#define ROOTLESS_PROTECT_ALPHA NO -#define ROOTLESS_REDISPLAY_DELAY 10 -#undef ROOTLESS_RESIZE_GRAVITY -/*# define ROOTLESSDEBUG*/ - -#define RootlessAlphaMask(bpp) ((bpp) == 32 ? 0xFF000000 : 0) - -#endif /* __CYGWIN__ */ - #endif /* _ROOTLESSCONFIG_H */ diff --git a/miext/rootless/rootlessScreen.c b/miext/rootless/rootlessScreen.c index 6226ee84a..471656428 100644 --- a/miext/rootless/rootlessScreen.c +++ b/miext/rootless/rootlessScreen.c @@ -473,7 +473,7 @@ expose_1(WindowPtr pWin) if (!pWin->realized) return; - miPaintWindow(pWin, &pWin->borderClip, PW_BACKGROUND); + pWin->drawable.pScreen->PaintWindow(pWin, &pWin->borderClip, PW_BACKGROUND); /* FIXME: comments in windowstr.h indicate that borderClip doesn't include subwindow visibility. But I'm not so sure.. so we may @@ -669,6 +669,7 @@ RootlessWrap(ScreenPtr pScreen) WRAP(CloseScreen); WRAP(CreateGC); WRAP(CopyWindow); + WRAP(PaintWindow); WRAP(GetImage); WRAP(SourceValidate); WRAP(CreateWindow); diff --git a/miext/rootless/rootlessWindow.c b/miext/rootless/rootlessWindow.c index 1f78e3f6c..e3042990c 100644 --- a/miext/rootless/rootlessWindow.c +++ b/miext/rootless/rootlessWindow.c @@ -92,7 +92,7 @@ RootlessNativeWindowStateChanged(WindowPtr pWin, unsigned int state) winRec->is_offscreen = ((state & XP_WINDOW_STATE_OFFSCREEN) != 0); winRec->is_obscured = ((state & XP_WINDOW_STATE_OBSCURED) != 0); - pWin->rootlessUnhittable = winRec->is_offscreen; + pWin->unhittable = winRec->is_offscreen; } void @@ -569,7 +569,7 @@ RootlessReorderWindow(WindowPtr pWin) newPrevW = pWin->prevSib; while (newPrevW && (WINREC(newPrevW) == NULL || !newPrevW->realized || - newPrevW->rootlessUnhittable != pWin->rootlessUnhittable)) + newPrevW->unhittable != pWin->unhittable)) newPrevW = newPrevW->prevSib; newPrev = newPrevW != NULL ? WINREC(newPrevW) : NULL; @@ -720,7 +720,7 @@ RootlessResizeCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, /* * RootlessCopyWindow * Update *new* location of window. Old location is redrawn with - * miPaintWindow. Cloned from fbCopyWindow. + * PaintWindow. Cloned from fbCopyWindow. * The original always draws on the root pixmap, which we don't have. * Instead, draw on the parent window's pixmap. */ @@ -794,6 +794,27 @@ RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) RL_DEBUG_MSG("copywindowFB end\n"); } +void +RootlessPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) +{ + ScreenPtr pScreen = pWin->drawable.pScreen; + + if (IsFramedWindow(pWin)) { + RootlessStartDrawing(pWin); + RootlessDamageRegion(pWin, prgn); + + if (pWin->backgroundState == ParentRelative) { + if ((what == PW_BACKGROUND) || + (what == PW_BORDER && !pWin->borderIsPixel)) + RootlessSetPixmapOfAncestors(pWin); + } + } + + SCREEN_UNWRAP(pScreen, PaintWindow); + pScreen->PaintWindow(pWin, prgn, what); + SCREEN_WRAP(pScreen, PaintWindow); +} + /* * Window resize procedures */ @@ -1365,7 +1386,7 @@ RootlessReparentWindow(WindowPtr pWin, WindowPtr pPriorParent) pTopWin = TopLevelParent(pWin); assert(pTopWin != pWin); - pWin->rootlessUnhittable = FALSE; + pWin->unhittable = FALSE; DeleteProperty(serverClient, pWin, xa_native_window_id()); @@ -1503,7 +1524,7 @@ RootlessOrderAllWindows(Bool include_unhitable) continue; if (RootlessEnsureFrame(pWin) == NULL) continue; - if (!include_unhitable && pWin->rootlessUnhittable) + if (!include_unhitable && pWin->unhittable) continue; RootlessReorderWindow(pWin); } diff --git a/miext/rootless/rootlessWindow.h b/miext/rootless/rootlessWindow.h index d3955fc89..4fd34d54d 100644 --- a/miext/rootless/rootlessWindow.h +++ b/miext/rootless/rootlessWindow.h @@ -48,6 +48,7 @@ Bool RootlessUnrealizeWindow(WindowPtr pWin); void RootlessRestackWindow(WindowPtr pWin, WindowPtr pOldNextSib); void RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc); +void RootlessPaintWindow(WindowPtr pWin, RegionPtr prgn, int what); void RootlessMoveWindow(WindowPtr pWin, int x, int y, WindowPtr pSib, VTKind kind); void RootlessResizeWindow(WindowPtr pWin, int x, int y, unsigned int w, diff --git a/os/utils.c b/os/utils.c index 7fd395b2a..d09ca79fd 100644 --- a/os/utils.c +++ b/os/utils.c @@ -81,6 +81,7 @@ __stdcall unsigned long GetTickCount(void); #include <X11/Xtrans/Xtrans.h> #include "input.h" #include "dixfont.h" +#include <X11/fonts/fontutil.h> #include "osdep.h" #include "extension.h" #ifdef X_POSIX_C_SOURCE diff --git a/present/present_event.c b/present/present_event.c index d3a59ea25..c586c9a60 100644 --- a/present/present_event.c +++ b/present/present_event.c @@ -26,7 +26,7 @@ #include "present_priv.h" -RESTYPE present_event_type; +static RESTYPE present_event_type; static int present_free_event(void *data, XID id) diff --git a/present/present_priv.h b/present/present_priv.h index f5c1652d1..996292e94 100644 --- a/present/present_priv.h +++ b/present/present_priv.h @@ -147,8 +147,6 @@ present_window_priv(WindowPtr window) present_window_priv_ptr present_get_window_priv(WindowPtr window, Bool create); -extern RESTYPE present_event_type; - /* * present.c */ diff --git a/present/present_request.c b/present/present_request.c index 7c53e7262..35320b64e 100644 --- a/present/present_request.c +++ b/present/present_request.c @@ -234,7 +234,7 @@ proc_present_query_capabilities (ClientPtr client) return Success; } -int (*proc_present_vector[PresentNumberRequests]) (ClientPtr) = { +static int (*proc_present_vector[PresentNumberRequests]) (ClientPtr) = { proc_present_query_version, /* 0 */ proc_present_pixmap, /* 1 */ proc_present_notify_msc, /* 2 */ @@ -319,7 +319,7 @@ sproc_present_query_capabilities (ClientPtr client) return (*proc_present_vector[stuff->presentReqType]) (client); } -int (*sproc_present_vector[PresentNumberRequests]) (ClientPtr) = { +static int (*sproc_present_vector[PresentNumberRequests]) (ClientPtr) = { sproc_present_query_version, /* 0 */ sproc_present_pixmap, /* 1 */ sproc_present_notify_msc, /* 2 */ diff --git a/randr/randrstr.h b/randr/randrstr.h index 03974fd4f..472721a5a 100644 --- a/randr/randrstr.h +++ b/randr/randrstr.h @@ -64,10 +64,10 @@ typedef XID RROutput; typedef XID RRCrtc; typedef XID RRProvider; -extern _X_EXPORT int RREventBase, RRErrorBase; +extern int RREventBase, RRErrorBase; -extern _X_EXPORT int (*ProcRandrVector[RRNumberRequests]) (ClientPtr); -extern _X_EXPORT int (*SProcRandrVector[RRNumberRequests]) (ClientPtr); +extern int (*ProcRandrVector[RRNumberRequests]) (ClientPtr); +extern int (*SProcRandrVector[RRNumberRequests]) (ClientPtr); /* * Modeline for a monitor. Name follows directly after this struct @@ -397,8 +397,8 @@ typedef struct _RRClient { /* RRTimesRec times[0]; */ } RRClientRec, *RRClientPtr; -extern _X_EXPORT RESTYPE RRClientType, RREventType; /* resource types for event masks */ -extern _X_EXPORT DevPrivateKeyRec RRClientPrivateKeyRec; +extern RESTYPE RRClientType, RREventType; /* resource types for event masks */ +extern DevPrivateKeyRec RRClientPrivateKeyRec; #define RRClientPrivateKey (&RRClientPrivateKeyRec) extern _X_EXPORT RESTYPE RRCrtcType, RRModeType, RROutputType, RRProviderType; diff --git a/render/glyph.c b/render/glyph.c index f3310db12..ea865af58 100644 --- a/render/glyph.c +++ b/render/glyph.c @@ -106,7 +106,7 @@ GlyphUninit(ScreenPtr pScreen) } } -GlyphHashSetPtr +static GlyphHashSetPtr FindGlyphHashSet(CARD32 filled) { int i; @@ -117,7 +117,7 @@ FindGlyphHashSet(CARD32 filled) return 0; } -GlyphRefPtr +static GlyphRefPtr FindGlyphRef(GlyphHashPtr hash, CARD32 signature, Bool match, unsigned char sha1[20]) { @@ -245,7 +245,7 @@ FreeGlyphPicture(GlyphPtr glyph) } } -void +static void FreeGlyph(GlyphPtr glyph, int format) { CheckDuplicates(&globalGlyphs[format], "FreeGlyph"); @@ -383,7 +383,7 @@ AllocateGlyph(xGlyphInfo * gi, int fdepth) return 0; } -Bool +static Bool AllocateGlyphHash(GlyphHashPtr hash, GlyphHashSetPtr hashSet) { hash->table = calloc(hashSet->size, sizeof(GlyphRefRec)); @@ -394,7 +394,7 @@ AllocateGlyphHash(GlyphHashPtr hash, GlyphHashSetPtr hashSet) return TRUE; } -Bool +static Bool ResizeGlyphHash(GlyphHashPtr hash, CARD32 change, Bool global) { CARD32 tableEntries; diff --git a/render/glyphstr.h b/render/glyphstr.h index 2df055dfd..2f51bd244 100644 --- a/render/glyphstr.h +++ b/render/glyphstr.h @@ -90,47 +90,31 @@ typedef struct _GlyphList { PictFormatPtr format; } GlyphListRec, *GlyphListPtr; -extern _X_EXPORT void +extern void GlyphUninit(ScreenPtr pScreen); -extern _X_EXPORT GlyphHashSetPtr FindGlyphHashSet(CARD32 filled); - -extern _X_EXPORT GlyphRefPtr -FindGlyphRef(GlyphHashPtr hash, - CARD32 signature, Bool match, unsigned char sha1[20]); - -extern _X_EXPORT GlyphPtr FindGlyphByHash(unsigned char sha1[20], int format); - -extern _X_EXPORT int +extern GlyphPtr FindGlyphByHash(unsigned char sha1[20], int format); +extern int HashGlyph(xGlyphInfo * gi, CARD8 *bits, unsigned long size, unsigned char sha1[20]); -extern _X_EXPORT void - FreeGlyph(GlyphPtr glyph, int format); - -extern _X_EXPORT void +extern void AddGlyph(GlyphSetPtr glyphSet, GlyphPtr glyph, Glyph id); -extern _X_EXPORT Bool +extern Bool DeleteGlyph(GlyphSetPtr glyphSet, Glyph id); -extern _X_EXPORT GlyphPtr FindGlyph(GlyphSetPtr glyphSet, Glyph id); - -extern _X_EXPORT GlyphPtr AllocateGlyph(xGlyphInfo * gi, int format); - -extern _X_EXPORT Bool - AllocateGlyphHash(GlyphHashPtr hash, GlyphHashSetPtr hashSet); +extern GlyphPtr FindGlyph(GlyphSetPtr glyphSet, Glyph id); -extern _X_EXPORT Bool - ResizeGlyphHash(GlyphHashPtr hash, CARD32 change, Bool global); +extern GlyphPtr AllocateGlyph(xGlyphInfo * gi, int format); -extern _X_EXPORT Bool +extern Bool ResizeGlyphSet(GlyphSetPtr glyphSet, CARD32 change); -extern _X_EXPORT GlyphSetPtr AllocateGlyphSet(int fdepth, PictFormatPtr format); +extern GlyphSetPtr AllocateGlyphSet(int fdepth, PictFormatPtr format); -extern _X_EXPORT int +extern int FreeGlyphSet(void *value, XID gid); #define GLYPH_HAS_GLYPH_PICTURE_ACCESSOR 1 /* used for api compat */ diff --git a/render/mipict.c b/render/mipict.c index 2571fda17..4b855122e 100644 --- a/render/mipict.c +++ b/render/mipict.c @@ -46,7 +46,7 @@ miDestroyPicture(PicturePtr pPicture) RegionDestroy(pPicture->pCompositeClip); } -void +static void miDestroyPictureClip(PicturePtr pPicture) { if (pPicture->clientClip) @@ -54,7 +54,7 @@ miDestroyPictureClip(PicturePtr pPicture) pPicture->clientClip = NULL; } -int +static int miChangePictureClip(PicturePtr pPicture, int type, void *value, int n) { ScreenPtr pScreen = pPicture->pDrawable->pScreen; @@ -88,13 +88,13 @@ miChangePictureClip(PicturePtr pPicture, int type, void *value, int n) return Success; } -void +static void miChangePicture(PicturePtr pPicture, Mask mask) { return; } -void +static void miValidatePicture(PicturePtr pPicture, Mask mask) { DrawablePtr pDrawable = pPicture->pDrawable; @@ -211,13 +211,13 @@ miValidatePicture(PicturePtr pPicture, Mask mask) } } -int +static int miChangePictureTransform(PicturePtr pPicture, PictTransform * transform) { return Success; } -int +static int miChangePictureFilter(PicturePtr pPicture, int filter, xFixed * params, int nparams) { @@ -499,7 +499,7 @@ miRenderPixelToColor(PictFormatPtr format, CARD32 pixel, xRenderColor * color) } } -void +static void miTriStrip(CARD8 op, PicturePtr pSrc, PicturePtr pDst, @@ -523,7 +523,7 @@ miTriStrip(CARD8 op, free(tris); } -void +static void miTriFan(CARD8 op, PicturePtr pSrc, PicturePtr pDst, diff --git a/render/mipict.h b/render/mipict.h index 23ce9e8f6..3241be4b9 100644 --- a/render/mipict.h +++ b/render/mipict.h @@ -54,26 +54,6 @@ extern _X_EXPORT void miDestroyPicture(PicturePtr pPicture); extern _X_EXPORT void - miDestroyPictureClip(PicturePtr pPicture); - -extern _X_EXPORT int - miChangePictureClip(PicturePtr pPicture, int type, void *value, int n); - -extern _X_EXPORT void - miChangePicture(PicturePtr pPicture, Mask mask); - -extern _X_EXPORT void - miValidatePicture(PicturePtr pPicture, Mask mask); - -extern _X_EXPORT int - miChangePictureTransform(PicturePtr pPicture, PictTransform * transform); - -extern _X_EXPORT int - -miChangePictureFilter(PicturePtr pPicture, - int filter, xFixed * params, int nparams); - -extern _X_EXPORT void miCompositeSourceValidate(PicturePtr pPicture); extern _X_EXPORT Bool @@ -122,22 +102,6 @@ miCompositeRects(CARD8 op, xRenderColor * color, int nRect, xRectangle *rects); extern _X_EXPORT void - -miTriStrip(CARD8 op, - PicturePtr pSrc, - PicturePtr pDst, - PictFormatPtr maskFormat, - INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points); - -extern _X_EXPORT void - -miTriFan(CARD8 op, - PicturePtr pSrc, - PicturePtr pDst, - PictFormatPtr maskFormat, - INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points); - -extern _X_EXPORT void miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box); extern _X_EXPORT void diff --git a/render/picture.c b/render/picture.c index 60517a4ee..506aec419 100644 --- a/render/picture.c +++ b/render/picture.c @@ -61,7 +61,7 @@ PictureWindowFormat(WindowPtr pWindow) WindowGetVisual(pWindow)); } -Bool +static Bool PictureDestroyWindow(WindowPtr pWindow) { ScreenPtr pScreen = pWindow->drawable.pScreen; @@ -82,7 +82,7 @@ PictureDestroyWindow(WindowPtr pWindow) return ret; } -Bool +static Bool PictureCloseScreen(ScreenPtr pScreen) { PictureScreenPtr ps = GetPictureScreen(pScreen); @@ -102,7 +102,7 @@ PictureCloseScreen(ScreenPtr pScreen) return ret; } -void +static void PictureStoreColors(ColormapPtr pColormap, int ndef, xColorItem * pdef) { ScreenPtr pScreen = pColormap->pScreen; @@ -163,7 +163,7 @@ addFormat(FormatInitRec formats[256], int nformat, CARD32 format, CARD8 depth) #define Mask(n) ((1 << (n)) - 1) -PictFormatPtr +static PictFormatPtr PictureCreateDefaultFormats(ScreenPtr pScreen, int *nformatp) { int nformats, f; @@ -439,7 +439,7 @@ PictureFindVisual(ScreenPtr pScreen, VisualID visual) return 0; } -Bool +static Bool PictureInitIndexedFormat(ScreenPtr pScreen, PictFormatPtr format) { PictureScreenPtr ps = GetPictureScreenIfSet(pScreen); @@ -625,6 +625,12 @@ GetPictureBytes(void *value, XID id, ResourceSizePtr size) } } +static int +FreePictFormat(void *pPictFormat, XID pid) +{ + return Success; +} + Bool PictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) { @@ -724,7 +730,7 @@ PictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) return TRUE; } -void +static void SetPictureToDefaults(PicturePtr pPicture) { pPicture->refcnt = 1; @@ -1430,12 +1436,6 @@ FreePicture(void *value, XID pid) return Success; } -int -FreePictFormat(void *pPictFormat, XID pid) -{ - return Success; -} - /** * ReduceCompositeOp is used to choose simpler ops for cases where alpha * channels are always one and so math on the alpha channel per pixel becomes diff --git a/render/picture.h b/render/picture.h index 66c85c56f..087e54d7a 100644 --- a/render/picture.h +++ b/render/picture.h @@ -169,11 +169,11 @@ typedef enum _PictFormatShort { #define PictureCmapPolicyColor 3 #define PictureCmapPolicyAll 4 -extern _X_EXPORT int PictureCmapPolicy; +extern int PictureCmapPolicy; -extern _X_EXPORT int PictureParseCmapPolicy(const char *name); +extern int PictureParseCmapPolicy(const char *name); -extern _X_EXPORT int RenderErrBase; +extern int RenderErrBase; /* Fixed point updates from Carl Worth, USC, Information Sciences Institute */ diff --git a/render/picturestr.h b/render/picturestr.h index 177f87b80..33baef9bf 100644 --- a/render/picturestr.h +++ b/render/picturestr.h @@ -344,16 +344,14 @@ typedef struct _PictureScreen { } PictureScreenRec, *PictureScreenPtr; extern _X_EXPORT DevPrivateKeyRec PictureScreenPrivateKeyRec; - #define PictureScreenPrivateKey (&PictureScreenPrivateKeyRec) extern _X_EXPORT DevPrivateKeyRec PictureWindowPrivateKeyRec; - #define PictureWindowPrivateKey (&PictureWindowPrivateKeyRec) -extern _X_EXPORT RESTYPE PictureType; -extern _X_EXPORT RESTYPE PictFormatType; -extern _X_EXPORT RESTYPE GlyphSetType; +extern RESTYPE PictureType; +extern RESTYPE PictFormatType; +extern RESTYPE GlyphSetType; #define GetPictureScreen(s) ((PictureScreenPtr)dixLookupPrivate(&(s)->devPrivates, PictureScreenPrivateKey)) #define GetPictureScreenIfSet(s) (dixPrivateKeyRegistered(PictureScreenPrivateKey) ? GetPictureScreen(s) : NULL) @@ -380,27 +378,12 @@ extern _X_EXPORT PictFormatPtr PictureWindowFormat(WindowPtr pWindow); extern _X_EXPORT Bool - PictureDestroyWindow(WindowPtr pWindow); - -extern _X_EXPORT Bool - PictureCloseScreen(ScreenPtr pScreen); - -extern _X_EXPORT void - PictureStoreColors(ColormapPtr pColormap, int ndef, xColorItem * pdef); - -extern _X_EXPORT Bool - PictureInitIndexedFormat(ScreenPtr pScreen, PictFormatPtr format); - -extern _X_EXPORT Bool PictureSetSubpixelOrder(ScreenPtr pScreen, int subpixel); extern _X_EXPORT int PictureGetSubpixelOrder(ScreenPtr pScreen); extern _X_EXPORT PictFormatPtr -PictureCreateDefaultFormats(ScreenPtr pScreen, int *nformatp); - -extern _X_EXPORT PictFormatPtr PictureMatchVisual(ScreenPtr pScreen, int depth, VisualPtr pVisual); extern _X_EXPORT PictFormatPtr @@ -415,14 +398,12 @@ extern _X_EXPORT int extern _X_EXPORT char *PictureGetFilterName(int id); extern _X_EXPORT int - PictureAddFilter(ScreenPtr pScreen, const char *filter, PictFilterValidateParamsProcPtr ValidateParams, int width, int height); extern _X_EXPORT Bool - PictureSetFilterAlias(ScreenPtr pScreen, const char *filter, const char *alias); extern _X_EXPORT Bool @@ -435,21 +416,16 @@ extern _X_EXPORT PictFilterPtr PictureFindFilter(ScreenPtr pScreen, char *name, int len); extern _X_EXPORT int - SetPicturePictFilter(PicturePtr pPicture, PictFilterPtr pFilter, xFixed * params, int nparams); extern _X_EXPORT int - SetPictureFilter(PicturePtr pPicture, char *name, int len, xFixed * params, int nparams); extern _X_EXPORT Bool PictureFinishInit(void); -extern _X_EXPORT void - SetPictureToDefaults(PicturePtr pPicture); - extern _X_EXPORT PicturePtr CreatePicture(Picture pid, DrawablePtr pDrawable, @@ -457,7 +433,6 @@ CreatePicture(Picture pid, Mask mask, XID *list, ClientPtr client, int *error); extern _X_EXPORT int - ChangePicture(PicturePtr pPicture, Mask vmask, XID *vlist, DevUnion *ulist, ClientPtr client); @@ -467,7 +442,6 @@ SetPictureClipRects(PicturePtr pPicture, int xOrigin, int yOrigin, int nRect, xRectangle *rects); extern _X_EXPORT int - SetPictureClipRegion(PicturePtr pPicture, int xOrigin, int yOrigin, RegionPtr pRegion); @@ -480,11 +454,7 @@ extern _X_EXPORT void extern _X_EXPORT int FreePicture(void *pPicture, XID pid); -extern _X_EXPORT int - FreePictFormat(void *pPictFormat, XID pid); - extern _X_EXPORT void - CompositePicture(CARD8 op, PicturePtr pSrc, PicturePtr pMask, @@ -496,7 +466,6 @@ CompositePicture(CARD8 op, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height); extern _X_EXPORT void - CompositeGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, @@ -505,13 +474,11 @@ CompositeGlyphs(CARD8 op, INT16 ySrc, int nlist, GlyphListPtr lists, GlyphPtr * glyphs); extern _X_EXPORT void - CompositeRects(CARD8 op, PicturePtr pDst, xRenderColor * color, int nRect, xRectangle *rects); extern _X_EXPORT void - CompositeTrapezoids(CARD8 op, PicturePtr pSrc, PicturePtr pDst, @@ -519,7 +486,6 @@ CompositeTrapezoids(CARD8 op, INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid * traps); extern _X_EXPORT void - CompositeTriangles(CARD8 op, PicturePtr pSrc, PicturePtr pDst, @@ -528,7 +494,6 @@ CompositeTriangles(CARD8 op, INT16 ySrc, int ntriangles, xTriangle * triangles); extern _X_EXPORT void - CompositeTriStrip(CARD8 op, PicturePtr pSrc, PicturePtr pDst, @@ -536,7 +501,6 @@ CompositeTriStrip(CARD8 op, INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points); extern _X_EXPORT void - CompositeTriFan(CARD8 op, PicturePtr pSrc, PicturePtr pDst, @@ -547,12 +511,10 @@ Bool AnimCurInit(ScreenPtr pScreen); int - AnimCursorCreate(CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *ppCursor, ClientPtr client, XID cid); extern _X_EXPORT void - AddTraps(PicturePtr pPicture, INT16 xOff, INT16 yOff, int ntraps, xTrap * traps); @@ -583,8 +545,8 @@ CreateConicalGradientPicture(Picture pid, xFixed * stops, xRenderColor * colors, int *error); #ifdef PANORAMIX -extern _X_EXPORT void PanoramiXRenderInit(void); -extern _X_EXPORT void PanoramiXRenderReset(void); +extern void PanoramiXRenderInit(void); +extern void PanoramiXRenderReset(void); #endif /* @@ -592,12 +554,10 @@ extern _X_EXPORT void PanoramiXRenderReset(void); */ extern _X_EXPORT void - PictTransform_from_xRenderTransform(PictTransformPtr pict, xRenderTransform * render); extern _X_EXPORT void - xRenderTransform_from_PictTransform(xRenderTransform * render, PictTransformPtr pict); diff --git a/xfixes/Makefile.am b/xfixes/Makefile.am index a8425e8ea..2a95c065b 100644 --- a/xfixes/Makefile.am +++ b/xfixes/Makefile.am @@ -2,10 +2,6 @@ noinst_LTLIBRARIES = libxfixes.la AM_CFLAGS = $(DIX_CFLAGS) -if XORG -sdk_HEADERS = xfixes.h -endif - libxfixes_la_SOURCES = \ cursor.c \ region.c \ diff --git a/xfixes/xfixes.h b/xfixes/xfixes.h index fdcf44f3f..23f31cde4 100644 --- a/xfixes/xfixes.h +++ b/xfixes/xfixes.h @@ -29,8 +29,8 @@ #include "resource.h" -extern _X_EXPORT RESTYPE RegionResType; -extern _X_EXPORT int XFixesErrorBase; +extern RESTYPE RegionResType; +extern int XFixesErrorBase; #define VERIFY_REGION(pRegion, rid, client, mode) \ do { \ @@ -48,7 +48,7 @@ extern _X_EXPORT int XFixesErrorBase; if (rid) VERIFY_REGION(pRegion, rid, client, mode); \ } -extern _X_EXPORT RegionPtr +extern RegionPtr XFixesRegionCopy(RegionPtr pRegion); #include "xibarriers.h" |