- Disable building DMX on OSs that have not been verified to build

correctly (Kevin Martin).
- Fix DMX build when Xinerama is not enabled (Kevin Martin).
This commit is contained in:
Kevin E Martin 2004-07-06 23:51:00 +00:00
parent 0e45f2a753
commit 1498d7a096
5 changed files with 56 additions and 29 deletions

View File

@ -432,10 +432,12 @@ static int ProcDMXChangeScreensAttributes(ClientPtr client)
value_list += count; value_list += count;
} }
#if PANORAMIX
status = dmxConfigureScreenWindows(stuff->screenCount, status = dmxConfigureScreenWindows(stuff->screenCount,
screen_list, screen_list,
attribs, attribs,
&errorScreen); &errorScreen);
#endif
DEALLOCATE_LOCAL(attribs); DEALLOCATE_LOCAL(attribs);
@ -733,7 +735,9 @@ static int ProcDMXChangeDesktopAttributes(ClientPtr client)
dmxGetDesktopAttributes(&attr); dmxGetDesktopAttributes(&attr);
dmxFetchDesktopAttributes(stuff->valueMask, &attr, value_list); dmxFetchDesktopAttributes(stuff->valueMask, &attr, value_list);
#if PANORAMIX
status = dmxConfigureDesktop(&attr); status = dmxConfigureDesktop(&attr);
#endif
if (status == BadValue) return status; if (status == BadValue) return status;
noxinerama: noxinerama:

View File

@ -42,9 +42,12 @@
extern char *ConnectionInfo; extern char *ConnectionInfo;
extern int connBlockScreenStart; extern int connBlockScreenStart;
#ifdef PANORAMIX
extern int PanoramiXPixWidth; extern int PanoramiXPixWidth;
extern int PanoramiXPixHeight; extern int PanoramiXPixHeight;
extern int PanoramiXNumScreens; extern int PanoramiXNumScreens;
#endif
int dmxGlobalWidth, dmxGlobalHeight; int dmxGlobalWidth, dmxGlobalHeight;
@ -115,6 +118,7 @@ void dmxConnectionBlockCallback(void)
dmxLog(dmxFatal, "dmxConnectionBlockCallback: out of memory\n"); dmxLog(dmxFatal, "dmxConnectionBlockCallback: out of memory\n");
dmxLog(dmxInfo, "===== Start of Summary =====\n"); dmxLog(dmxInfo, "===== Start of Summary =====\n");
#ifdef PANORAMIX
if (!noPanoramiXExtension) { if (!noPanoramiXExtension) {
if (dmxGlobalWidth && dmxGlobalHeight if (dmxGlobalWidth && dmxGlobalHeight
&& (dmxGlobalWidth != PanoramiXPixWidth && (dmxGlobalWidth != PanoramiXPixWidth
@ -133,6 +137,7 @@ void dmxConnectionBlockCallback(void)
PanoramiXNumScreens, PanoramiXPixWidth, PanoramiXPixHeight); PanoramiXNumScreens, PanoramiXPixWidth, PanoramiXPixHeight);
for (i = 0; i < PanoramiXNumScreens; i++) found[i] = FALSE; for (i = 0; i < PanoramiXNumScreens; i++) found[i] = FALSE;
} else { } else {
#endif
/* This never happens because we're /* This never happens because we're
* either called from a Xinerama * either called from a Xinerama
* callback or during reconfiguration * callback or during reconfiguration
@ -140,7 +145,9 @@ void dmxConnectionBlockCallback(void)
* In any case, be reasonable. */ * In any case, be reasonable. */
dmxLog(dmxInfo, "%d screens configured (%d %d)\n", dmxLog(dmxInfo, "%d screens configured (%d %d)\n",
screenInfo.numScreens, root->pixWidth, root->pixHeight); screenInfo.numScreens, root->pixWidth, root->pixHeight);
#ifdef PANORAMIX
} }
#endif
for (i = 0; i < root->nDepths; i++) { for (i = 0; i < root->nDepths; i++) {
xDepth *depth = (xDepth *)(ConnectionInfo + offset); xDepth *depth = (xDepth *)(ConnectionInfo + offset);
@ -165,6 +172,7 @@ void dmxConnectionBlockCallback(void)
vi.bits_per_rgb = visual->bitsPerRGB; vi.bits_per_rgb = visual->bitsPerRGB;
dmxLogVisual(NULL, &vi, 0); dmxLogVisual(NULL, &vi, 0);
#ifdef PANORAMIX
if (!noPanoramiXExtension) { if (!noPanoramiXExtension) {
int k; int k;
for (k = 0; k < PanoramiXNumScreens; k++) { for (k = 0; k < PanoramiXNumScreens; k++) {
@ -182,6 +190,7 @@ void dmxConnectionBlockCallback(void)
} }
} }
} }
#endif
} }
offset = voffset + depth->nVisuals * sizeof(xVisualType); offset = voffset + depth->nVisuals * sizeof(xVisualType);
} }
@ -189,6 +198,7 @@ void dmxConnectionBlockCallback(void)
dmxInputLogDevices(); dmxInputLogDevices();
dmxLog(dmxInfo, "===== End of Summary =====\n"); dmxLog(dmxInfo, "===== End of Summary =====\n");
#ifdef PANORAMIX
if (!noPanoramiXExtension) { if (!noPanoramiXExtension) {
Bool fatal = FALSE; Bool fatal = FALSE;
for (i = 0; i < PanoramiXNumScreens; i++) { for (i = 0; i < PanoramiXNumScreens; i++) {
@ -205,5 +215,6 @@ void dmxConnectionBlockCallback(void)
dmxLog(dmxFatal, dmxLog(dmxFatal,
"dmxConnectionBlockCallback: invalid screen(s) found"); "dmxConnectionBlockCallback: invalid screen(s) found");
} }
#endif
MAXSCREENSFREE(found); MAXSCREENSFREE(found);
} }

