summaryrefslogtreecommitdiff
path: root/glx/vndext.c
diff options
context:
space:
mode:
Diffstat (limited to 'glx/vndext.c')
-rw-r--r--glx/vndext.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/glx/vndext.c b/glx/vndext.c
index cef306a40..d7936467b 100644
--- a/glx/vndext.c
+++ b/glx/vndext.c
@@ -39,6 +39,7 @@
#include <GL/glxproto.h>
#include "vndservervendor.h"
+ExtensionEntry *GlxExtensionEntry;
int GlxErrorBase = 0;
static CallbackListRec vndInitCallbackList;
static CallbackListPtr vndInitCallbackListPtr = &vndInitCallbackList;
@@ -202,6 +203,7 @@ void
GlxExtensionInit(void)
{
ExtensionEntry *extEntry;
+ GlxExtensionEntry = NULL;
// Init private keys, per-screen data
if (!dixRegisterPrivateKey(&glvXGLVScreenPrivKey, PRIVATE_SCREEN, 0))
@@ -228,8 +230,15 @@ GlxExtensionInit(void)
return;
}
+ GlxExtensionEntry = extEntry;
GlxErrorBase = extEntry->errorBase;
CallCallbacks(&vndInitCallbackListPtr, extEntry);
+
+ /* We'd better have found at least one vendor */
+ for (int i = 0; i < screenInfo.numScreens; i++)
+ if (GlxGetVendorForScreen(serverClient, screenInfo.screens[i]))
+ return;
+ extEntry->base = 0;
}
static int