Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into input-hotplug

This commit is contained in:
Daniel Stone 2006-09-24 17:56:43 +03:00 committed by Daniel Stone
commit ad321fad4b
24 changed files with 486 additions and 237 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);
if (!inDispatch)
__glXenterServer(); __glXenterServer();
} else {
cx->next = glxPendingDestroyContexts;
glxPendingDestroyContexts = cx;
}
return GL_TRUE; return GL_TRUE;
} }
@ -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)
{ {
glxServerLeaveCount--;
if (glxServerLeaveCount == 0)
(*__glXenterServerFunc)(); (*__glXenterServerFunc)();
} }
void __glXleaveServer(void) void __glXleaveServer(void)
{ {
if (glxServerLeaveCount == 0)
(*__glXleaveServerFunc)(); (*__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

@ -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[];
/************************************************************************/ /************************************************************************/
/* /*

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

@ -432,6 +432,7 @@ AC_ARG_ENABLE(dbe, AS_HELP_STRING([--disable-dbe], [Build DBE extensi
AC_ARG_ENABLE(xf86bigfont, AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: enabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=yes]) AC_ARG_ENABLE(xf86bigfont, AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: enabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=yes])
AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes]) AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
AC_ARG_ENABLE(dbus, AS_HELP_STRING([--disable-dbus], [Build D-BUS support (default: auto)]), [DBUS=$enableval], [DBUS=auto]) AC_ARG_ENABLE(dbus, AS_HELP_STRING([--disable-dbus], [Build D-BUS support (default: auto)]), [DBUS=$enableval], [DBUS=auto])
AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
dnl DDXes. dnl DDXes.
AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto]) AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
@ -746,6 +747,8 @@ AC_DEFINE(XINPUT, 1, [Support X Input extension])
XI_LIB='$(top_builddir)/Xi/libXi.la' XI_LIB='$(top_builddir)/Xi/libXi.la'
XI_INC='-I$(top_srcdir)/Xi' XI_INC='-I$(top_srcdir)/Xi'
AM_CONDITIONAL(XF86UTILS, test "x$XF86UTILS" = xyes)
AC_DEFINE(SHAPE, 1, [Support SHAPE extension]) AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
AC_DEFINE(XKB, 1, [Build XKB]) AC_DEFINE(XKB, 1, [Build XKB])

View File

@ -16,6 +16,9 @@ GLX_INCS = -I$(top_srcdir)/hw/xfree86/dixmods/extmod \
GLX_DEFS = @GL_CFLAGS@ GLX_DEFS = @GL_CFLAGS@
endif endif
# It's essential that fbcmap.c be compiled with this flag for DMX to work!!
DMX_CFLAGS = -DXFree86Server=1
if BUILDDOCS if BUILDDOCS
SUBDIRS += doc SUBDIRS += doc
endif endif
@ -86,6 +89,7 @@ Xdmx_CFLAGS = \
$(DIX_CFLAGS) \ $(DIX_CFLAGS) \
$(GLX_INCS) \ $(GLX_INCS) \
$(GLX_DEFS) \ $(GLX_DEFS) \
$(DMX_CFLAGS) \
@DMXMODULES_CFLAGS@ @DMXMODULES_CFLAGS@
# Man page # Man page

View File

@ -40,6 +40,7 @@
#endif #endif
#include "dmx.h" #include "dmx.h"
#include "dmxlog.h"
#include "dmxsync.h" #include "dmxsync.h"
#include "dmxcmap.h" #include "dmxcmap.h"
#include "dmxvisual.h" #include "dmxvisual.h"
@ -83,6 +84,7 @@ Bool dmxBECreateColormap(ColormapPtr pColormap)
VisualPtr pVisual = pColormap->pVisual; VisualPtr pVisual = pColormap->pVisual;
Visual *visual = dmxLookupVisual(pScreen, pVisual); Visual *visual = dmxLookupVisual(pScreen, pVisual);
if (visual) {
pCmapPriv->cmap = XCreateColormap(dmxScreen->beDisplay, pCmapPriv->cmap = XCreateColormap(dmxScreen->beDisplay,
dmxScreen->scrnWin, dmxScreen->scrnWin,
visual, visual,
@ -90,6 +92,11 @@ Bool dmxBECreateColormap(ColormapPtr pColormap)
AllocAll : AllocNone)); AllocAll : AllocNone));
return (pCmapPriv->cmap != 0); return (pCmapPriv->cmap != 0);
} }
else {
dmxLog(dmxWarning, "dmxBECreateColormap: No visual found\n");
return 0;
}
}
/** Create colormap on back-end server associated with \a pColormap's /** Create colormap on back-end server associated with \a pColormap's
* screen. */ * screen. */

View File

@ -664,8 +664,8 @@ static Bool _dmxUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCursor)
{ {
DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum];
DMXDBG3("_dmxUnrealizeCursor(%d,%p) %p\n", DMXDBG2("_dmxUnrealizeCursor(%d,%p)\n",
pScreen->myNum, pCursor, pCursorPriv); pScreen->myNum, pCursor);
if (dmxScreen->beDisplay) { if (dmxScreen->beDisplay) {
if (dmxBEFreeCursor(pScreen, pCursor)) if (dmxBEFreeCursor(pScreen, pCursor))

View File

@ -2,12 +2,16 @@ if DRI
DRI_SUBDIR = dri DRI_SUBDIR = dri
endif endif
if XF86UTILS
XF86UTILS_SUBDIR = utils
endif
DOC_SUBDIR = doc DOC_SUBDIR = doc
SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support parser rac \ SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support parser rac \
ramdac shadowfb vbe vgahw xaa xf1bpp xf4bpp xf8_16bpp \ ramdac shadowfb vbe vgahw xaa xf1bpp xf4bpp xf8_16bpp \
xf8_32bpp loader scanpci dixmods exa \ xf8_32bpp loader scanpci dixmods exa \
$(DRI_SUBDIR) utils $(DOC_SUBDIR) $(DRI_SUBDIR) $(XF86UTILS_SUBDIR) $(DOC_SUBDIR)
DIST_SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support \ DIST_SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support \
parser rac ramdac shadowfb vbe vgahw xaa xf1bpp xf4bpp \ parser rac ramdac shadowfb vbe vgahw xaa xf1bpp xf4bpp \

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(__sparc__)
/* 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
@ -31,3 +34,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

@ -157,9 +157,128 @@ xf86strToUL (char *str)
return (tot); return (tot);
} }
/*
* xf86getNextLine --
*
* read from the configFile FILE stream until we encounter a new
* line; this is effectively just a big wrapper for fgets(3).
*
* xf86getToken() assumes that we will read up to the next
* newline; we need to grow configBuf and configRBuf as needed to
* support that.
*/
static char*
xf86getNextLine(void)
{
static int configBufLen = CONFIG_BUF_LEN;
char *tmpConfigBuf, *tmpConfigRBuf;
int c, i, pos = 0, eolFound = 0;
char *ret = NULL;
/*
* reallocate the string if it was grown last time (i.e., is no
* longer CONFIG_BUF_LEN); we malloc the new strings first, so
* that if either of the mallocs fail, we can fall back on the
* existing buffer allocations
*/
if (configBufLen != CONFIG_BUF_LEN) {
tmpConfigBuf = xf86confmalloc(CONFIG_BUF_LEN);
tmpConfigRBuf = xf86confmalloc(CONFIG_BUF_LEN);
if (!tmpConfigBuf || !tmpConfigRBuf) {
/*
* at least one of the mallocs failed; keep the old buffers
* and free any partial allocations
*/
xf86conffree(tmpConfigBuf);
xf86conffree(tmpConfigRBuf);
} else {
/*
* malloc succeeded; free the old buffers and use the new
* buffers
*/
configBufLen = CONFIG_BUF_LEN;
xf86conffree(configBuf);
xf86conffree(configRBuf);
configBuf = tmpConfigBuf;
configRBuf = tmpConfigRBuf;
}
}
/* read in another block of chars */
do {
ret = fgets(configBuf + pos, configBufLen - pos - 1, configFile);
if (!ret) break;
/* search for EOL in the new block of chars */
for (i = pos; i < (configBufLen - 1); i++) {
c = configBuf[i];
if (c == '\0') break;
if ((c == '\n') || (c == '\r')) {
eolFound = 1;
break;
}
}
/*
* if we didn't find EOL, then grow the string and
* read in more
*/
if (!eolFound) {
tmpConfigBuf = xf86confrealloc(configBuf, configBufLen + CONFIG_BUF_LEN);
tmpConfigRBuf = xf86confrealloc(configRBuf, configBufLen + CONFIG_BUF_LEN);
if (!tmpConfigBuf || !tmpConfigRBuf) {
/*
* at least one of the reallocations failed; use the
* new allocation that succeeded, but we have to
* fallback to the previous configBufLen size and use
* the string we have, even though we don't have an
* EOL
*/
if (tmpConfigBuf) configBuf = tmpConfigBuf;
if (tmpConfigRBuf) configRBuf = tmpConfigRBuf;
break;
} else {
/* reallocation succeeded */
configBuf = tmpConfigBuf;
configRBuf = tmpConfigRBuf;
pos = i;
configBufLen += CONFIG_BUF_LEN;
}
}
} while (!eolFound);
return (ret);
}
/* /*
* xf86getToken -- * xf86getToken --
* Read next Token form the config file. Handle the global variable * Read next Token from the config file. Handle the global variable
* pushToken. * pushToken.
*/ */
int int
@ -193,7 +312,7 @@ again:
{ {
char *ret; char *ret;
if (configFile) if (configFile)
ret = fgets (configBuf, CONFIG_BUF_LEN - 1, configFile); ret = xf86getNextLine();
else { else {
if (builtinConfig[builtinIndex] == NULL) if (builtinConfig[builtinIndex] == NULL)
ret = NULL; ret = NULL;

View File

@ -1,4 +1,4 @@
module_LIBRARIES = librac.a noinst_LIBRARIES = librac.a
librac_a_SOURCES = xf86RAC.c librac_a_SOURCES = xf86RAC.c
sdk_HEADERS = xf86RAC.h sdk_HEADERS = xf86RAC.h

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

@ -1,19 +1,19 @@
#!/bin/sh #!/bin/sh
##################################################################### #####################################################################
### File: 0018.xprint ### File: 92xprint-xpserverlist
### ###
### Default Location: /usr/dt/config/Xsession.d/ ### Default Location: /etc/X11/Xsession.d/
### ###
### Purpose: Setup Xprint env vars ### Purpose: Setup Xprint env vars
### ###
### Description: This script is invoked by means of the Xsession file ### Description: This script is invoked by means of the Xsession file
### at user login. ### at user login.
### ###
### Invoked by: /usr/dt/bin/Xsession ### Invoked by: /etc/X11/Xsession
### ###
### (c) Copyright 2003-2004 Roland Mainz <roland.mainz@nrubsig.org> ### (c) Copyright 2003-2004 Roland Mainz <roland.mainz@nrubsig.org>
### ###
### please send bugfixes or comments to http://xprint.mozdev.org/ ### please send bugfixes or comments to https://bugs.freedesktop.org
### ###
##################################################################### #####################################################################
@ -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

@ -1 +1,2 @@
EXTRA_DIST = cde_xsessiond_xprint.sh xpcdir = $(sysconfdir)/X11/Xsession.d
dist_xpc_DATA = 92xprint-xpserverlist

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)

View File

@ -269,7 +269,7 @@ char tmpname[PATH_MAX];
#ifndef WIN32 #ifndef WIN32
if (haveDir) if (haveDir)
fclose(in); fclose(in);
else if ((rval=pclose(in))!=0) { else if ((rval=Pclose(in))!=0) {
if (xkbDebugFlags) if (xkbDebugFlags)
ErrorF("xkbcomp returned exit code %d\n",rval); ErrorF("xkbcomp returned exit code %d\n",rval);
} }