View File

@ -289,35 +289,6 @@ void dmxFlushPendingSyncs(void)
dmxSync(NULL, TRUE); dmxSync(NULL, TRUE);
} }
#ifdef PANORAMIX
#include "panoramiXsrv.h"
/* Defined in dix/events.c */
extern void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff);
/** Change the "screen" window attributes by resizing the actual window
* on the back-end display (if necessary). */
static void dmxConfigureScreenWindow(int idx,
int x, int y, int w, int h)
{
DMXScreenInfo *dmxScreen = &dmxScreens[idx];
ScreenPtr pScreen = screenInfo.screens[idx];
/* Resize "screen" window */
if (dmxScreen->scrnX != x ||
dmxScreen->scrnY != y ||
dmxScreen->scrnWidth != w ||
dmxScreen->scrnHeight != h) {
dmxResizeScreenWindow(pScreen, x, y, w, h);
}
/* Change "screen" window values */
dmxScreen->scrnX = x;
dmxScreen->scrnY = y;
dmxScreen->scrnWidth = w;
dmxScreen->scrnHeight = h;
}
/** Update DMX's screen resources to match those of the newly moved /** Update DMX's screen resources to match those of the newly moved
* and/or resized "root" window. */ * and/or resized "root" window. */
void dmxUpdateScreenResources(ScreenPtr pScreen, int x, int y, int w, int h) void dmxUpdateScreenResources(ScreenPtr pScreen, int x, int y, int w, int h)
@ -396,6 +367,35 @@ void dmxUpdateScreenResources(ScreenPtr pScreen, int x, int y, int w, int h)
} }
} }
#ifdef PANORAMIX
#include "panoramiXsrv.h"
/* Defined in dix/events.c */
extern void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff);
/** Change the "screen" window attributes by resizing the actual window
* on the back-end display (if necessary). */
static void dmxConfigureScreenWindow(int idx,
int x, int y, int w, int h)
{
DMXScreenInfo *dmxScreen = &dmxScreens[idx];
ScreenPtr pScreen = screenInfo.screens[idx];
/* Resize "screen" window */
if (dmxScreen->scrnX != x ||
dmxScreen->scrnY != y ||
dmxScreen->scrnWidth != w ||
dmxScreen->scrnHeight != h) {
dmxResizeScreenWindow(pScreen, x, y, w, h);
}
/* Change "screen" window values */
dmxScreen->scrnX = x;
dmxScreen->scrnY = y;
dmxScreen->scrnWidth = w;
dmxScreen->scrnHeight = h;
}
/** Change the "root" window position and size by resizing the actual /** Change the "root" window position and size by resizing the actual
* window on the back-end display (if necessary) and updating all of * window on the back-end display (if necessary) and updating all of
* DMX's resources by calling #dmxUpdateScreenResources. */ * DMX's resources by calling #dmxUpdateScreenResources. */

View File

