xserver/GL/mesa/X xf86glx.c,1.2,1.3

David Reveman <xserver-commit-u7BhqnqprCWvj1b/[email protected]> Tue, 7 Jun 2005 08:36:14 -0700 (PDT)
Newsgroups gmane.comp.freedesktop.xserver.cvs
Message-ID <[email protected]>
Committed by: davidr

Update of /cvs/xserver/xserver/GL/mesa/X
In directory gabe:/tmp/cvs-serv27147/GL/mesa/X

Modified Files:
	xf86glx.c 
Log Message:
Build with Mesa CVS, Track changes to GLX code and support for ARGB visuals

Index: xf86glx.c
===================================================================
RCS file: /cvs/xserver/xserver/GL/mesa/X/xf86glx.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- xf86glx.c	9 Dec 2003 15:33:42 -0000	1.2
+++ xf86glx.c	7 Jun 2005 15:36:12 -0000	1.3
@@ -33,6 +33,7 @@
  *
  */
 
+#define GL_GLEXT_PROTOTYPES
 #include <regionstr.h>
 #include <resource.h>
 #include <GL/gl.h>
@@ -65,6 +66,377 @@
 #include <GL/internal/glcore.h>
 #endif
 
+__glProcTable __glMesaRenderTable = {
+    glNewList,
+    glEndList,
+    glCallList,
+    glCallLists,
+    glDeleteLists,
+    glGenLists,
+    glListBase,
+    glBegin,
+    glBitmap,
+    glColor3bv,
+    glColor3dv,
+    glColor3fv,
+    glColor3iv,
+    glColor3sv,
+    glColor3ubv,
+    glColor3uiv,
+    glColor3usv,
+    glColor4bv,
+    glColor4dv,
+    glColor4fv,
+    glColor4iv,
+    glColor4sv,
+    glColor4ubv,
+    glColor4uiv,
+    glColor4usv,
+    glEdgeFlagv,
+    glEnd,
+    glIndexdv,
+    glIndexfv,
+    glIndexiv,
+    glIndexsv,
+    glNormal3bv,
+    glNormal3dv,
+    glNormal3fv,
+    glNormal3iv,
+    glNormal3sv,
+    glRasterPos2dv,
+    glRasterPos2fv,
+    glRasterPos2iv,
+    glRasterPos2sv,
+    glRasterPos3dv,
+    glRasterPos3fv,
+    glRasterPos3iv,
+    glRasterPos3sv,
+    glRasterPos4dv,
+    glRasterPos4fv,
+    glRasterPos4iv,
+    glRasterPos4sv,
+    glRectdv,
+    glRectfv,
+    glRectiv,
+    glRectsv,
+    glTexCoord1dv,
+    glTexCoord1fv,
+    glTexCoord1iv,
+    glTexCoord1sv,
+    glTexCoord2dv,
+    glTexCoord2fv,
+    glTexCoord2iv,
+    glTexCoord2sv,
+    glTexCoord3dv,
+    glTexCoord3fv,
+    glTexCoord3iv,
+    glTexCoord3sv,
+    glTexCoord4dv,
+    glTexCoord4fv,
+    glTexCoord4iv,
+    glTexCoord4sv,
+    glVertex2dv,
+    glVertex2fv,
+    glVertex2iv,
+    glVertex2sv,
+    glVertex3dv,
+    glVertex3fv,
+    glVertex3iv,
+    glVertex3sv,
+    glVertex4dv,
+    glVertex4fv,
+    glVertex4iv,
+    glVertex4sv,
+    glClipPlane,
+    glColorMaterial,
+    glCullFace,
+    glFogf,
+    glFogfv,
+    glFogi,
+    glFogiv,
+    glFrontFace,
+    glHint,
+    glLightf,
+    glLightfv,
+    glLighti,
+    glLightiv,
+    glLightModelf,
+    glLightModelfv,
+    glLightModeli,
+    glLightModeliv,
+    glLineStipple,
+    glLineWidth,
+    glMaterialf,
+    glMaterialfv,
+    glMateriali,
+    glMaterialiv,
+    glPointSize,
+    glPolygonMode,
+    glPolygonStipple,
+    glScissor,
+    glShadeModel,
+    glTexParameterf,
+    glTexParameterfv,
+    glTexParameteri,
+    glTexParameteriv,
+    glTexImage1D,
+    glTexImage2D,
+    glTexEnvf,
+    glTexEnvfv,
+    glTexEnvi,
+    glTexEnviv,
+    glTexGend,
+    glTexGendv,
+    glTexGenf,
+    glTexGenfv,
+    glTexGeni,
+    glTexGeniv,
+    glFeedbackBuffer,
+    glSelectBuffer,
+    glRenderMode,
+    glInitNames,
+    glLoadName,
+    glPassThrough,
+    glPopName,
+    glPushName,
+    glDrawBuffer,
+    glClear,
+    glClearAccum,
+    glClearIndex,
+    glClearColor,
+    glClearStencil,
+    glClearDepth,
+    glStencilMask,
+    glColorMask,
+    glDepthMask,
+    glIndexMask,
+    glAccum,
+    glDisable,
+    glEnable,
+    glFinish,
+    glFlush,
+    glPopAttrib,
+    glPushAttrib,
+    glMap1d,
+    glMap1f,
+    glMap2d,
+    glMap2f,
+    glMapGrid1d,
+    glMapGrid1f,
+    glMapGrid2d,
+    glMapGrid2f,
+    glEvalCoord1dv,
+    glEvalCoord1fv,
+    glEvalCoord2dv,
+    glEvalCoord2fv,
+    glEvalMesh1,
+    glEvalPoint1,
+    glEvalMesh2,
+    glEvalPoint2,
+    glAlphaFunc,
+    glBlendFunc,
+    glLogicOp,
+    glStencilFunc,
+    glStencilOp,
+    glDepthFunc,
+    glPixelZoom,
+    glPixelTransferf,
+    glPixelTransferi,
+    glPixelStoref,
+    glPixelStorei,
+    glPixelMapfv,
+    glPixelMapuiv,
+    glPixelMapusv,
+    glReadBuffer,
+    glCopyPixels,
+    glReadPixels,
+    glDrawPixels,
+    glGetBooleanv,
+    glGetClipPlane,
+    glGetDoublev,
+    glGetError,
+    glGetFloatv,
+    glGetIntegerv,
+    glGetLightfv,
+    glGetLightiv,
+    glGetMapdv,
+    glGetMapfv,
+    glGetMapiv,
+    glGetMaterialfv,
+    glGetMaterialiv,
+    glGetPixelMapfv,
+    glGetPixelMapuiv,
+    glGetPixelMapusv,
+    glGetPolygonStipple,
+    glGetString,
+    glGetTexEnvfv,
+    glGetTexEnviv,
+    glGetTexGendv,
+    glGetTexGenfv,
+    glGetTexGeniv,
+    glGetTexImage,
+    glGetTexParameterfv,
+    glGetTexParameteriv,
+    glGetTexLevelParameterfv,
+    glGetTexLevelParameteriv,
+    glIsEnabled,
+    glIsList,
+    glDepthRange,
+    glFrustum,
+    glLoadIdentity,
+    glLoadMatrixf,
+    glLoadMatrixd,
+    glMatrixMode,
+    glMultMatrixf,
+    glMultMatrixd,
+    glOrtho,
+    glPopMatrix,
+    glPushMatrix,
+    glRotated,
+    glRotatef,
+    glScaled,
+    glScalef,
+    glTranslated,
+    glTranslatef,
+    glViewport,
+    glArrayElement,
+    glBindTexture,
+    glColorPointer,
+    glDisableClientState,
+    glDrawArrays,
+    glDrawElements,
+    glEdgeFlagPointer,
+    glEnableClientState,
+    glIndexPointer,
+    glIndexubv,
+    glInterleavedArrays,
+    glNormalPointer,
+    glPolygonOffset,
+    glTexCoordPointer,
+    glVertexPointer,
+    glAreTexturesResident,
+    glCopyTexImage1D,
+    glCopyTexImage2D,
+    glCopyTexSubImage1D,
+    glCopyTexSubImage2D,
+    glDeleteTextures,
+    glGenTextures,
+    glGetPointerv,
+    glIsTexture,
+    glPrioritizeTextures,
+    glTexSubImage1D,
+    glTexSubImage2D,
+    glPopClientAttrib,
+    glPushClientAttrib,
+    glBlendColor,
+    glBlendEquation,
+    glColorTable,
+    glColorTableParameterfv,
+    glColorTableParameteriv,
+    glCopyColorTable,
+    glGetColorTable,
+    glGetColorTableParameterfv,
+    glGetColorTableParameteriv,
+    glColorSubTable,
+    glCopyColorSubTable,
+    glConvolutionFilter1D,
+    glConvolutionFilter2D,
+    glConvolutionParameterf,
+    glConvolutionParameterfv,
+    glConvolutionParameteri,
+    glConvolutionParameteriv,
+    glCopyConvolutionFilter1D,
+    glCopyConvolutionFilter2D,
+    glGetConvolutionFilter,
+    glGetConvolutionParameterfv,
+    glGetConvolutionParameteriv,
+    glGetSeparableFilter,
+    glSeparableFilter2D,
+    glGetHistogram,
+    glGetHistogramParameterfv,
+    glGetHistogramParameteriv,
+    glGetMinmax,
+    glGetMinmaxParameterfv,
+    glGetMinmaxParameteriv,
+    glHistogram,
+    glMinmax,
+    glResetHistogram,
+    glResetMinmax,
+    glTexImage3D,
+    glTexSubImage3D,
+    glCopyTexSubImage3D
+};
+
+static int
+mglXBindTexImageMESA (DrawablePtr pDrawable,
+		      int	  buffer)
+{
+    return FALSE;
+}
+
+static int
+mglXReleaseTexImageMESA (DrawablePtr pDrawable,
+			 int	     buffer)
+{
+    return FALSE;
+}
+
+static int
+mglXQueryDrawableMESA (DrawablePtr  pDrawable,
+		       int	    attribute,
+		       unsigned int *value)
+{
+    return FALSE;
+}
+
+__glProcTableEXT __glMesaRenderTableEXT = {
+    glActiveTextureARB,
+    glClientActiveTextureARB,
+    glMultiTexCoord1dvARB,
+    glMultiTexCoord1fvARB,
+    glMultiTexCoord1ivARB,
+    glMultiTexCoord1svARB,
+    glMultiTexCoord2dvARB,
+    glMultiTexCoord2fvARB,
+    glMultiTexCoord2ivARB,
+    glMultiTexCoord2svARB,
+    glMultiTexCoord3dvARB,
+    glMultiTexCoord3fvARB,
+    glMultiTexCoord3ivARB,
+    glMultiTexCoord3svARB,
+    glMultiTexCoord4dvARB,
+    glMultiTexCoord4fvARB,
+    glMultiTexCoord4ivARB,
+    glMultiTexCoord4svARB,
+    glSampleCoverageARB,
+    glAreTexturesResidentEXT,
+    glGenTexturesEXT,
+    glIsTextureEXT,
+    glSampleMaskSGIS,
+    glSamplePatternSGIS,
+    glPointParameterfEXT,
+    glPointParameterfvEXT,
+    glWindowPos3fMESA,
+    glBlendFuncSeparateEXT,
+    glFogCoordfvEXT,
+    glFogCoorddvEXT,
+    glFogCoordPointerEXT,
+    glSecondaryColor3bvEXT,
+    glSecondaryColor3dvEXT,
+    glSecondaryColor3fvEXT,
+    glSecondaryColor3ivEXT,
+    glSecondaryColor3svEXT,
+    glSecondaryColor3ubvEXT,
+    glSecondaryColor3uivEXT,
+    glSecondaryColor3usvEXT,
+    glSecondaryColorPointerEXT,
+    glPointParameteriNV,
+    glPointParameterivNV,
+    glActiveStencilFaceEXT,
+    mglXBindTexImageMESA,
+    mglXReleaseTexImageMESA,
+    mglXQueryDrawableMESA
+};
 
 /*
  * This structure is statically allocated in the __glXScreens[]
@@ -478,8 +850,6 @@
 void __MESA_setVisualConfigs(int nconfigs, __GLXvisualConfig *configs,
 			     void **privates)
 {
-    (void)kernel8;
-    (void)DitherValues;
     numConfigs = nconfigs;
     visualConfigs = configs;
     visualPrivates = privates;
@@ -511,7 +881,11 @@
 	/* Find a visual that matches the GLX visual's class and size */
 	for (j = 0; j < pScreen->numVisuals; j++, pVis++) {
 	    if (pVis->class == pGLXVis->class &&
-		pVis->nplanes == (pGLXVis->bufferSize - pGLXVis->alphaSize)) {
+		(pVis->nplanes == (pGLXVis->bufferSize - pGLXVis->alphaSize)
+#ifdef COMPOSITE
+		 || (pVis->nplanes == pGLXVis->bufferSize)
+#endif
+		    )) {
 
 		/* Fixup the masks */
 		pGLXVis->redMask   = pVis->redMask;
@@ -551,8 +925,11 @@
 	for (j = 0; j < pScreen->numVisuals; j++, pVis++) {
 
 	    if (pVis->class == pGLXVis->class &&
-		pVis->nplanes == (pGLXVis->bufferSize - pGLXVis->alphaSize) &&
-		!used[j]) {
+		(pVis->nplanes == (pGLXVis->bufferSize - pGLXVis->alphaSize)
+#ifdef COMPOSITE
+		 || (pVis->nplanes == pGLXVis->bufferSize)
+#endif
+		    ) && !used[j]) {
 
 		if (pVis->redMask   == pGLXVis->redMask &&
 		    pVis->greenMask == pGLXVis->greenMask &&
@@ -620,6 +997,9 @@
      */
     init_screen_visuals(screen);
 
+    __glRenderTable = &__glMesaRenderTable;
+    __glRenderTableEXT = &__glMesaRenderTableEXT;
+
     return TRUE;
 }