aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/dmx/dmxinit.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-11-29 09:05:13 +0100
committermarha <marha@users.sourceforge.net>2012-11-29 09:05:49 +0100
commit0831039c0d449a3b5874c12ee365a8d5d2be7b8c (patch)
tree4edb707b79145f619fefc18c2359659ca660612f /xorg-server/hw/dmx/dmxinit.c
parent6bc629065956c81d836bbdb12f5f580d8a3db8e5 (diff)
parentd2d73da59e64acdc4718e4e6790a69d967bee875 (diff)
downloadvcxsrv-0831039c0d449a3b5874c12ee365a8d5d2be7b8c.tar.gz
vcxsrv-0831039c0d449a3b5874c12ee365a8d5d2be7b8c.tar.bz2
vcxsrv-0831039c0d449a3b5874c12ee365a8d5d2be7b8c.zip
Merge remote-tracking branch 'origin/released'
* origin/released: fontconfig xserver mesa git update 29 nov 2012 Conflicts: xorg-server/dix/dispatch.c xorg-server/hw/xwin/InitOutput.c xorg-server/hw/xwin/ddraw.h xorg-server/hw/xwin/glx/indirect.c xorg-server/hw/xwin/winclipboardthread.c xorg-server/hw/xwin/winclipboardxevents.c xorg-server/hw/xwin/winengine.c xorg-server/hw/xwin/winerror.c xorg-server/hw/xwin/winglobals.c xorg-server/hw/xwin/winkeybd.c xorg-server/hw/xwin/winmultiwindowwm.c xorg-server/hw/xwin/winmultiwindowwndproc.c xorg-server/hw/xwin/winprocarg.c xorg-server/hw/xwin/winwin32rootless.c xorg-server/hw/xwin/winwindow.h xorg-server/os/osinit.c xorg-server/os/utils.c
Diffstat (limited to 'xorg-server/hw/dmx/dmxinit.c')
-rw-r--r--xorg-server/hw/dmx/dmxinit.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/xorg-server/hw/dmx/dmxinit.c b/xorg-server/hw/dmx/dmxinit.c
index 5e3f1103c..94dbdd230 100644
--- a/xorg-server/hw/dmx/dmxinit.c
+++ b/xorg-server/hw/dmx/dmxinit.c
@@ -68,10 +68,13 @@
#include <GL/glx.h>
#include <GL/glxint.h>
#include "dmx_glxvisuals.h"
+#include "glx_extinit.h"
#include <X11/extensions/Xext.h>
#include <X11/extensions/extutil.h>
#endif /* GLXEXT */
+#include <X11/extensions/dmxproto.h>
+
/* Global variables available to all Xserver/hw/dmx routines. */
int dmxNumScreens;
DMXScreenInfo *dmxScreens;
@@ -586,6 +589,20 @@ dmxExecHost(void)
return buffer;
}
+static void dmxAddExtensions(Bool glxSupported)
+{
+ const ExtensionModule dmxExtensions[] = {
+ { DMXExtensionInit, DMX_EXTENSION_NAME, NULL },
+#ifdef GLXEXT
+ { GlxExtensionInit, "GLX", &glxSupported },
+#endif
+ };
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(dmxExtensions); i++)
+ LoadExtension(&dmxExtensions[i], TRUE);
+}
+
/** This routine is called in Xserver/dix/main.c from \a main(). */
void
InitOutput(ScreenInfo * pScreenInfo, int argc, char *argv[])
@@ -594,7 +611,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char *argv[])
static unsigned long dmxGeneration = 0;
#ifdef GLXEXT
- Bool glxSupported = TRUE;
+ static Bool glxSupported = TRUE;
#endif
if (dmxGeneration != serverGeneration) {
@@ -725,6 +742,9 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char *argv[])
glxSupported &= (dmxScreens[i].glxMajorOpcode > 0);
#endif
+ if (serverGeneration == 1)
+ dmxAddExtensions(glxSupported);
+
/* Tell dix layer about the backend displays */
for (i = 0; i < dmxNumScreens; i++) {