@ -668,11 +668,13 @@ void InitOutput(ScreenInfo *pScreenInfo, int argc, char *argv[])
for (i = 0; i < dmxNumScreens; i++) for (i = 0; i < dmxNumScreens; i++)
dmxDisplayInit(&dmxScreens[i]); dmxDisplayInit(&dmxScreens[i]);
#if PANORAMIX
/* Register a Xinerama callback which will run from within /* Register a Xinerama callback which will run from within
* PanoramiXCreateConnectionBlock. We can use the callback to * PanoramiXCreateConnectionBlock. We can use the callback to
* determine if Xinerama is loaded and to check the visuals * determine if Xinerama is loaded and to check the visuals
* determined by PanoramiXConsolidate. */ * determined by PanoramiXConsolidate. */
XineramaRegisterConnectionBlockCallback(dmxConnectionBlockCallback); XineramaRegisterConnectionBlockCallback(dmxConnectionBlockCallback);
#endif
/* Since we only have a single screen thus far, we only need to set /* Since we only have a single screen thus far, we only need to set
the pixmap formats to match that screen. FIXME: this isn't true.*/ the pixmap formats to match that screen. FIXME: this isn't true.*/

View File

@ -1133,11 +1133,13 @@ static int MakeCurrent(__GLXclientState *cl,
else if (pGlxPbuffer) { else if (pGlxPbuffer) {
be_draw = pGlxPbuffer->be_xids[s]; be_draw = pGlxPbuffer->be_xids[s];
} }
#ifdef PANORAMIX
else if (pXinDraw) { else if (pXinDraw) {
pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id, pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id,
client, client,
SecurityReadAccess); SecurityReadAccess);
} }
#endif
else if (pGlxWindow) { else if (pGlxWindow) {
pWin = (WindowPtr)pGlxWindow->pDraw; pWin = (WindowPtr)pGlxWindow->pDraw;
} }
@ -1189,11 +1191,13 @@ static int MakeCurrent(__GLXclientState *cl,
else if (pGlxReadPbuffer) { else if (pGlxReadPbuffer) {
be_read_draw = pGlxReadPbuffer->be_xids[s]; be_read_draw = pGlxReadPbuffer->be_xids[s];
} }
#ifdef PANORAMIX
else if (pXinReadDraw) { else if (pXinReadDraw) {
pReadWin = (WindowPtr)SecurityLookupWindow(pXinReadDraw->info[s].id, pReadWin = (WindowPtr)SecurityLookupWindow(pXinReadDraw->info[s].id,
client, client,
SecurityReadAccess); SecurityReadAccess);
} }
#endif
else if (pGlxReadWindow) { else if (pGlxReadWindow) {
pReadWin = (WindowPtr)pGlxReadWindow->pDraw; pReadWin = (WindowPtr)pGlxReadWindow->pDraw;
} }
@ -1773,9 +1777,11 @@ static int CreateGLXPixmap(__GLXclientState *cl,
Pixmap be_pixmap; Pixmap be_pixmap;
DrawablePtr pRealDraw = pDraw; DrawablePtr pRealDraw = pDraw;
#ifdef PANORAMIX
if (pXinDraw) { if (pXinDraw) {
pRealDraw = (DrawablePtr) LookupDrawable(pXinDraw->info[s].id,client); pRealDraw = (DrawablePtr) LookupDrawable(pXinDraw->info[s].id,client);
} }
#endif
be_pixmap = (DMX_GET_PIXMAP_PRIV((PixmapPtr)pRealDraw))->pixmap; be_pixmap = (DMX_GET_PIXMAP_PRIV((PixmapPtr)pRealDraw))->pixmap;
@ -1933,7 +1939,9 @@ int __glXDoSwapBuffers(__GLXclientState *cl, XID drawId, GLXContextTag tag)
WindowPtr pWin = NULL; WindowPtr pWin = NULL;
__GLXpixmap *pGlxPixmap = NULL; __GLXpixmap *pGlxPixmap = NULL;
__GLXcontext *glxc = NULL; __GLXcontext *glxc = NULL;
#ifdef PANORAMIX
PanoramiXRes *pXinDraw = NULL; PanoramiXRes *pXinDraw = NULL;
#endif
__glXWindow *pGlxWindow = NULL; __glXWindow *pGlxWindow = NULL;
int from_screen = 0; int from_screen = 0;
int to_screen = 0; int to_screen = 0;
@ -2046,11 +2054,13 @@ int __glXDoSwapBuffers(__GLXclientState *cl, XID drawId, GLXContextTag tag)
if (pGlxPixmap) { if (pGlxPixmap) {
be_draw = (unsigned int)pGlxPixmap->be_xids[s]; be_draw = (unsigned int)pGlxPixmap->be_xids[s];
} }
#ifdef PANORAMIX
else if (pXinDraw) { else if (pXinDraw) {
pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id, pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id,
client, client,
SecurityReadAccess); SecurityReadAccess);
} }
#endif
else if (pGlxWindow) { else if (pGlxWindow) {
pWin = (WindowPtr)pGlxWindow->pDraw; pWin = (WindowPtr)pGlxWindow->pDraw;
} }