summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYaron Cohen-Tal <yaronct@gmail.com>2015-09-29 11:57:55 +0300
committerYaron Cohen-Tal <yaronct@gmail.com>2015-09-29 11:57:55 +0300
commitb3b8bd9af7bf1fcfe544fd131f4d4f0d117ae7bc (patch)
treeba431ee1a13c83519ab5ddf63d28211e619c37f3 /src
parent7d1c96c85ffcfccfc4ddd36a2be96a219134bed8 (diff)
downloadlibepoxy-b3b8bd9af7bf1fcfe544fd131f4d4f0d117ae7bc.tar.gz
Fix "epoxy_glx_version" to handle the case when GLX is not active on the display.
Diffstat (limited to 'src')
-rw-r--r--src/dispatch_glx.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/dispatch_glx.c b/src/dispatch_glx.c
index f1ff447..36d513a 100644
--- a/src/dispatch_glx.c
+++ b/src/dispatch_glx.c
@@ -54,22 +54,23 @@ epoxy_glx_version(Display *dpy, int screen)
int client_major, client_minor;
int server, client;
const char *version_string;
- int ret;
+ int ret=0, sscanf_ret;
- version_string = glXQueryServerString(dpy, screen, GLX_VERSION);
- ret = sscanf(version_string, "%d.%d", &server_major, &server_minor);
- assert(ret == 2);
- server = server_major * 10 + server_minor;
+ if ((version_string = glXQueryServerString(dpy, screen, GLX_VERSION)))
+ {
+ sscanf_ret = sscanf(version_string, "%d.%d", &server_major, &server_minor);
+ assert(sscanf_ret == 2);
+ server = server_major * 10 + server_minor;
+ if ((version_string = glXGetClientString(dpy, GLX_VERSION)))
+ {
+ sscanf_ret = sscanf(version_string, "%d.%d", &client_major, &client_minor);
+ assert(sscanf_ret == 2);
+ client = client_major * 10 + client_minor;
+ ret = client <= server ? client : server;
+ }
+ }
- version_string = glXGetClientString(dpy, GLX_VERSION);
- ret = sscanf(version_string, "%d.%d", &client_major, &client_minor);
- assert(ret == 2);
- client = client_major * 10 + client_minor;
-
- if (client < server)
- return client;
- else
- return server;
+ return ret;
}
/**