vfb: Initialize the GLX extension again.

This should fix a regression in the 1.13.0 release: commit
5f5bbbe543 removed a code path used by Xvfb
and made it use the default one when initializing extensions. However, this
meant the GLX extension was not initialized anymore since it is not part of
the `staticExtensions' array.

Since it is not possible to just add it to that array after commit
aad428b8e2, adopt an approach similar to
xwin's and xquartz's and initialize the extension from vfb's `InitOutput'.

Signed-off-by: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
This commit is contained in:
Raphael Kubo da Costa 2012-11-16 19:51:58 +02:00 committed by Daniel Stone
parent 353b14ea77
commit ac1a60e7b6

View File

@ -65,6 +65,7 @@ from The Open Group.
#endif /* HAS_SHM */ #endif /* HAS_SHM */
#include "dix.h" #include "dix.h"
#include "miline.h" #include "miline.h"
#include "glx_extinit.h"
#define VFB_DEFAULT_WIDTH 1280 #define VFB_DEFAULT_WIDTH 1280
#define VFB_DEFAULT_HEIGHT 1024 #define VFB_DEFAULT_HEIGHT 1024
@ -884,12 +885,30 @@ vfbScreenInit(ScreenPtr pScreen, int argc, char **argv)
} /* end vfbScreenInit */ } /* end vfbScreenInit */
static const ExtensionModule vfbExtensions[] = {
#ifdef GLXEXT
{ GlxExtensionInit, "GLX", &noGlxExtension },
#endif
};
static
void vfbExtensionInit(void)
{
int i;
for (i = 0; i < ARRAY_SIZE(vfbExtensions); i++)
LoadExtension(&vfbExtensions[i], TRUE);
}
void void
InitOutput(ScreenInfo * screenInfo, int argc, char **argv) InitOutput(ScreenInfo * screenInfo, int argc, char **argv)
{ {
int i; int i;
int NumFormats = 0; int NumFormats = 0;
if (serverGeneration == 1)
vfbExtensionInit();
/* initialize pixmap formats */ /* initialize pixmap formats */
/* must have a pixmap depth to match every screen depth */ /* must have a pixmap depth to match every screen depth */