summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-02-24 18:49:40 -0800
committerKeith Packard <keithp@keithp.com>2011-02-24 18:49:40 -0800
commit365ad68fb9f7029550505b7c276a808050cada9c (patch)
tree58305fe54c3aebd5a7376682d8be86f2f21aa5b0
parent0801afbd7c2c644c672b37f8463f1a0cbadebd2e (diff)
parent720c895db9327bbdc32215a67236303d2ceafad4 (diff)
Merge remote branch 'ajax/for-keithp'
-rw-r--r--hw/dmx/glxProxy/glxcmds.c80
-rw-r--r--hw/dmx/glxProxy/glxsingle.c7
-rw-r--r--hw/dmx/glxProxy/glxvendor.c6
-rw-r--r--hw/dmx/glxProxy/render2swap.c54
-rw-r--r--hw/xfree86/modes/xf86Crtc.c10
-rw-r--r--include/colormapst.h4
-rw-r--r--include/scrnintstr.h2
-rw-r--r--include/xorg-server.h.in7
8 files changed, 57 insertions, 113 deletions
diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c
index a58eb3554..f79264ea9 100644
--- a/hw/dmx/glxProxy/glxcmds.c
+++ b/hw/dmx/glxProxy/glxcmds.c
@@ -101,8 +101,8 @@ static int CreateContext(__GLXclientState *cl,
int from_screen = screen;
int to_screen = screen;
DMXScreenInfo *dmxScreen;
- VisualID be_vid;
- GLXFBConfigID be_fbconfigId;
+ VisualID be_vid = 0;
+ GLXFBConfigID be_fbconfigId = 0;
int num_be_screens;
Display *dpy;
@@ -1660,7 +1660,7 @@ static int CreateGLXPixmap(__GLXclientState *cl,
return BadMatch;
}
- if (fbconfigId == NULL && visual == NULL) {
+ if (fbconfigId == 0 && visual == 0) {
return BadValue;
}
@@ -1733,6 +1733,7 @@ static int CreateGLXPixmap(__GLXclientState *cl,
else {
pVisual = NULL;
pGlxVisual = NULL;
+ pGlxScreen = &__glXActiveScreens[pDraw->pScreen->myNum];
}
pGlxPixmap = (__GLXpixmap *) malloc(sizeof(__GLXpixmap));
@@ -3295,27 +3296,23 @@ int __glXGetDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
int screen, rc;
DMXScreenInfo *dmxScreen;
CARD32 *attribs = NULL;
- int attribs_size;
+ int attribs_size = 0;
#ifdef PANORAMIX
PanoramiXRes *pXinDraw = NULL;
#endif
if (drawId != None) {
rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixGetAttrAccess);
- if (rc == Success) {
- if (pDraw->type == DRAWABLE_WINDOW) {
- WindowPtr pWin = (WindowPtr)pDraw;
- be_drawable = 0;
- screen = pWin->drawable.pScreen->myNum;
-
- }
- else {
- /*
- ** Drawable is not a Window , GLXWindow or a GLXPixmap.
- */
- client->errorValue = drawId;
- return __glXBadDrawable;
- }
+ if (rc == Success && pDraw->type == DRAWABLE_WINDOW) {
+ WindowPtr pWin = (WindowPtr)pDraw;
+ be_drawable = 0;
+ screen = pWin->drawable.pScreen->myNum;
+ } else {
+ /*
+ ** Drawable is not a Window , GLXWindow or a GLXPixmap.
+ */
+ client->errorValue = drawId;
+ return __glXBadDrawable;
}
if (!pDraw) {
@@ -3353,17 +3350,15 @@ int __glXGetDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
be_drawable = pGlxPbuffer->be_xids[screen];
}
}
-
-
- if (!pDraw) {
- /*
- ** Drawable is not a Window , GLXWindow or a GLXPixmap.
- */
- client->errorValue = drawId;
- return __glXBadDrawable;
- }
}
+ if (!pDraw) {
+ /*
+ ** Drawable is not a Window , GLXWindow or a GLXPixmap.
+ */
+ client->errorValue = drawId;
+ return __glXBadDrawable;
+ }
/* if the drawable is a window or GLXWindow -
* we need to find the base id on the back-end server
@@ -3466,20 +3461,15 @@ int __glXChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
if (drawId != None) {
rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixSetAttrAccess);
- if (rc == Success) {
- if (pDraw->type == DRAWABLE_WINDOW) {
- WindowPtr pWin = (WindowPtr)pDraw;
- be_drawable = 0;
- screen = pWin->drawable.pScreen->myNum;
-
- }
- else {
- /*
- ** Drawable is not a Window , GLXWindow or a GLXPixmap.
- */
- client->errorValue = drawId;
- return __glXBadDrawable;
- }
+ if (rc == Success && pDraw->type == DRAWABLE_WINDOW) {
+ be_drawable = 0;
+ screen = pDraw->pScreen->myNum;
+ } else {
+ /*
+ ** Drawable is not a Window , GLXWindow or a GLXPixmap.
+ */
+ client->errorValue = drawId;
+ return __glXBadDrawable;
}
if (!pDraw) {
@@ -3517,17 +3507,15 @@ int __glXChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
be_drawable = pGlxPbuffer->be_xids[screen];
}
}
+ }
-
- if (!pDraw) {
+ if (!pDraw) {
/*
** Drawable is not a Window , GLXWindow or a GLXPixmap.
*/
client->errorValue = drawId;
return __glXBadDrawable;
- }
- }
-
+ }
/* if the drawable is a window or GLXWindow -
* we need to find the base id on the back-end server
diff --git a/hw/dmx/glxProxy/glxsingle.c b/hw/dmx/glxProxy/glxsingle.c
index 4c473ff13..33cc612a7 100644
--- a/hw/dmx/glxProxy/glxsingle.c
+++ b/hw/dmx/glxProxy/glxsingle.c
@@ -215,7 +215,7 @@ int __glXForwardPipe0WithReply( __GLXclientState *cl, GLbyte *pc )
xGLXSingleReply be_reply;
__GLXcontext *glxc;
int buf_size;
- char *be_buf;
+ char *be_buf = NULL;
int be_buf_size;
DMXScreenInfo *dmxScreen;
Display *dpy;
@@ -297,8 +297,8 @@ int __glXForwardAllWithReply( __GLXclientState *cl, GLbyte *pc )
xGLXSingleReply be_reply;
__GLXcontext *glxc;
int buf_size;
- char *be_buf;
- int be_buf_size;
+ char *be_buf = NULL;
+ int be_buf_size = 0;
int from_screen = 0;
int to_screen = 0;
int s;
@@ -811,6 +811,7 @@ int __glXDisp_ReadPixels(__GLXclientState *cl, GLbyte *pc)
}
else {
buf_size = 0;
+ buf = NULL;
}
if (buf_size > 0) {
diff --git a/hw/dmx/glxProxy/glxvendor.c b/hw/dmx/glxProxy/glxvendor.c
index 7ba727dc2..0b6ba4134 100644
--- a/hw/dmx/glxProxy/glxvendor.c
+++ b/hw/dmx/glxProxy/glxvendor.c
@@ -202,7 +202,7 @@ int __glXVForwardPipe0WithReply( __GLXclientState *cl, GLbyte *pc )
xGLXVendorPrivReply be_reply;
__GLXcontext *glxc;
int buf_size;
- char *be_buf;
+ char *be_buf = NULL;
int be_buf_size;
DMXScreenInfo *dmxScreen;
Display *dpy;
@@ -281,8 +281,8 @@ int __glXVForwardAllWithReply( __GLXclientState *cl, GLbyte *pc )
xGLXVendorPrivReply be_reply;
__GLXcontext *glxc;
int buf_size;
- char *be_buf;
- int be_buf_size;
+ char *be_buf = NULL;
+ int be_buf_size = 0;
int from_screen = 0;
int to_screen = 0;
int s;
diff --git a/hw/dmx/glxProxy/render2swap.c b/hw/dmx/glxProxy/render2swap.c
index 5754ff472..81bb501ea 100644
--- a/hw/dmx/glxProxy/render2swap.c
+++ b/hw/dmx/glxProxy/render2swap.c
@@ -261,60 +261,6 @@ void __glXDispSwap_CallLists(GLbyte *pc)
}
-static void swapArray(GLint numVals, GLenum datatype,
- GLint stride, GLint numVertexes, GLbyte *pc)
-{
- int i,j;
- __GLX_DECLARE_SWAP_VARIABLES;
-
- switch (datatype) {
- case GL_BYTE:
- case GL_UNSIGNED_BYTE:
- /* don't need to swap */
- return;
- case GL_SHORT:
- case GL_UNSIGNED_SHORT:
- for (i=0; i<numVertexes; i++) {
- GLshort *pVal = (GLshort *) pc;
- for (j=0; j<numVals; j++) {
- __GLX_SWAP_SHORT(&pVal[j]);
- }
- pc += stride;
- }
- break;
- case GL_INT:
- case GL_UNSIGNED_INT:
- for (i=0; i<numVertexes; i++) {
- GLint *pVal = (GLint *) pc;
- for (j=0; j<numVals; j++) {
- __GLX_SWAP_INT(&pVal[j]);
- }
- pc += stride;
- }
- break;
- case GL_FLOAT:
- for (i=0; i<numVertexes; i++) {
- GLfloat *pVal = (GLfloat *) pc;
- for (j=0; j<numVals; j++) {
- __GLX_SWAP_FLOAT(&pVal[j]);
- }
- pc += stride;
- }
- break;
- case GL_DOUBLE:
- for (i=0; i<numVertexes; i++) {
- GLdouble *pVal = (GLdouble *) pc;
- for (j=0; j<numVals; j++) {
- __GLX_SWAP_DOUBLE(&pVal[j]);
- }
- pc += stride;
- }
- break;
- default:
- return;
- }
-}
-
void __glXDispSwap_DrawArrays(GLbyte *pc)
{
__GLXdispatchDrawArraysHeader *hdr = (__GLXdispatchDrawArraysHeader *)pc;
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index a49668f84..86f038aa1 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -1565,7 +1565,7 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY)
int min_clock = 0;
int max_clock = 0;
double clock;
- Bool add_default_modes = xf86ReturnOptValBool(output->options, OPTION_DEFAULT_MODES, TRUE);
+ Bool add_default_modes;
Bool debug_modes = config->debug_modes ||
xf86Initialising;
enum det_monrec_source sync_source = sync_default;
@@ -1611,6 +1611,14 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY)
}
output_modes = (*output->funcs->get_modes) (output);
+
+ /*
+ * If the user has a preference, respect it.
+ * Otherwise, don't second-guess the driver.
+ */
+ if (!xf86GetOptValBool(output->options, OPTION_DEFAULT_MODES,
+ &add_default_modes))
+ add_default_modes = (output_modes == NULL);
edid_monitor = output->MonInfo;
diff --git a/include/colormapst.h b/include/colormapst.h
index 0ba5bd0b5..b597e2c60 100644
--- a/include/colormapst.h
+++ b/include/colormapst.h
@@ -103,12 +103,12 @@ typedef struct _ColormapRec
{
VisualPtr pVisual;
short class; /* PseudoColor or DirectColor */
-#if defined(_XSERVER64)
+#if defined(_LP64)
short pad0;
XID pad1;
#endif
XID mid; /* client's name for colormap */
-#if defined(_XSERVER64) && (X_BYTE_ORDER == X_LITTLE_ENDIAN)
+#if defined(_LP64) && (X_BYTE_ORDER == X_LITTLE_ENDIAN)
XID pad2;
#endif
ScreenPtr pScreen; /* screen map is associated with */
diff --git a/include/scrnintstr.h b/include/scrnintstr.h
index 9f4fbf3df..a9357e8a5 100644
--- a/include/scrnintstr.h
+++ b/include/scrnintstr.h
@@ -404,7 +404,7 @@ typedef void (* DeviceCursorCleanupProcPtr)(
ScreenPtr /* pScreen */);
typedef void (*ConstrainCursorHarderProcPtr)(
- DeviceIntPtr, ScreenPtr, int *, int *);
+ DeviceIntPtr, ScreenPtr, int, int *, int *);
typedef struct _Screen {
int myNum; /* index of this instance in Screens[] */
diff --git a/include/xorg-server.h.in b/include/xorg-server.h.in
index 76cab16b6..b10b9949e 100644
--- a/include/xorg-server.h.in
+++ b/include/xorg-server.h.in
@@ -157,9 +157,6 @@
/* Name of X server */
#undef __XSERVERNAME__
-/* Define to 1 if unsigned long is 64 bits. */
-#undef _XSERVER64
-
/* Building vgahw module */
#undef WITH_VGAHW
@@ -187,4 +184,8 @@
/* X Access Control Extension */
#undef XACE
+#ifdef _LP64
+#define _XSERVER64 1
+#endif
+
#endif /* _XORG_SERVER_H_ */