Merge branch 'master' into my-XACE-modular

This commit is contained in:
Eamon Walsh 2006-09-15 15:26:57 -04:00 committed by Eamon Walsh
commit 49a70c8570
24 changed files with 349 additions and 250 deletions

View File

@ -73,6 +73,9 @@ struct __GLXDRIscreen {
__DRIscreen driScreen; __DRIscreen driScreen;
void *driver; void *driver;
xf86EnterVTProc *enterVT;
xf86LeaveVTProc *leaveVT;
unsigned char glx_enable_bits[__GLX_EXT_BYTES]; unsigned char glx_enable_bits[__GLX_EXT_BYTES];
}; };
@ -622,8 +625,7 @@ static __DRIfuncPtr getProcAddress(const char *proc_name)
static __DRIscreen *findScreen(__DRInativeDisplay *dpy, int scrn) static __DRIscreen *findScreen(__DRInativeDisplay *dpy, int scrn)
{ {
__GLXDRIscreen *screen = __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(scrn);
(__GLXDRIscreen *) __glXgetActiveScreen(scrn);
return &screen->driScreen; return &screen->driScreen;
} }
@ -817,6 +819,30 @@ static const __DRIinterfaceMethods interface_methods = {
static const char dri_driver_path[] = DRI_DRIVER_PATH; static const char dri_driver_path[] = DRI_DRIVER_PATH;
static Bool
glxDRIEnterVT (int index, int flags)
{
__GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index);
LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n");
glxResumeClients();
return (*screen->enterVT) (index, flags);
}
static void
glxDRILeaveVT (int index, int flags)
{
__GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index);
LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n");
glxSuspendClients();
return (*screen->leaveVT) (index, flags);
}
static __GLXscreen * static __GLXscreen *
__glXDRIscreenProbe(ScreenPtr pScreen) __glXDRIscreenProbe(ScreenPtr pScreen)
{ {
@ -842,6 +868,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
char filename[128]; char filename[128];
Bool isCapable; Bool isCapable;
size_t buffer_size; size_t buffer_size;
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable")) { if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable")) {
LogMessage(X_ERROR, "AIGLX: DRI module not loaded\n"); LogMessage(X_ERROR, "AIGLX: DRI module not loaded\n");
@ -1029,6 +1056,11 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
__glXsetEnterLeaveServerFuncs(__glXDRIenterServer, __glXDRIleaveServer); __glXsetEnterLeaveServerFuncs(__glXDRIenterServer, __glXDRIleaveServer);
screen->enterVT = pScrn->EnterVT;
pScrn->EnterVT = glxDRIEnterVT;
screen->leaveVT = pScrn->LeaveVT;
pScrn->LeaveVT = glxDRILeaveVT;
LogMessage(X_INFO, LogMessage(X_INFO,
"AIGLX: Loaded and initialized %s\n", filename); "AIGLX: Loaded and initialized %s\n", filename);

View File

@ -59,10 +59,7 @@ xGLXSingleReply __glXReply;
** A set of state for each client. The 0th one is unused because client ** A set of state for each client. The 0th one is unused because client
** indices start at 1, not 0. ** indices start at 1, not 0.
*/ */
__GLXclientState *__glXClients[MAXCLIENTS+1]; static __GLXclientState *__glXClients[MAXCLIENTS + 1];
static Bool inDispatch;
/* /*
** Forward declarations. ** Forward declarations.
@ -219,6 +216,10 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
return True; return True;
} }
static __GLXcontext *glxPendingDestroyContexts;
static int glxServerLeaveCount;
static int glxBlockClients;
/* /*
** Free a context. ** Free a context.
*/ */
@ -236,13 +237,14 @@ GLboolean __glXFreeContext(__GLXcontext *cx)
* __glXDispatch() or as a callback from the resource manager. In * __glXDispatch() or as a callback from the resource manager. In
* the latter case we need to lift the DRI lock manually. */ * the latter case we need to lift the DRI lock manually. */
if (!inDispatch) if (glxBlockClients) {
__glXleaveServer(); __glXleaveServer();
cx->destroy(cx);
cx->destroy(cx); __glXenterServer();
} else {
if (!inDispatch) cx->next = glxPendingDestroyContexts;
__glXenterServer(); glxPendingDestroyContexts = cx;
}
return GL_TRUE; return GL_TRUE;
} }
@ -338,7 +340,7 @@ void GlxExtensionInit(void)
/* /*
** Initialize table of client state. There is never a client 0. ** Initialize table of client state. There is never a client 0.
*/ */
for (i=1; i <= MAXCLIENTS; i++) { for (i = 1; i <= MAXCLIENTS; i++) {
__glXClients[i] = 0; __glXClients[i] = 0;
} }
@ -409,11 +411,43 @@ __GLXcontext *__glXForceCurrent(__GLXclientState *cl, GLXContextTag tag,
/************************************************************************/ /************************************************************************/
/* void glxSuspendClients(void)
** Top level dispatcher; all commands are executed from here down. {
*/ int i;
/* I cried when I wrote this. Damn you XAA! */ for (i = 1; i <= MAXCLIENTS; i++) {
if (__glXClients[i] == NULL || !__glXClients[i]->inUse)
continue;
IgnoreClient(__glXClients[i]->client);
}
glxBlockClients = TRUE;
}
void glxResumeClients(void)
{
__GLXcontext *cx, *next;
int i;
glxBlockClients = FALSE;
for (i = 1; i <= MAXCLIENTS; i++) {
if (__glXClients[i] == NULL || !__glXClients[i]->inUse)
continue;
AttendClient(__glXClients[i]->client);
}
__glXleaveServer();
for (cx = glxPendingDestroyContexts; cx != NULL; cx = next) {
next = cx->next;
cx->destroy(cx);
}
glxPendingDestroyContexts = NULL;
__glXenterServer();
}
static void static void
__glXnopEnterServer(void) __glXnopEnterServer(void)
@ -438,14 +472,19 @@ void __glXsetEnterLeaveServerFuncs(void (*enter)(void),
void __glXenterServer(void) void __glXenterServer(void)
{ {
(*__glXenterServerFunc)(); glxServerLeaveCount--;
if (glxServerLeaveCount == 0)
(*__glXenterServerFunc)();
} }
void __glXleaveServer(void) void __glXleaveServer(void)
{ {
(*__glXleaveServerFunc)(); if (glxServerLeaveCount == 0)
} (*__glXleaveServerFunc)();
glxServerLeaveCount++;
}
/* /*
** Top level dispatcher; all commands are executed from here down. ** Top level dispatcher; all commands are executed from here down.
@ -491,6 +530,15 @@ static int __glXDispatch(ClientPtr client)
return __glXError(GLXBadLargeRequest); return __glXError(GLXBadLargeRequest);
} }
/* If we're currently blocking GLX clients, just put this guy to
* sleep, reset the request and return. */
if (glxBlockClients) {
ResetCurrentRequest(client);
client->sequence--;
IgnoreClient(client);
return(client->noClientException);
}
/* /*
** Use the opcode to index into the procedure table. ** Use the opcode to index into the procedure table.
*/ */
@ -500,12 +548,8 @@ static int __glXDispatch(ClientPtr client)
if (proc != NULL) { if (proc != NULL) {
__glXleaveServer(); __glXleaveServer();
inDispatch = True;
retval = (*proc)(cl, (GLbyte *) stuff); retval = (*proc)(cl, (GLbyte *) stuff);
inDispatch = False;
__glXenterServer(); __glXenterServer();
} }
else { else {

View File

@ -71,9 +71,6 @@ extern void __glXClearErrorOccured(void);
extern GLboolean __glXErrorOccured(void); extern GLboolean __glXErrorOccured(void);
extern void __glXResetLargeCommandStatus(__GLXclientState*); extern void __glXResetLargeCommandStatus(__GLXclientState*);
extern int __glXQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc);
extern int __glXSwapQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc);
extern int DoMakeCurrent( __GLXclientState *cl, GLXDrawable drawId, extern int DoMakeCurrent( __GLXclientState *cl, GLXDrawable drawId,
GLXDrawable readId, GLXContextID contextId, GLXContextTag tag ); GLXDrawable readId, GLXContextID contextId, GLXContextTag tag );
extern int DoGetVisualConfigs(__GLXclientState *cl, unsigned screen, extern int DoGetVisualConfigs(__GLXclientState *cl, unsigned screen,
@ -93,8 +90,6 @@ extern int DoRenderLarge(__GLXclientState *cl, GLbyte *pc, int do_swap);
extern void GlxExtensionInit(void); extern void GlxExtensionInit(void);
extern Bool __glXCoreType(void);
extern const char GLServerVersion[]; extern const char GLServerVersion[];
extern int DoGetString(__GLXclientState *cl, GLbyte *pc, GLboolean need_swap); extern int DoGetString(__GLXclientState *cl, GLbyte *pc, GLboolean need_swap);

View File

@ -136,6 +136,9 @@ void __glXsetEnterLeaveServerFuncs(void (*enter)(void),
void __glXenterServer(void); void __glXenterServer(void);
void __glXleaveServer(void); void __glXleaveServer(void);
void glxSuspendClients(void);
void glxResumeClients(void);
/* /*
** State kept per client. ** State kept per client.
*/ */
@ -176,8 +179,6 @@ struct __GLXclientStateRec {
char *GLClientextensions; char *GLClientextensions;
}; };
extern __GLXclientState *__glXClients[];
/************************************************************************/ /************************************************************************/
/* /*
@ -191,7 +192,6 @@ typedef int (*__GLXdispatchVendorPrivProcPtr)(__GLXclientState *, GLbyte *);
* Dispatch for GLX commands. * Dispatch for GLX commands.
*/ */
typedef int (*__GLXprocPtr)(__GLXclientState *, char *pc); typedef int (*__GLXprocPtr)(__GLXclientState *, char *pc);
extern __GLXprocPtr __glXProcTable[];
/* /*
* Tables for computing the size of each rendering command. * Tables for computing the size of each rendering command.
@ -252,6 +252,4 @@ extern int __glXImageSize(GLenum format, GLenum type,
GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows, GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows,
GLint alignment); GLint alignment);
extern int __glXDrawArraysReqSize(const GLbyte *pc, Bool swap);
#endif /* !__GLX_server_h__ */ #endif /* !__GLX_server_h__ */

View File

@ -40,36 +40,18 @@
** **
*/ */
extern void __glXNop(void);
/* relate contexts with drawables */ /* relate contexts with drawables */
extern void __glXAssociateContext(__GLXcontext *glxc); extern void __glXAssociateContext(__GLXcontext *glxc);
extern void __glXDeassociateContext(__GLXcontext *glxc); extern void __glXDeassociateContext(__GLXcontext *glxc);
/* drawable operation */
extern void __glXGetDrawableSize(__GLdrawablePrivate *glPriv,
GLint *x, GLint *y,
GLuint *width, GLuint *height);
extern GLboolean __glXResizeDrawable(__GLdrawablePrivate *glPriv);
extern GLboolean __glXResizeDrawableBuffers(__GLXdrawable *glxPriv);
/* drawable management */ /* drawable management */
extern void __glXRefDrawable(__GLXdrawable *glxPriv); extern void __glXRefDrawable(__GLXdrawable *glxPriv);
extern void __glXUnrefDrawable(__GLXdrawable *glxPriv); extern void __glXUnrefDrawable(__GLXdrawable *glxPriv);
extern __GLXdrawable *__glXCreateDrawable(__GLXscreen *screen,
DrawablePtr pDraw, XID drawId,
__GLcontextModes *modes);
extern GLboolean __glXDrawableInit(__GLXdrawable *drawable, extern GLboolean __glXDrawableInit(__GLXdrawable *drawable,
__GLXscreen *screen, __GLXscreen *screen,
DrawablePtr pDraw, XID drawID, DrawablePtr pDraw, XID drawID,
__GLcontextModes *modes); __GLcontextModes *modes);
extern GLboolean __glXDestroyDrawable(__GLXdrawable *glxPriv);
extern __GLXdrawable *__glXFindDrawable(XID glxpixmapId);
extern __GLXdrawable *__glXGetDrawable(__GLXcontext *ctx,
DrawablePtr pDraw,
XID glxpixmapId);
extern void __glXCacheDrawableSize(__GLXdrawable *glxPriv);
/* context helper routines */ /* context helper routines */
extern __GLXcontext *__glXLookupContextByTag(__GLXclientState*, GLXContextTag); extern __GLXcontext *__glXLookupContextByTag(__GLXclientState*, GLXContextTag);
@ -79,4 +61,3 @@ extern void *__glXglDDXScreenInfo(void);
extern void *__glXglDDXExtensionInfo(void); extern void *__glXglDDXExtensionInfo(void);
#endif /* _glxcmds_h_ */ #endif /* _glxcmds_h_ */

View File

@ -1232,12 +1232,12 @@ const struct __glXDispatchInfo Render_dispatch_info = {
/*****************************************************************/ /*****************************************************************/
/* tree depth = 13 */ /* tree depth = 13 */
static const int_fast16_t VendorPriv_dispatch_tree[155] = { static const int_fast16_t VendorPriv_dispatch_tree[158] = {
/* [0] -> opcode range [0, 131072], node depth 1 */ /* [0] -> opcode range [0, 131072], node depth 1 */
2, 2,
5, 5,
EMPTY_LEAF, EMPTY_LEAF,
119, 122,
EMPTY_LEAF, EMPTY_LEAF,
/* [5] -> opcode range [0, 32768], node depth 2 */ /* [5] -> opcode range [0, 32768], node depth 2 */
@ -1254,7 +1254,7 @@ static const int_fast16_t VendorPriv_dispatch_tree[155] = {
2, 2,
16, 16,
EMPTY_LEAF, EMPTY_LEAF,
78, 81,
EMPTY_LEAF, EMPTY_LEAF,
/* [16] -> opcode range [0, 2048], node depth 5 */ /* [16] -> opcode range [0, 2048], node depth 5 */
@ -1299,7 +1299,7 @@ static const int_fast16_t VendorPriv_dispatch_tree[155] = {
44, 44,
EMPTY_LEAF, EMPTY_LEAF,
56, 56,
67, 70,
/* [44] -> opcode range [1024, 1152], node depth 7 */ /* [44] -> opcode range [1024, 1152], node depth 7 */
1, 1,
@ -1327,164 +1327,169 @@ static const int_fast16_t VendorPriv_dispatch_tree[155] = {
EMPTY_LEAF, EMPTY_LEAF,
/* [59] -> opcode range [1280, 1344], node depth 8 */ /* [59] -> opcode range [1280, 1344], node depth 8 */
1,
62,
EMPTY_LEAF,
/* [62] -> opcode range [1280, 1312], node depth 9 */
2, 2,
EMPTY_LEAF, 64,
LEAF(16), LEAF(16),
LEAF(24), EMPTY_LEAF,
67,
/* [64] -> opcode range [1280, 1296], node depth 9 */
1,
EMPTY_LEAF,
LEAF(32), LEAF(32),
/* [67] -> opcode range [1408, 1536], node depth 7 */ /* [67] -> opcode range [1328, 1344], node depth 9 */
1, 1,
70, LEAF(40),
EMPTY_LEAF, EMPTY_LEAF,
/* [70] -> opcode range [1408, 1472], node depth 8 */ /* [70] -> opcode range [1408, 1536], node depth 7 */
1, 1,
73, 73,
EMPTY_LEAF, EMPTY_LEAF,
/* [73] -> opcode range [1408, 1440], node depth 9 */ /* [73] -> opcode range [1408, 1472], node depth 8 */
2,
EMPTY_LEAF,
LEAF(40),
LEAF(48),
EMPTY_LEAF,
/* [78] -> opcode range [4096, 6144], node depth 5 */
2,
83,
EMPTY_LEAF,
101,
EMPTY_LEAF,
/* [83] -> opcode range [4096, 4608], node depth 6 */
1, 1,
76,
EMPTY_LEAF,
/* [76] -> opcode range [1408, 1440], node depth 9 */
2,
EMPTY_LEAF,
LEAF(48),
LEAF(56),
EMPTY_LEAF,
/* [81] -> opcode range [4096, 6144], node depth 5 */
2,
86, 86,
EMPTY_LEAF, EMPTY_LEAF,
104,
EMPTY_LEAF,
/* [86] -> opcode range [4096, 4352], node depth 7 */ /* [86] -> opcode range [4096, 4608], node depth 6 */
1, 1,
89, 89,
EMPTY_LEAF, EMPTY_LEAF,
/* [89] -> opcode range [4096, 4224], node depth 8 */ /* [89] -> opcode range [4096, 4352], node depth 7 */
1, 1,
92, 92,
EMPTY_LEAF, EMPTY_LEAF,
/* [92] -> opcode range [4096, 4160], node depth 9 */ /* [92] -> opcode range [4096, 4224], node depth 8 */
1, 1,
95, 95,
EMPTY_LEAF, EMPTY_LEAF,
/* [95] -> opcode range [4096, 4128], node depth 10 */ /* [95] -> opcode range [4096, 4160], node depth 9 */
1, 1,
98, 98,
EMPTY_LEAF, EMPTY_LEAF,
/* [98] -> opcode range [4096, 4112], node depth 11 */ /* [98] -> opcode range [4096, 4128], node depth 10 */
1, 1,
LEAF(56), 101,
EMPTY_LEAF, EMPTY_LEAF,
/* [101] -> opcode range [5120, 5632], node depth 6 */ /* [101] -> opcode range [4096, 4112], node depth 11 */
1,
104,
EMPTY_LEAF,
/* [104] -> opcode range [5120, 5376], node depth 7 */
1,
107,
EMPTY_LEAF,
/* [107] -> opcode range [5120, 5248], node depth 8 */
1,
110,
EMPTY_LEAF,
/* [110] -> opcode range [5120, 5184], node depth 9 */
1,
EMPTY_LEAF,
113,
/* [113] -> opcode range [5152, 5184], node depth 10 */
1,
116,
EMPTY_LEAF,
/* [116] -> opcode range [5152, 5168], node depth 11 */
1, 1,
LEAF(64), LEAF(64),
EMPTY_LEAF, EMPTY_LEAF,
/* [119] -> opcode range [65536, 98304], node depth 2 */ /* [104] -> opcode range [5120, 5632], node depth 6 */
1, 1,
122, 107,
EMPTY_LEAF, EMPTY_LEAF,
/* [122] -> opcode range [65536, 81920], node depth 3 */ /* [107] -> opcode range [5120, 5376], node depth 7 */
1, 1,
125, 110,
EMPTY_LEAF, EMPTY_LEAF,
/* [125] -> opcode range [65536, 73728], node depth 4 */ /* [110] -> opcode range [5120, 5248], node depth 8 */
1, 1,
128, 113,
EMPTY_LEAF, EMPTY_LEAF,
/* [128] -> opcode range [65536, 69632], node depth 5 */ /* [113] -> opcode range [5120, 5184], node depth 9 */
1, 1,
131, EMPTY_LEAF,
116,
/* [116] -> opcode range [5152, 5184], node depth 10 */
1,
119,
EMPTY_LEAF, EMPTY_LEAF,
/* [131] -> opcode range [65536, 67584], node depth 6 */ /* [119] -> opcode range [5152, 5168], node depth 11 */
1,
134,
EMPTY_LEAF,
/* [134] -> opcode range [65536, 66560], node depth 7 */
1,
137,
EMPTY_LEAF,
/* [137] -> opcode range [65536, 66048], node depth 8 */
1,
140,
EMPTY_LEAF,
/* [140] -> opcode range [65536, 65792], node depth 9 */
1,
143,
EMPTY_LEAF,
/* [143] -> opcode range [65536, 65664], node depth 10 */
1,
146,
EMPTY_LEAF,
/* [146] -> opcode range [65536, 65600], node depth 11 */
1,
149,
EMPTY_LEAF,
/* [149] -> opcode range [65536, 65568], node depth 12 */
1,
152,
EMPTY_LEAF,
/* [152] -> opcode range [65536, 65552], node depth 13 */
1, 1,
LEAF(72), LEAF(72),
EMPTY_LEAF, EMPTY_LEAF,
/* [122] -> opcode range [65536, 98304], node depth 2 */
1,
125,
EMPTY_LEAF,
/* [125] -> opcode range [65536, 81920], node depth 3 */
1,
128,
EMPTY_LEAF,
/* [128] -> opcode range [65536, 73728], node depth 4 */
1,
131,
EMPTY_LEAF,
/* [131] -> opcode range [65536, 69632], node depth 5 */
1,
134,
EMPTY_LEAF,
/* [134] -> opcode range [65536, 67584], node depth 6 */
1,
137,
EMPTY_LEAF,
/* [137] -> opcode range [65536, 66560], node depth 7 */
1,
140,
EMPTY_LEAF,
/* [140] -> opcode range [65536, 66048], node depth 8 */
1,
143,
EMPTY_LEAF,
/* [143] -> opcode range [65536, 65792], node depth 9 */
1,
146,
EMPTY_LEAF,
/* [146] -> opcode range [65536, 65664], node depth 10 */
1,
149,
EMPTY_LEAF,
/* [149] -> opcode range [65536, 65600], node depth 11 */
1,
152,
EMPTY_LEAF,
/* [152] -> opcode range [65536, 65568], node depth 12 */
1,
155,
EMPTY_LEAF,
/* [155] -> opcode range [65536, 65552], node depth 13 */
1,
LEAF(80),
EMPTY_LEAF,
}; };
static const void *VendorPriv_function_table[80][2] = { static const void *VendorPriv_function_table[88][2] = {
/* [ 0] = 8 */ {NULL, NULL}, /* [ 0] = 8 */ {NULL, NULL},
/* [ 1] = 9 */ {NULL, NULL}, /* [ 1] = 9 */ {NULL, NULL},
/* [ 2] = 10 */ {NULL, NULL}, /* [ 2] = 10 */ {NULL, NULL},
@ -1501,70 +1506,78 @@ static const void *VendorPriv_function_table[80][2] = {
/* [ 13] = 1029 */ {NULL, NULL}, /* [ 13] = 1029 */ {NULL, NULL},
/* [ 14] = 1030 */ {NULL, NULL}, /* [ 14] = 1030 */ {NULL, NULL},
/* [ 15] = 1031 */ {NULL, NULL}, /* [ 15] = 1031 */ {NULL, NULL},
/* [ 16] = 1288 */ {NULL, NULL}, /* [ 16] = 1296 */ {__glXDisp_GetProgramEnvParameterfvARB, __glXDispSwap_GetProgramEnvParameterfvARB},
/* [ 17] = 1289 */ {NULL, NULL}, /* [ 17] = 1297 */ {__glXDisp_GetProgramEnvParameterdvARB, __glXDispSwap_GetProgramEnvParameterdvARB},
/* [ 18] = 1290 */ {NULL, NULL}, /* [ 18] = 1298 */ {__glXDisp_GetProgramivNV, __glXDispSwap_GetProgramivNV},
/* [ 19] = 1291 */ {NULL, NULL}, /* [ 19] = 1299 */ {__glXDisp_GetProgramStringNV, __glXDispSwap_GetProgramStringNV},
/* [ 20] = 1292 */ {NULL, NULL}, /* [ 20] = 1300 */ {__glXDisp_GetTrackMatrixivNV, __glXDispSwap_GetTrackMatrixivNV},
/* [ 21] = 1293 */ {__glXDisp_AreProgramsResidentNV, __glXDispSwap_AreProgramsResidentNV}, /* [ 21] = 1301 */ {__glXDisp_GetVertexAttribdvARB, __glXDispSwap_GetVertexAttribdvARB},
/* [ 22] = 1294 */ {__glXDisp_DeleteProgramsNV, __glXDispSwap_DeleteProgramsNV}, /* [ 22] = 1302 */ {__glXDisp_GetVertexAttribfvNV, __glXDispSwap_GetVertexAttribfvNV},
/* [ 23] = 1295 */ {__glXDisp_GenProgramsNV, __glXDispSwap_GenProgramsNV}, /* [ 23] = 1303 */ {__glXDisp_GetVertexAttribivNV, __glXDispSwap_GetVertexAttribivNV},
/* [ 24] = 1296 */ {__glXDisp_GetProgramEnvParameterfvARB, __glXDispSwap_GetProgramEnvParameterfvARB}, /* [ 24] = 1304 */ {__glXDisp_IsProgramNV, __glXDispSwap_IsProgramNV},
/* [ 25] = 1297 */ {__glXDisp_GetProgramEnvParameterdvARB, __glXDispSwap_GetProgramEnvParameterdvARB}, /* [ 25] = 1305 */ {__glXDisp_GetProgramLocalParameterfvARB, __glXDispSwap_GetProgramLocalParameterfvARB},
/* [ 26] = 1298 */ {__glXDisp_GetProgramivNV, __glXDispSwap_GetProgramivNV}, /* [ 26] = 1306 */ {__glXDisp_GetProgramLocalParameterdvARB, __glXDispSwap_GetProgramLocalParameterdvARB},
/* [ 27] = 1299 */ {__glXDisp_GetProgramStringNV, __glXDispSwap_GetProgramStringNV}, /* [ 27] = 1307 */ {__glXDisp_GetProgramivARB, __glXDispSwap_GetProgramivARB},
/* [ 28] = 1300 */ {__glXDisp_GetTrackMatrixivNV, __glXDispSwap_GetTrackMatrixivNV}, /* [ 28] = 1308 */ {__glXDisp_GetProgramStringARB, __glXDispSwap_GetProgramStringARB},
/* [ 29] = 1301 */ {__glXDisp_GetVertexAttribdvARB, __glXDispSwap_GetVertexAttribdvARB}, /* [ 29] = 1309 */ {NULL, NULL},
/* [ 30] = 1302 */ {__glXDisp_GetVertexAttribfvNV, __glXDispSwap_GetVertexAttribfvNV}, /* [ 30] = 1310 */ {__glXDisp_GetProgramNamedParameterfvNV, __glXDispSwap_GetProgramNamedParameterfvNV},
/* [ 31] = 1303 */ {__glXDisp_GetVertexAttribivNV, __glXDispSwap_GetVertexAttribivNV}, /* [ 31] = 1311 */ {__glXDisp_GetProgramNamedParameterdvNV, __glXDispSwap_GetProgramNamedParameterdvNV},
/* [ 32] = 1304 */ {__glXDisp_IsProgramNV, __glXDispSwap_IsProgramNV}, /* [ 32] = 1288 */ {NULL, NULL},
/* [ 33] = 1305 */ {__glXDisp_GetProgramLocalParameterfvARB, __glXDispSwap_GetProgramLocalParameterfvARB}, /* [ 33] = 1289 */ {NULL, NULL},
/* [ 34] = 1306 */ {__glXDisp_GetProgramLocalParameterdvARB, __glXDispSwap_GetProgramLocalParameterdvARB}, /* [ 34] = 1290 */ {NULL, NULL},
/* [ 35] = 1307 */ {__glXDisp_GetProgramivARB, __glXDispSwap_GetProgramivARB}, /* [ 35] = 1291 */ {NULL, NULL},
/* [ 36] = 1308 */ {__glXDisp_GetProgramStringARB, __glXDispSwap_GetProgramStringARB}, /* [ 36] = 1292 */ {NULL, NULL},
/* [ 37] = 1309 */ {NULL, NULL}, /* [ 37] = 1293 */ {__glXDisp_AreProgramsResidentNV, __glXDispSwap_AreProgramsResidentNV},
/* [ 38] = 1310 */ {__glXDisp_GetProgramNamedParameterfvNV, __glXDispSwap_GetProgramNamedParameterfvNV}, /* [ 38] = 1294 */ {__glXDisp_DeleteProgramsNV, __glXDispSwap_DeleteProgramsNV},
/* [ 39] = 1311 */ {__glXDisp_GetProgramNamedParameterdvNV, __glXDispSwap_GetProgramNamedParameterdvNV}, /* [ 39] = 1295 */ {__glXDisp_GenProgramsNV, __glXDispSwap_GenProgramsNV},
/* [ 40] = 1416 */ {NULL, NULL}, /* [ 40] = 1328 */ {NULL, NULL},
/* [ 41] = 1417 */ {NULL, NULL}, /* [ 41] = 1329 */ {NULL, NULL},
/* [ 42] = 1418 */ {NULL, NULL}, /* [ 42] = 1330 */ {__glXDisp_BindTexImageEXT, __glXDispSwap_BindTexImageEXT},
/* [ 43] = 1419 */ {NULL, NULL}, /* [ 43] = 1331 */ {__glXDisp_ReleaseTexImageEXT, __glXDispSwap_ReleaseTexImageEXT},
/* [ 44] = 1420 */ {NULL, NULL}, /* [ 44] = 1332 */ {NULL, NULL},
/* [ 45] = 1421 */ {NULL, NULL}, /* [ 45] = 1333 */ {NULL, NULL},
/* [ 46] = 1422 */ {__glXDisp_IsRenderbufferEXT, __glXDispSwap_IsRenderbufferEXT}, /* [ 46] = 1334 */ {NULL, NULL},
/* [ 47] = 1423 */ {__glXDisp_GenRenderbuffersEXT, __glXDispSwap_GenRenderbuffersEXT}, /* [ 47] = 1335 */ {NULL, NULL},
/* [ 48] = 1424 */ {__glXDisp_GetRenderbufferParameterivEXT, __glXDispSwap_GetRenderbufferParameterivEXT}, /* [ 48] = 1416 */ {NULL, NULL},
/* [ 49] = 1425 */ {__glXDisp_IsFramebufferEXT, __glXDispSwap_IsFramebufferEXT}, /* [ 49] = 1417 */ {NULL, NULL},
/* [ 50] = 1426 */ {__glXDisp_GenFramebuffersEXT, __glXDispSwap_GenFramebuffersEXT}, /* [ 50] = 1418 */ {NULL, NULL},
/* [ 51] = 1427 */ {__glXDisp_CheckFramebufferStatusEXT, __glXDispSwap_CheckFramebufferStatusEXT}, /* [ 51] = 1419 */ {NULL, NULL},
/* [ 52] = 1428 */ {__glXDisp_GetFramebufferAttachmentParameterivEXT, __glXDispSwap_GetFramebufferAttachmentParameterivEXT}, /* [ 52] = 1420 */ {NULL, NULL},
/* [ 53] = 1429 */ {NULL, NULL}, /* [ 53] = 1421 */ {NULL, NULL},
/* [ 54] = 1430 */ {NULL, NULL}, /* [ 54] = 1422 */ {__glXDisp_IsRenderbufferEXT, __glXDispSwap_IsRenderbufferEXT},
/* [ 55] = 1431 */ {NULL, NULL}, /* [ 55] = 1423 */ {__glXDisp_GenRenderbuffersEXT, __glXDispSwap_GenRenderbuffersEXT},
/* [ 56] = 4096 */ {NULL, NULL}, /* [ 56] = 1424 */ {__glXDisp_GetRenderbufferParameterivEXT, __glXDispSwap_GetRenderbufferParameterivEXT},
/* [ 57] = 4097 */ {NULL, NULL}, /* [ 57] = 1425 */ {__glXDisp_IsFramebufferEXT, __glXDispSwap_IsFramebufferEXT},
/* [ 58] = 4098 */ {__glXDisp_GetColorTableSGI, __glXDispSwap_GetColorTableSGI}, /* [ 58] = 1426 */ {__glXDisp_GenFramebuffersEXT, __glXDispSwap_GenFramebuffersEXT},
/* [ 59] = 4099 */ {__glXDisp_GetColorTableParameterfvSGI, __glXDispSwap_GetColorTableParameterfvSGI}, /* [ 59] = 1427 */ {__glXDisp_CheckFramebufferStatusEXT, __glXDispSwap_CheckFramebufferStatusEXT},
/* [ 60] = 4100 */ {__glXDisp_GetColorTableParameterivSGI, __glXDispSwap_GetColorTableParameterivSGI}, /* [ 60] = 1428 */ {__glXDisp_GetFramebufferAttachmentParameterivEXT, __glXDispSwap_GetFramebufferAttachmentParameterivEXT},
/* [ 61] = 4101 */ {NULL, NULL}, /* [ 61] = 1429 */ {NULL, NULL},
/* [ 62] = 4102 */ {NULL, NULL}, /* [ 62] = 1430 */ {NULL, NULL},
/* [ 63] = 4103 */ {NULL, NULL}, /* [ 63] = 1431 */ {NULL, NULL},
/* [ 64] = 5152 */ {__glXDisp_BindTexImageEXT, __glXDispSwap_BindTexImageEXT}, /* [ 64] = 4096 */ {NULL, NULL},
/* [ 65] = 5153 */ {__glXDisp_ReleaseTexImageEXT, __glXDispSwap_ReleaseTexImageEXT}, /* [ 65] = 4097 */ {NULL, NULL},
/* [ 66] = 5154 */ {__glXDisp_CopySubBufferMESA, __glXDispSwap_CopySubBufferMESA}, /* [ 66] = 4098 */ {__glXDisp_GetColorTableSGI, __glXDispSwap_GetColorTableSGI},
/* [ 67] = 5155 */ {NULL, NULL}, /* [ 67] = 4099 */ {__glXDisp_GetColorTableParameterfvSGI, __glXDispSwap_GetColorTableParameterfvSGI},
/* [ 68] = 5156 */ {NULL, NULL}, /* [ 68] = 4100 */ {__glXDisp_GetColorTableParameterivSGI, __glXDispSwap_GetColorTableParameterivSGI},
/* [ 69] = 5157 */ {NULL, NULL}, /* [ 69] = 4101 */ {NULL, NULL},
/* [ 70] = 5158 */ {NULL, NULL}, /* [ 70] = 4102 */ {NULL, NULL},
/* [ 71] = 5159 */ {NULL, NULL}, /* [ 71] = 4103 */ {NULL, NULL},
/* [ 72] = 65536 */ {__glXDisp_SwapIntervalSGI, __glXDispSwap_SwapIntervalSGI}, /* [ 72] = 5152 */ {NULL, NULL},
/* [ 73] = 65537 */ {__glXDisp_MakeCurrentReadSGI, __glXDispSwap_MakeCurrentReadSGI}, /* [ 73] = 5153 */ {NULL, NULL},
/* [ 74] = 65538 */ {NULL, NULL}, /* [ 74] = 5154 */ {__glXDisp_CopySubBufferMESA, __glXDispSwap_CopySubBufferMESA},
/* [ 75] = 65539 */ {NULL, NULL}, /* [ 75] = 5155 */ {NULL, NULL},
/* [ 76] = 65540 */ {__glXDisp_GetFBConfigsSGIX, __glXDispSwap_GetFBConfigsSGIX}, /* [ 76] = 5156 */ {NULL, NULL},
/* [ 77] = 65541 */ {__glXDisp_CreateContextWithConfigSGIX, __glXDispSwap_CreateContextWithConfigSGIX}, /* [ 77] = 5157 */ {NULL, NULL},
/* [ 78] = 65542 */ {__glXDisp_CreateGLXPixmapWithConfigSGIX, __glXDispSwap_CreateGLXPixmapWithConfigSGIX}, /* [ 78] = 5158 */ {NULL, NULL},
/* [ 79] = 65543 */ {NULL, NULL}, /* [ 79] = 5159 */ {NULL, NULL},
/* [ 80] = 65536 */ {__glXDisp_SwapIntervalSGI, __glXDispSwap_SwapIntervalSGI},
/* [ 81] = 65537 */ {__glXDisp_MakeCurrentReadSGI, __glXDispSwap_MakeCurrentReadSGI},
/* [ 82] = 65538 */ {NULL, NULL},
/* [ 83] = 65539 */ {NULL, NULL},
/* [ 84] = 65540 */ {__glXDisp_GetFBConfigsSGIX, __glXDispSwap_GetFBConfigsSGIX},
/* [ 85] = 65541 */ {__glXDisp_CreateContextWithConfigSGIX, __glXDispSwap_CreateContextWithConfigSGIX},
/* [ 86] = 65542 */ {__glXDisp_CreateGLXPixmapWithConfigSGIX, __glXDispSwap_CreateGLXPixmapWithConfigSGIX},
/* [ 87] = 65543 */ {NULL, NULL},
}; };
const struct __glXDispatchInfo VendorPriv_dispatch_info = { const struct __glXDispatchInfo VendorPriv_dispatch_info = {

View File

@ -45,8 +45,8 @@
#include "inputstr.h" #include "inputstr.h"
#include "servermd.h" #include "servermd.h"
#define _FONTCACHE_SERVER_ #define _FONTCACHE_SERVER_
#include "fontcacheP.h" #include <X11/extensions/fontcacheP.h>
#include "fontcachstr.h" #include <X11/extensions/fontcachstr.h>
#include <X11/Xfuncproto.h> #include <X11/Xfuncproto.h>
#include "swaprep.h" #include "swaprep.h"

View File

@ -68,7 +68,7 @@ fbPutImage (DrawablePtr pDrawable,
break; break;
case XYPixmap: case XYPixmap:
srcStride = BitmapBytePad(w + leftPad) / sizeof (FbStip); srcStride = BitmapBytePad(w + leftPad) / sizeof (FbStip);
for (i = 1 << (pDrawable->depth - 1); i; i >>= 1) for (i = (unsigned long)1 << (pDrawable->depth - 1); i; i >>= 1)
{ {
if (i & pGC->planemask) if (i & pGC->planemask)
{ {

View File

@ -83,6 +83,7 @@ Xdmx_LDADD = $(XORG_CORE_LIBS) \
Xdmx_CFLAGS = \ Xdmx_CFLAGS = \
-DHAVE_DMX_CONFIG_H \ -DHAVE_DMX_CONFIG_H \
$(DIX_CFLAGS) \
$(GLX_INCS) \ $(GLX_INCS) \
$(GLX_DEFS) \ $(GLX_DEFS) \
@DMXMODULES_CFLAGS@ @DMXMODULES_CFLAGS@

View File

@ -51,6 +51,10 @@
#ifndef DMX_H #ifndef DMX_H
#define DMX_H #define DMX_H
#if HAVE_DMX_CONFIG_H
#include <dmx-config.h>
#endif
#include "gcstruct.h" #include "gcstruct.h"
/* Handle client-side include files in one place. */ /* Handle client-side include files in one place. */

View File

@ -36,6 +36,12 @@
#ifndef _XF86_H #ifndef _XF86_H
#define _XF86_H #define _XF86_H
#if HAVE_XORG_CONFIG_H
#include <xorg-config.h>
#elif HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
#include "xf86str.h" #include "xf86str.h"
#include "xf86Opt.h" #include "xf86Opt.h"
#include <X11/Xfuncproto.h> #include <X11/Xfuncproto.h>

View File

@ -83,7 +83,13 @@ static pciBusFuncs_t linuxFuncs0 = {
/* pciAddrBusToHost */ linuxPpcBusAddrToHostAddr, /* pciAddrBusToHost */ linuxPpcBusAddrToHostAddr,
#else #else
/* pciAddrHostToBus */ pciAddrNOOP, /* pciAddrHostToBus */ pciAddrNOOP,
/* linuxTransAddrBusToHost is busted on sparc64 but the PCI rework tree
* makes it all moot, so we kludge it for now */
#if defined(__sparc64__)
/* pciAddrBusToHost */ pciAddrNOOP,
#else
/* pciAddrBusToHost */ linuxTransAddrBusToHost, /* pciAddrBusToHost */ linuxTransAddrBusToHost,
#endif /* __sparc64__ */
#endif #endif
/* pciControlBridge */ NULL, /* pciControlBridge */ NULL,

View File

@ -1,5 +1,8 @@
if INSTALL_LIBXF86CONFIG if INSTALL_LIBXF86CONFIG
lib_LIBRARIES = libxf86config.a lib_LIBRARIES = libxf86config.a
LIBHEADERS = \
xf86Optrec.h \
xf86Parser.h
else else
noinst_LIBRARIES = libxf86config.a noinst_LIBRARIES = libxf86config.a
endif endif
@ -32,3 +35,6 @@ EXTRA_DIST = \
xf86Parser.h \ xf86Parser.h \
xf86tokens.h \ xf86tokens.h \
cpconfig.c cpconfig.c
sdk_HEADERS = \
$(LIBHEADERS)

View File

@ -675,7 +675,7 @@ xf86printMonitorSection (FILE * cf, XF86ConfMonitorPtr ptr)
ptr->mon_width, ptr->mon_width,
ptr->mon_height); ptr->mon_height);
if ( ptr->mon_n_hsync || ptr->mon_n_vrefresh ) if ( ptr->mon_n_hsync || ptr->mon_n_vrefresh )
fprintf(cf," ### Comment all HorizSync and VertSync values to use DDC:\n"); fprintf(cf," ### Comment all HorizSync and VertRefresh values to use DDC:\n");
for (i = 0; i < ptr->mon_n_hsync; i++) for (i = 0; i < ptr->mon_n_hsync; i++)
{ {
fprintf (cf, "\tHorizSync %2.1f - %2.1f\n", fprintf (cf, "\tHorizSync %2.1f - %2.1f\n",

View File

@ -51,7 +51,7 @@ Xnest_LDFLAGS =
AM_CFLAGS = -DHAVE_XNEST_CONFIG_H \ AM_CFLAGS = -DHAVE_XNEST_CONFIG_H \
-DNO_HW_ONLY_EXTS \ -DNO_HW_ONLY_EXTS \
\ $(DIX_CFLAGS) \
$(XNESTMODULES_CFLAGS) $(XNESTMODULES_CFLAGS)
EXTRA_DIST = os2Stub.c \ EXTRA_DIST = os2Stub.c \

View File

@ -1,3 +1,4 @@
xpcdir = @xpconfigdir@/C/print/models/PS2PDFspooldir-GS xpcdir = @xpconfigdir@/C/print/models/PS2PDFspooldir-GS
dist_xpc_DATA = model-config ps2pdf_spooltodir.sh dist_xpc_DATA = model-config
dist_xpc_SCRIPTS = ps2pdf_spooltodir.sh

View File

@ -1,3 +1,4 @@
xpcdir = @xpconfigdir@/C/print/models/PSspooldir xpcdir = @xpconfigdir@/C/print/models/PSspooldir
dist_xpc_DATA = model-config spooltodir.sh dist_xpc_DATA = model-config
dist_xpc_SCRIPTS = spooltodir.sh

View File

@ -709,4 +709,4 @@ install-data-local: remove-links
uninstall-hook: remove-links uninstall-hook: remove-links
EXTRA_DIST = README dist_xpconfig_DATA = README

View File

@ -4,7 +4,7 @@
applications to use devices like printers, FAX or create applications to use devices like printers, FAX or create
documents in formats like PostScript, PCL or PDF. It may be used by documents in formats like PostScript, PCL or PDF. It may be used by
clients such as <span class="application">mozilla</span>. clients such as <span class="application">mozilla</span>.
</p><p>Xprint is a very flexible, extensible, scaleable, client/server </p><p>Xprint is a very flexible, extensible, scalable, client/server
print system based on ISO 10175 (and some other specs) and the X11 print system based on ISO 10175 (and some other specs) and the X11
rendering protocol. rendering protocol.
Using Xprint an application can search, query and use devices like Using Xprint an application can search, query and use devices like
@ -44,11 +44,11 @@
font databases.</p></dd><dt><span class="term"><tt class="option">-pn</tt></span></dt><dd><p>permits the server to continue running if it fails to font databases.</p></dd><dt><span class="term"><tt class="option">-pn</tt></span></dt><dd><p>permits the server to continue running if it fails to
establish all of its well-known sockets (connection establish all of its well-known sockets (connection
points for clients), but establishes at least points for clients), but establishes at least
one.</p></dd><dt><span class="term"><tt class="option">-XpFile <i class="replaceable"><tt>file</tt></i></tt></span></dt><dd><p>Sets an altername Xprinters file (see section FILES).</p></dd><dt><span class="term"><tt class="option">-XpSpoolerType <i class="replaceable"><tt>spoolername</tt></i></tt></span></dt><dd xmlns:ns2=""><p> one.</p></dd><dt><span class="term"><tt class="option">-XpFile <i class="replaceable"><tt>file</tt></i></tt></span></dt><dd><p>Sets an alternate Xprinters file (see section FILES).</p></dd><dt><span class="term"><tt class="option">-XpSpoolerType <i class="replaceable"><tt>spoolername</tt></i></tt></span></dt><dd xmlns:ns2=""><p>
Defines the spooler system to be used for print job spooling. Defines the spooler system to be used for print job spooling.
Supported values in xprint.mozdev.org release 009 are: Supported values in xprint.mozdev.org release 009 are:
</p><table class="simplelist" border="0" summary="Simple list"><tr><td>aix</td></tr><tr><td>aix4</td></tr><tr><td>bsd</td></tr><tr><td>osf</td></tr><tr><td>solaris</td></tr><tr><td>sysv</td></tr><tr><td>uxp</td></tr><tr><td>cups</td></tr><tr><td>lprng</td></tr><tr><td>other</td></tr><tr><td>none</td></tr></table><p> </p><table class="simplelist" border="0" summary="Simple list"><tr><td>aix</td></tr><tr><td>aix4</td></tr><tr><td>bsd</td></tr><tr><td>osf</td></tr><tr><td>solaris</td></tr><tr><td>sysv</td></tr><tr><td>uxp</td></tr><tr><td>cups</td></tr><tr><td>lprng</td></tr><tr><td>other</td></tr><tr><td>none</td></tr></table><p>
(multiple values can be specified, seperated by ':', the first active spooler will be chosen). (multiple values can be specified, separated by ':', the first active spooler will be chosen).
The default value is platform-specific and can be obtained via The default value is platform-specific and can be obtained via
</p><pre class="programlisting">Xprt -h</pre><p>. </p><pre class="programlisting">Xprt -h</pre><p>.
</p></dd></dl></div></div><div xmlns:ns3="" class="refsect1" lang="en"><a name="id2805336"></a><h2>ENVIRONMENT</h2><p> </p></dd></dl></div></div><div xmlns:ns3="" class="refsect1" lang="en"><a name="id2805336"></a><h2>ENVIRONMENT</h2><p>

View File

@ -20,7 +20,7 @@ applications to use devices like printers, FAX or create
documents in formats like PostScript, PCL or PDF. It may be used by documents in formats like PostScript, PCL or PDF. It may be used by
clients such as mozilla. clients such as mozilla.
.PP .PP
Xprint is a very flexible, extensible, scaleable, client/server Xprint is a very flexible, extensible, scalable, client/server
print system based on ISO 10175 (and some other specs) and the X11 print system based on ISO 10175 (and some other specs) and the X11
rendering protocol. rendering protocol.
Using Xprint an application can search, query and use devices like Using Xprint an application can search, query and use devices like
@ -85,7 +85,7 @@ points for clients), but establishes at least
one. one.
.TP .TP
\fB\-XpFile \fIfile\fB\fR \fB\-XpFile \fIfile\fB\fR
Sets an altername Xprinters file (see section FILES). Sets an alternate Xprinters file (see section FILES).
.TP .TP
\fB\-XpSpoolerType \fIspoolername\fB\fR \fB\-XpSpoolerType \fIspoolername\fB\fR
Defines the spooler system to be used for print job spooling. Defines the spooler system to be used for print job spooling.
@ -113,7 +113,7 @@ other
none none
(multiple values can be specified, seperated by ':', the first active spooler will be chosen). (multiple values can be specified, separated by ':', the first active spooler will be chosen).
The default value is platform-specific and can be obtained via The default value is platform-specific and can be obtained via
.nf .nf

View File

@ -55,7 +55,7 @@ HTML generation can be done like this:
clients such as <application>mozilla</application>. clients such as <application>mozilla</application>.
</para> </para>
<para>Xprint is a very flexible, extensible, scaleable, client/server <para>Xprint is a very flexible, extensible, scalable, client/server
print system based on ISO 10175 (and some other specs) and the X11 print system based on ISO 10175 (and some other specs) and the X11
rendering protocol. rendering protocol.
Using Xprint an application can search, query and use devices like Using Xprint an application can search, query and use devices like
@ -155,7 +155,7 @@ HTML generation can be done like this:
<term><option>-XpFile <replaceable>file</replaceable></option> <term><option>-XpFile <replaceable>file</replaceable></option>
</term> </term>
<listitem> <listitem>
<para>Sets an altername Xprinters file (see section FILES).</para> <para>Sets an alternate Xprinters file (see section FILES).</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
@ -178,7 +178,7 @@ HTML generation can be done like this:
<member>other</member> <member>other</member>
<member>none</member> <member>none</member>
</simplelist> </simplelist>
(multiple values can be specified, seperated by ':', the first active spooler will be chosen). (multiple values can be specified, separated by ':', the first active spooler will be chosen).
The default value is platform-specific and can be obtained via The default value is platform-specific and can be obtained via
<programlisting>Xprt -h</programlisting>. <programlisting>Xprt -h</programlisting>.
</para> </para>

View File

@ -22,8 +22,8 @@
# Obtain list of Xprint servers # Obtain list of Xprint servers
# #
if [ -f "/etc/init.d/xprint" ] ; then if [ -x "/etc/init.d/xprint" ] ; then
XPSERVERLIST="`/bin/sh /etc/init.d/xprint get_xpserverlist`" XPSERVERLIST="`/etc/init.d/xprint get_xpserverlist`"
export XPSERVERLIST export XPSERVERLIST
fi fi

View File

@ -32,6 +32,10 @@ in this Software without prior written authorization from The Open Group.
* *
*/ */
#if HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
# define NEED_EVENTS # define NEED_EVENTS
# include <X11/X.h> # include <X11/X.h>
# include <X11/Xmd.h> # include <X11/Xmd.h>

View File

@ -1459,18 +1459,25 @@ SetPictureClipRegion (PicturePtr pPicture,
return result; return result;
} }
static Bool
transformIsIdentity(PictTransform *t)
{
return ((t->matrix[0][0] == t->matrix[1][1]) &&
(t->matrix[0][0] == t->matrix[2][2]) &&
(t->matrix[0][0] != 0) &&
(t->matrix[0][1] == 0) &&
(t->matrix[0][2] == 0) &&
(t->matrix[1][0] == 0) &&
(t->matrix[1][2] == 0) &&
(t->matrix[2][0] == 0) &&
(t->matrix[2][1] == 0));
}
int int
SetPictureTransform (PicturePtr pPicture, SetPictureTransform (PicturePtr pPicture,
PictTransform *transform) PictTransform *transform)
{ {
static const PictTransform identity = { { if (transform && transformIsIdentity (transform))
{ xFixed1, 0x00000, 0x00000 },
{ 0x00000, xFixed1, 0x00000 },
{ 0x00000, 0x00000, xFixed1 },
} };
if (transform && memcmp (transform, &identity, sizeof (PictTransform)) == 0)
transform = 0; transform = 0;
if (transform) if (transform)