summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2015-07-17 10:15:01 -0700
committerEric Anholt <eric@anholt.net>2015-07-17 11:02:20 -0700
commit2fcfa532532fbe4a7f668556808e6245ff4e36bc (patch)
tree0e696e77d3c5de5d35291abe472d6094130723f8
parentcb695b0f3b8def4d1ac02458fe630b65f6a5a3e6 (diff)
parent7b0f940625a0f6eee2ef91dfbfa4a206246940f5 (diff)
Merge remote-tracking branch 'ajax/xserver-next' into master
-rw-r--r--Xext/geext.c10
-rw-r--r--Xext/geint.h5
-rw-r--r--composite/compwindow.c2
-rw-r--r--configure.ac2
-rw-r--r--dix/atom.c6
-rw-r--r--dix/colormap.c337
-rw-r--r--dix/dispatch.c1
-rw-r--r--dix/dixfonts.c12
-rw-r--r--dix/enterleave.c2
-rw-r--r--dix/enterleave.h2
-rw-r--r--dix/main.c2
-rw-r--r--dix/window.c9
-rw-r--r--dri3/dri3.c3
-rw-r--r--dri3/dri3_event.c163
-rw-r--r--dri3/dri3_priv.h2
-rw-r--r--fb/fb.h5
-rw-r--r--glx/createcontext.c15
-rw-r--r--glx/extension_string.c1
-rw-r--r--glx/extension_string.h3
-rw-r--r--glx/glxcmds.c20
-rw-r--r--glx/glxcontext.h5
-rw-r--r--glx/glxdri2.c7
-rw-r--r--glx/glxdriswrast.c43
-rw-r--r--hw/vfb/Makefile.am1
-rw-r--r--hw/xfree86/common/Makefile.am1
-rw-r--r--hw/xfree86/common/dgaproc.h62
-rw-r--r--hw/xfree86/common/vidmodeproc.h77
-rw-r--r--hw/xfree86/common/xf86.h11
-rw-r--r--hw/xfree86/common/xf86DGA.c36
-rw-r--r--hw/xfree86/common/xf86Mode.c11
-rw-r--r--hw/xfree86/common/xf86VidMode.c2
-rw-r--r--hw/xfree86/doc/ddxDesign.xml75
-rw-r--r--hw/xfree86/parser/InputClass.c152
-rw-r--r--hw/xfree86/parser/OutputClass.c52
-rw-r--r--hw/xfree86/parser/Screen.c80
-rw-r--r--hw/xfree86/parser/Vendor.c32
-rw-r--r--hw/xfree86/parser/configProcs.h6
-rwxr-xr-xhw/xfree86/sdksyms.sh12
-rw-r--r--hw/xquartz/quartz.c4
-rw-r--r--hw/xwin/winrandr.c2
-rw-r--r--include/Makefile.am4
-rw-r--r--include/colormap.h12
-rw-r--r--include/dixfont.h35
-rw-r--r--include/dixstruct.h23
-rw-r--r--include/scrnintstr.h5
-rw-r--r--include/swaprep.h320
-rw-r--r--include/swapreq.h6
-rw-r--r--include/windowstr.h4
-rw-r--r--mi/miexpose.c35
-rw-r--r--mi/miglblt.c1
-rw-r--r--mi/mioverlay.c12
-rw-r--r--mi/miscrinit.c1
-rw-r--r--mi/miwindow.c11
-rw-r--r--miext/Makefile.am9
-rw-r--r--miext/damage/damage.c1
-rw-r--r--miext/rootless/rootlessCommon.h1
-rw-r--r--miext/rootless/rootlessConfig.h19
-rw-r--r--miext/rootless/rootlessScreen.c3
-rw-r--r--miext/rootless/rootlessWindow.c31
-rw-r--r--miext/rootless/rootlessWindow.h1
-rw-r--r--os/utils.c1
-rw-r--r--present/present_event.c2
-rw-r--r--present/present_priv.h2
-rw-r--r--present/present_request.c4
-rw-r--r--randr/randrstr.h10
-rw-r--r--render/glyph.c10
-rw-r--r--render/glyphstr.h36
-rw-r--r--render/mipict.c16
-rw-r--r--render/mipict.h36
-rw-r--r--render/picture.c24
-rw-r--r--render/picture.h6
-rw-r--r--render/picturestr.h50
-rw-r--r--xfixes/Makefile.am4
-rw-r--r--xfixes/xfixes.h6
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 = &current->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 {
diff --git a/fb/fb.h b/fb/fb.h
index ab110f327..c687aa7a0 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -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, &reg);
else if (pWin->backgroundState != None)
- miPaintWindow(pWin, &reg, PW_BACKGROUND);
+ pScreen->PaintWindow(pWin, &reg, PW_BACKGROUND);
RegionUninit(&reg);
}
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, &reg);
else if (pWin->backgroundState != None)
- miPaintWindow(pWin, &reg, PW_BACKGROUND);
+ pWin->drawable.pScreen->PaintWindow(pWin, &reg, PW_BACKGROUND);
RegionUninit(&reg);
}
@@ -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"