Remove MAX_VISUAL limitations of 100. If running dual head this can
authorAlan Hourihane <alanh@tungstengraphics.com>
Fri, 13 May 2005 11:56:13 +0000 (11:56 +0000)
committerAlan Hourihane <alanh@tungstengraphics.com>
Fri, 13 May 2005 11:56:13 +0000 (11:56 +0000)
be easily consumed. There are no limitations now and the VisualTable
is realloced when necessary.

src/mesa/drivers/x11/fakeglx.c

index 971ca0b55b2bb25c0f48cd1de880429782829a32..3784044bf9b30f0430e393e11cb658b62721a0f8 100644 (file)
@@ -105,8 +105,7 @@ struct fake_glx_context {
 #define DONT_CARE -1
 
 
-#define MAX_VISUALS 100
-static XMesaVisual VisualTable[MAX_VISUALS];
+static XMesaVisual *VisualTable = NULL;
 static int NumVisuals = 0;
 
 
@@ -331,11 +330,6 @@ save_glx_visual( Display *dpy, XVisualInfo *vinfo,
 
    /* Create a new visual and add it to the list. */
 
-   if (NumVisuals >= MAX_VISUALS) {
-      _mesa_problem(NULL, "GLX Error: maximum number of visuals exceeded");
-      return NULL;
-   }
-
    xmvis = XMesaCreateVisual( dpy, vinfo, rgbFlag, alphaFlag, dbFlag,
                               stereoFlag, ximageFlag,
                               depth_size, stencil_size,
@@ -347,6 +341,10 @@ save_glx_visual( Display *dpy, XVisualInfo *vinfo,
        * if we need to search for it in find_glx_visual().
        */
       xmvis->vishandle = vinfo;
+      /* Allocate more space for additional visual */
+      VisualTable = _mesa_realloc( VisualTable, 
+                                   sizeof(XMesaVisual) * NumVisuals, 
+                                   sizeof(XMesaVisual) * NumVisuals + 1);
       /* add xmvis to the list */
       VisualTable[NumVisuals] = xmvis;
       NumVisuals++;