Merge remote-tracking branch 'ajax/xserver-next' into master
This commit is contained in:
commit
2fcfa53253
10
Xext/geext.c
10
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 */
|
||||
|
|
|
@ -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_ */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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])
|
||||
|
|
|
@ -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)
|
||||
|
|
337
dix/colormap.c
337
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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -1,163 +0,0 @@
|
|||
/*
|
||||
* Copyright © 2013 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
* the above copyright notice appear in all copies and that both that copyright
|
||||
* notice and this permission notice appear in supporting documentation, and
|
||||
* that the name of the copyright holders not be used in advertising or
|
||||
* publicity pertaining to distribution of the software without specific,
|
||||
* written prior permission. The copyright holders make no representations
|
||||
* about the suitability of this software for any purpose. It is provided "as
|
||||
* is" without express or implied warranty.
|
||||
*
|
||||
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
||||
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_XORG_CONFIG_H
|
||||
#include <xorg-config.h>
|
||||
#endif
|
||||
|
||||
#include "dri3_priv.h"
|
||||
|
||||
RESTYPE dri3_event_type;
|
||||
|
||||
static int
|
||||
dri3_free_event(void *data, XID id)
|
||||
{
|
||||
dri3_event_ptr dri3_event = (dri3_event_ptr) data;
|
||||
dri3_window_priv_ptr window_priv = dri3_window_priv(dri3_event->window);
|
||||
dri3_event_ptr *previous, current;
|
||||
|
||||
for (previous = &window_priv->events; (current = *previous); previous = ¤t->next) {
|
||||
if (current == dri3_event) {
|
||||
*previous = dri3_event->next;
|
||||
break;
|
||||
}
|
||||
}
|
||||
free((void *) dri3_event);
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
dri3_free_events(WindowPtr window)
|
||||
{
|
||||
dri3_window_priv_ptr window_priv = dri3_window_priv(window);
|
||||
dri3_event_ptr event;
|
||||
|
||||
if (!window_priv)
|
||||
return;
|
||||
|
||||
while ((event = window_priv->events))
|
||||
FreeResource(event->id, RT_NONE);
|
||||
}
|
||||
|
||||
static void
|
||||
dri3_event_swap(xGenericEvent *from, xGenericEvent *to)
|
||||
{
|
||||
*to = *from;
|
||||
swaps(&to->sequenceNumber);
|
||||
swapl(&to->length);
|
||||
swaps(&to->evtype);
|
||||
switch (from->evtype) {
|
||||
case DRI3_ConfigureNotify: {
|
||||
xDRI3ConfigureNotify *c = (xDRI3ConfigureNotify *) to;
|
||||
|
||||
swapl(&c->eid);
|
||||
swapl(&c->window);
|
||||
swaps(&c->x);
|
||||
swaps(&c->y);
|
||||
swaps(&c->width);
|
||||
swaps(&c->height);
|
||||
swaps(&c->off_x);
|
||||
swaps(&c->off_y);
|
||||
swaps(&c->pixmap_width);
|
||||
swaps(&c->pixmap_height);
|
||||
swapl(&c->pixmap_flags);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
dri3_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw, WindowPtr sibling)
|
||||
{
|
||||
dri3_window_priv_ptr window_priv = dri3_window_priv(window);
|
||||
|
||||
if (window_priv) {
|
||||
xDRI3ConfigureNotify cn = {
|
||||
.type = GenericEvent,
|
||||
.extension = dri3_request,
|
||||
.length = (sizeof(xDRI3ConfigureNotify) - 32) >> 2,
|
||||
.evtype = DRI3_ConfigureNotify,
|
||||
.eid = 0,
|
||||
.window = window->drawable.id,
|
||||
.x = x,
|
||||
.y = y,
|
||||
.width = w,
|
||||
.height = h,
|
||||
.off_x = 0,
|
||||
.off_y = 0,
|
||||
.pixmap_width = w,
|
||||
.pixmap_height = h,
|
||||
.pixmap_flags = 0
|
||||
};
|
||||
dri3_event_ptr event;
|
||||
dri3_screen_priv_ptr screen_priv = dri3_screen_priv(window->drawable.pScreen);
|
||||
|
||||
if (screen_priv->info && screen_priv->info->driver_config)
|
||||
screen_priv->info->driver_config(window, &cn);
|
||||
|
||||
for (event = window_priv->events; event; event = event->next) {
|
||||
if (event->mask & (1 << DRI3ConfigureNotify)) {
|
||||
cn.eid = event->id;
|
||||
WriteEventsToClient(event->client, 1, (xEvent *) &cn);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
dri3_select_input(ClientPtr client, XID eid, WindowPtr window, CARD32 mask)
|
||||
{
|
||||
dri3_window_priv_ptr window_priv = dri3_window_priv(window);
|
||||
dri3_event_ptr event;
|
||||
|
||||
if (!window_priv)
|
||||
return BadAlloc;
|
||||
|
||||
event = calloc (1, sizeof (dri3_event_rec));
|
||||
if (!event)
|
||||
return BadAlloc;
|
||||
|
||||
event->client = client;
|
||||
event->window = window;
|
||||
event->id = eid;
|
||||
event->mask = mask;
|
||||
|
||||
event->next = window_priv->events;
|
||||
window_priv->events = event;
|
||||
|
||||
if (!AddResource(event->id, dri3_event_type, (void *) event))
|
||||
return BadAlloc;
|
||||
|
||||
return Success;
|
||||
}
|
||||
|
||||
Bool
|
||||
dri3_event_init(void)
|
||||
{
|
||||
dri3_event_type = CreateNewResourceType(dri3_free_event, "DRI3Event");
|
||||
if (!dri3_event_type)
|
||||
return FALSE;
|
||||
|
||||
GERegisterExtension(dri3_request, dri3_event_swap);
|
||||
return TRUE;
|
||||
}
|
|
@ -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 {
|
||||
|
|
5
fb/fb.h
5
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)
|
||||
|
|
|
@ -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.
|
||||
*/
|
||||
|
|
|
@ -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, },
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -108,6 +108,11 @@ struct __GLXcontext {
|
|||
*/
|
||||
GLenum resetNotificationStrategy;
|
||||
|
||||
/**
|
||||
* Context release behavior
|
||||
*/
|
||||
GLenum releaseBehavior;
|
||||
|
||||
/*
|
||||
** Buffers for feedback and selection.
|
||||
*/
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -16,7 +16,6 @@ endif
|
|||
|
||||
if XF86VIDMODE
|
||||
XF86VMODESOURCES = xf86vmode.c
|
||||
XF86VMODE_SDK = vidmodeproc.h
|
||||
endif
|
||||
|
||||
if DGA
|
||||
|
|
|
@ -54,57 +54,15 @@ typedef struct {
|
|||
|
||||
/* DDX interface */
|
||||
|
||||
extern _X_EXPORT int
|
||||
DGASetMode(int Index, int num, XDGAModePtr mode, PixmapPtr *pPix);
|
||||
extern Bool DGAScreenAvailable(ScreenPtr pScreen);
|
||||
extern Bool DGAActive(int Index);
|
||||
extern void DGAShutdown(void);
|
||||
|
||||
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 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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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]);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -111,7 +111,7 @@ VidModeClose(ScreenPtr pScreen)
|
|||
return pScreen->CloseScreen(pScreen);
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
VidModeAvailable(int scrnIndex)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
|
|
@ -6955,28 +6955,6 @@ and needs to do its own mode validation, it might be able to make
|
|||
use of some of these secondary mode helper functions.
|
||||
</para>
|
||||
|
||||
<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);
|
||||
|
@ -6988,59 +6966,6 @@ use of some of these secondary mode helper functions.
|
|||
|
||||
</blockquote></para></blockquote>
|
||||
|
||||
<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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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,6 +460,19 @@ xf86printScreenSection(FILE * cf, XF86ConfScreenPtr ptr)
|
|||
|
||||
}
|
||||
|
||||
static void
|
||||
xf86freeAdaptorLinkList(XF86ConfAdaptorLinkPtr ptr)
|
||||
{
|
||||
XF86ConfAdaptorLinkPtr prev;
|
||||
|
||||
while (ptr) {
|
||||
TestFree(ptr->al_adaptor_str);
|
||||
prev = ptr;
|
||||
ptr = ptr->list.next;
|
||||
free(prev);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
xf86freeScreenList(XF86ConfScreenPtr ptr)
|
||||
{
|
||||
|
@ -454,46 +494,6 @@ xf86freeScreenList(XF86ConfScreenPtr ptr)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
xf86freeAdaptorLinkList(XF86ConfAdaptorLinkPtr ptr)
|
||||
{
|
||||
XF86ConfAdaptorLinkPtr prev;
|
||||
|
||||
while (ptr) {
|
||||
TestFree(ptr->al_adaptor_str);
|
||||
prev = ptr;
|
||||
ptr = ptr->list.next;
|
||||
free(prev);
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
XF86ModePtr prev;
|
||||
|
||||
while (ptr) {
|
||||
TestFree(ptr->mode_name);
|
||||
prev = ptr;
|
||||
ptr = ptr->list.next;
|
||||
free(prev);
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
xf86validateScreen(XF86ConfigPtr p)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */ ,
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */ );
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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 */ ,
|
||||
extern void Swap32Write(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 void SGetWindowAttributesReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
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 void SGetPropertyReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetPropertyReply * /* pRep */ );
|
||||
|
||||
extern void SListPropertiesReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xListPropertiesReply * /* pRep */ );
|
||||
|
||||
extern void SGetSelectionOwnerReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetSelectionOwnerReply *
|
||||
/* pRep */ );
|
||||
|
||||
extern void SQueryPointerReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xQueryPointerReply * /* pRep */ );
|
||||
|
||||
extern void SwapTimeCoordWrite(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xTimecoord * /* pRep */ );
|
||||
|
||||
extern void SGetMotionEventsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
CARD32 * /* pbuf */ );
|
||||
xGetMotionEventsReply * /* pRep */
|
||||
);
|
||||
|
||||
extern _X_EXPORT void CopySwap32Write(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
CARD32 * /* pbuf */ );
|
||||
extern void STranslateCoordsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xTranslateCoordsReply * /* pRep */
|
||||
);
|
||||
|
||||
extern _X_EXPORT void CopySwap16Write(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
short * /* pbuf */ );
|
||||
extern void SGetInputFocusReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetInputFocusReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SGenericReply(ClientPtr /* pClient */ ,
|
||||
extern void SQueryKeymapReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xQueryKeymapReply * /* pRep */ );
|
||||
|
||||
extern void SQueryFontReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xQueryFontReply * /* pRep */ );
|
||||
|
||||
extern void SQueryTextExtentsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xQueryTextExtentsReply * /* pRep */
|
||||
);
|
||||
|
||||
extern void SListFontsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xListFontsReply * /* pRep */ );
|
||||
|
||||
extern void SListFontsWithInfoReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGenericReply * /* pRep */ );
|
||||
xListFontsWithInfoReply *
|
||||
/* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SGetWindowAttributesReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetWindowAttributesReply *
|
||||
/* pRep */ );
|
||||
extern void SGetFontPathReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetFontPathReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SGetGeometryReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetGeometryReply * /* pRep */ );
|
||||
extern void SGetImageReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetImageReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SQueryTreeReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xQueryTreeReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SInternAtomReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xInternAtomReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SGetAtomNameReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetAtomNameReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SGetPropertyReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetPropertyReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SListPropertiesReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xListPropertiesReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SGetSelectionOwnerReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetSelectionOwnerReply *
|
||||
/* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SQueryPointerReply(ClientPtr /* pClient */ ,
|
||||
extern void SListInstalledColormapsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xQueryPointerReply * /* pRep */ );
|
||||
xListInstalledColormapsReply
|
||||
* /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SwapTimeCoordWrite(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xTimecoord * /* pRep */ );
|
||||
extern void SAllocColorReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xAllocColorReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SGetMotionEventsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetMotionEventsReply * /* pRep */
|
||||
);
|
||||
extern void SAllocNamedColorReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xAllocNamedColorReply * /* pRep */
|
||||
);
|
||||
|
||||
extern _X_EXPORT void STranslateCoordsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xTranslateCoordsReply * /* pRep */
|
||||
);
|
||||
extern void SAllocColorCellsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xAllocColorCellsReply * /* pRep */
|
||||
);
|
||||
|
||||
extern _X_EXPORT void SGetInputFocusReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetInputFocusReply * /* pRep */ );
|
||||
extern void SAllocColorPlanesReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xAllocColorPlanesReply * /* pRep */
|
||||
);
|
||||
|
||||
extern _X_EXPORT void SQueryKeymapReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xQueryKeymapReply * /* pRep */ );
|
||||
extern void SQColorsExtend(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xrgb * /* prgb */ );
|
||||
|
||||
extern _X_EXPORT void SQueryFontReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xQueryFontReply * /* pRep */ );
|
||||
extern void SQueryColorsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xQueryColorsReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SQueryTextExtentsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xQueryTextExtentsReply * /* pRep */
|
||||
);
|
||||
extern void SLookupColorReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xLookupColorReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SListFontsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xListFontsReply * /* pRep */ );
|
||||
extern void SQueryBestSizeReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xQueryBestSizeReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SListFontsWithInfoReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xListFontsWithInfoReply *
|
||||
/* pRep */ );
|
||||
extern void SListExtensionsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xListExtensionsReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SGetFontPathReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetFontPathReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SGetImageReply(ClientPtr /* pClient */ ,
|
||||
extern void SGetKeyboardMappingReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetImageReply * /* pRep */ );
|
||||
xGetKeyboardMappingReply *
|
||||
/* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SListInstalledColormapsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xListInstalledColormapsReply
|
||||
* /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SAllocColorReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xAllocColorReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SAllocNamedColorReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xAllocNamedColorReply * /* pRep */
|
||||
);
|
||||
|
||||
extern _X_EXPORT void SAllocColorCellsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xAllocColorCellsReply * /* pRep */
|
||||
);
|
||||
|
||||
extern _X_EXPORT void SAllocColorPlanesReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xAllocColorPlanesReply * /* pRep */
|
||||
);
|
||||
|
||||
extern _X_EXPORT void SQColorsExtend(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 */ ,
|
||||
extern void SGetPointerMappingReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
char * /* buf */ );
|
||||
xGetPointerMappingReply *
|
||||
/* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SListHostsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xListHostsReply * /* pRep */ );
|
||||
extern void SGetModifierMappingReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetModifierMappingReply *
|
||||
/* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SErrorEvent(xError * /* from */ ,
|
||||
xError * /* to */ );
|
||||
extern void SGetKeyboardControlReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetKeyboardControlReply *
|
||||
/* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SwapConnSetupInfo(char * /* pInfo */ ,
|
||||
char * /* pInfoTBase */ );
|
||||
extern void SGetPointerControlReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetPointerControlReply *
|
||||
/* pRep */ );
|
||||
|
||||
extern _X_EXPORT void WriteSConnectionInfo(ClientPtr /* pClient */ ,
|
||||
unsigned long /* size */ ,
|
||||
char * /* pInfo */ );
|
||||
extern void SGetScreenSaverReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xGetScreenSaverReply * /* pRep */ );
|
||||
|
||||
extern _X_EXPORT void SwapConnSetupPrefix(xConnSetupPrefix * /* pcspFrom */ ,
|
||||
xConnSetupPrefix * /* pcspTo */ );
|
||||
extern void SLHostsExtend(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
char * /* buf */ );
|
||||
|
||||
extern _X_EXPORT void WriteSConnSetupPrefix(ClientPtr /* pClient */ ,
|
||||
xConnSetupPrefix * /* pcsp */ );
|
||||
extern void SListHostsReply(ClientPtr /* pClient */ ,
|
||||
int /* size */ ,
|
||||
xListHostsReply * /* pRep */ );
|
||||
|
||||
extern void SErrorEvent(xError * /* from */ ,
|
||||
xError * /* to */ );
|
||||
|
||||
extern void SwapConnSetupInfo(char * /* pInfo */ ,
|
||||
char * /* pInfoTBase */ );
|
||||
|
||||
extern void WriteSConnectionInfo(ClientPtr /* pClient */ ,
|
||||
unsigned long /* size */ ,
|
||||
char * /* pInfo */ );
|
||||
|
||||
extern void SwapConnSetupPrefix(xConnSetupPrefix * /* pcspFrom */ ,
|
||||
xConnSetupPrefix * /* pcspTo */ );
|
||||
|
||||
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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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? */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -844,8 +844,8 @@ miOverlayHandleExposures(WindowPtr pWin)
|
|||
if ((mival = pTree->valdata)) {
|
||||
if (!((*pPriv->InOverlay) (pTree->pWin))) {
|
||||
if (RegionNotEmpty(&mival->borderExposed)) {
|
||||
miPaintWindow(pTree->pWin, &mival->borderExposed,
|
||||
PW_BORDER);
|
||||
pScreen->PaintWindow(pTree->pWin, &mival->borderExposed,
|
||||
PW_BORDER);
|
||||
}
|
||||
RegionUninit(&mival->borderExposed);
|
||||
|
||||
|
@ -883,7 +883,8 @@ miOverlayHandleExposures(WindowPtr pWin)
|
|||
}
|
||||
else {
|
||||
if (RegionNotEmpty(&val->after.borderExposed)) {
|
||||
miPaintWindow(pChild, &val->after.borderExposed, PW_BORDER);
|
||||
pScreen->PaintWindow(pChild, &val->after.borderExposed,
|
||||
PW_BORDER);
|
||||
}
|
||||
(*WindowExposures) (pChild, &val->after.exposed);
|
||||
}
|
||||
|
@ -982,6 +983,7 @@ static void
|
|||
miOverlayWindowExposures(WindowPtr pWin, RegionPtr prgn)
|
||||
{
|
||||
RegionPtr exposures = prgn;
|
||||
ScreenPtr pScreen = pWin->drawable.pScreen;
|
||||
|
||||
if (prgn && !RegionNil(prgn)) {
|
||||
RegionRec expRec;
|
||||
|
@ -1007,7 +1009,7 @@ miOverlayWindowExposures(WindowPtr pWin, RegionPtr prgn)
|
|||
else
|
||||
RegionIntersect(prgn, prgn, &pWin->clipList);
|
||||
}
|
||||
miPaintWindow(pWin, prgn, PW_BACKGROUND);
|
||||
pScreen->PaintWindow(pWin, prgn, PW_BACKGROUND);
|
||||
if (clientInterested)
|
||||
miSendExposures(pWin, exposures,
|
||||
pWin->drawable.x, pWin->drawable.y);
|
||||
|
@ -1606,7 +1608,7 @@ miOverlayClearToBackground(WindowPtr pWin,
|
|||
if (generateExposures)
|
||||
(*pScreen->WindowExposures) (pWin, ®);
|
||||
else if (pWin->backgroundState != None)
|
||||
miPaintWindow(pWin, ®, PW_BACKGROUND);
|
||||
pScreen->PaintWindow(pWin, ®, PW_BACKGROUND);
|
||||
RegionUninit(®);
|
||||
}
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -113,7 +113,7 @@ miClearToBackground(WindowPtr pWin,
|
|||
if (generateExposures)
|
||||
(*pWin->drawable.pScreen->WindowExposures) (pWin, ®);
|
||||
else if (pWin->backgroundState != None)
|
||||
miPaintWindow(pWin, ®, PW_BACKGROUND);
|
||||
pWin->drawable.pScreen->PaintWindow(pWin, ®, PW_BACKGROUND);
|
||||
RegionUninit(®);
|
||||
}
|
||||
|
||||
|
@ -219,7 +219,9 @@ miHandleValidateExposures(WindowPtr pWin)
|
|||
while (1) {
|
||||
if ((val = pChild->valdata)) {
|
||||
if (RegionNotEmpty(&val->after.borderExposed))
|
||||
miPaintWindow(pChild, &val->after.borderExposed, PW_BORDER);
|
||||
pWin->drawable.pScreen->PaintWindow(pChild,
|
||||
&val->after.borderExposed,
|
||||
PW_BORDER);
|
||||
RegionUninit(&val->after.borderExposed);
|
||||
(*WindowExposures) (pChild, &val->after.exposed);
|
||||
RegionUninit(&val->after.exposed);
|
||||
|
@ -767,14 +769,11 @@ miSpriteTrace(SpritePtr pSprite, int x, int y)
|
|||
RegionContainsPoint(wInputShape(pWin),
|
||||
x - pWin->drawable.x,
|
||||
y - pWin->drawable.y, &box))
|
||||
#ifdef ROOTLESS
|
||||
/* In rootless mode windows may be offscreen, even when
|
||||
* they're in X's stack. (E.g. if the native window system
|
||||
* implements some form of virtual desktop system).
|
||||
*/
|
||||
&& !pWin->rootlessUnhittable
|
||||
#endif
|
||||
) {
|
||||
&& !pWin->unhittable) {
|
||||
if (pSprite->spriteTraceGood >= pSprite->spriteTraceSize) {
|
||||
pSprite->spriteTraceSize += 10;
|
||||
pSprite->spriteTrace = reallocarray(pSprite->spriteTrace,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -94,6 +94,7 @@ typedef struct _RootlessScreenRec {
|
|||
ChangeBorderWidthProcPtr ChangeBorderWidth;
|
||||
PositionWindowProcPtr PositionWindow;
|
||||
ChangeWindowAttributesProcPtr ChangeWindowAttributes;
|
||||
PaintWindowProcPtr PaintWindow;
|
||||
|
||||
CreateGCProcPtr CreateGC;
|
||||
CopyWindowProcPtr CopyWindow;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 GlyphPtr FindGlyph(GlyphSetPtr glyphSet, Glyph id);
|
||||
|
||||
extern _X_EXPORT GlyphPtr AllocateGlyph(xGlyphInfo * gi, int format);
|
||||
extern GlyphPtr AllocateGlyph(xGlyphInfo * gi, int format);
|
||||
|
||||
extern _X_EXPORT Bool
|
||||
AllocateGlyphHash(GlyphHashPtr hash, GlyphHashSetPtr hashSet);
|
||||
|
||||
extern _X_EXPORT Bool
|
||||
ResizeGlyphHash(GlyphHashPtr hash, CARD32 change, Bool global);
|
||||
|
||||
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 */
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -53,26 +53,6 @@ extern _X_EXPORT int
|
|||
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);
|
||||
|
||||
|
@ -121,22 +101,6 @@ miCompositeRects(CARD8 op,
|
|||
PicturePtr pDst,
|
||||
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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
@ -379,27 +377,12 @@ extern _X_EXPORT RESTYPE GlyphSetType;
|
|||
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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue