Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into input-hotplug
This commit is contained in:
commit
ad321fad4b
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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[];
|
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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])
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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,12 +84,18 @@ Bool dmxBECreateColormap(ColormapPtr pColormap)
|
||||||
VisualPtr pVisual = pColormap->pVisual;
|
VisualPtr pVisual = pColormap->pVisual;
|
||||||
Visual *visual = dmxLookupVisual(pScreen, pVisual);
|
Visual *visual = dmxLookupVisual(pScreen, pVisual);
|
||||||
|
|
||||||
pCmapPriv->cmap = XCreateColormap(dmxScreen->beDisplay,
|
if (visual) {
|
||||||
dmxScreen->scrnWin,
|
pCmapPriv->cmap = XCreateColormap(dmxScreen->beDisplay,
|
||||||
visual,
|
dmxScreen->scrnWin,
|
||||||
(pVisual->class & DynamicClass ?
|
visual,
|
||||||
AllocAll : AllocNone));
|
(pVisual->class & DynamicClass ?
|
||||||
return (pCmapPriv->cmap != 0);
|
AllocAll : AllocNone));
|
||||||
|
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
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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 \
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -709,4 +709,4 @@ install-data-local: remove-links
|
||||||
|
|
||||||
uninstall-hook: remove-links
|
uninstall-hook: remove-links
|
||||||
|
|
||||||
EXTRA_DIST = README
|
dist_xpconfig_DATA = README
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
EXTRA_DIST = cde_xsessiond_xprint.sh
|
xpcdir = $(sysconfdir)/X11/Xsession.d
|
||||||
|
dist_xpc_DATA = 92xprint-xpserverlist
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue