glx: Implement GLX_EXT_no_config_context
[mesa.git] / src / glx / g_glxglvnddispatchfuncs.c
index 0f02ed2d321cab0bebb48c963faf07d804bad653..78c097febb65141729fe12097c3e76e854967c39 100644 (file)
@@ -160,7 +160,19 @@ static GLXContext dispatch_CreateContextAttribsARB(Display *dpy,
     __GLXvendorInfo *dd;
     GLXContext ret;
 
-    dd = GetDispatchFromFBConfig(dpy, config);
+    if (config) {
+       dd = GetDispatchFromFBConfig(dpy, config);
+    } else if (attrib_list) {
+       int i, screen;
+
+       for (i = 0; attrib_list[i * 2] != None; i++) {
+          if (attrib_list[i * 2] == GLX_SCREEN) {
+             screen = attrib_list[i * 2 + 1];
+             dd = GetDispatchFromDrawable(dpy, RootWindow(dpy, screen));
+             break;
+          }
+       }
+    }
     if (dd == NULL)
         return None;