progs/xdemos: fix up GLX extension checking
authorJesse Barnes <jbarnes@virtuousgeek.org>
Fri, 5 Mar 2010 19:21:12 +0000 (11:21 -0800)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Fri, 5 Mar 2010 19:22:05 +0000 (11:22 -0800)
A few of my programs were using the client string in addition to the
main extensions string to see if a feature was present.  Correct this to
only check for the currently available and working extensions.

progs/xdemos/glsync.c
progs/xdemos/msctest.c
progs/xdemos/omlsync.c

index c00ba9e4687b946a901dac5b09886b1682906794..3751373e23b807460596415fd2230b53f3f8f1f7 100644 (file)
@@ -63,19 +63,12 @@ void (*swap_interval)();
 
 static int GLXExtensionSupported(Display *dpy, const char *extension)
 {
-       const char *extensionsString, *client_extensions, *pos;
+       const char *extensionsString, *pos;
 
        extensionsString = glXQueryExtensionsString(dpy, DefaultScreen(dpy));
-       client_extensions = glXGetClientString(dpy, GLX_EXTENSIONS);
 
        pos = strstr(extensionsString, extension);
 
-       if (pos != NULL && (pos == extensionsString || pos[-1] == ' ') &&
-           (pos[strlen(extension)] == ' ' || pos[strlen(extension)] == '\0'))
-               return 1;
-
-       pos = strstr(client_extensions, extension);
-
        if (pos != NULL && (pos == extensionsString || pos[-1] == ' ') &&
            (pos[strlen(extension)] == ' ' || pos[strlen(extension)] == '\0'))
                return 1;
@@ -235,7 +228,7 @@ int main(int argc, char *argv[])
 
        XMapWindow(disp, winGL);
        ret = glXMakeCurrent(disp, winGL, context);
-       if (ret) {
+       if (!ret) {
                fprintf(stderr, "failed to make context current: %d\n", ret);
        }
 
index 001ecf04d6ca87836b691c970436ed667b8fb53e..11b043444261de81b1acd9574a63d9e84874ae54 100644 (file)
@@ -45,19 +45,12 @@ void (*wait_sync)(Display *dpy, Window winGL, int64_t target_msc, int64_t diviso
 
 static int GLXExtensionSupported(Display *dpy, const char *extension)
 {
-       const char *extensionsString, *client_extensions, *pos;
+       const char *extensionsString, *pos;
 
        extensionsString = glXQueryExtensionsString(dpy, DefaultScreen(dpy));
-       client_extensions = glXGetClientString(dpy, GLX_EXTENSIONS);
 
        pos = strstr(extensionsString, extension);
 
-       if (pos != NULL && (pos == extensionsString || pos[-1] == ' ') &&
-           (pos[strlen(extension)] == ' ' || pos[strlen(extension)] == '\0'))
-               return 1;
-
-       pos = strstr(client_extensions, extension);
-
        if (pos != NULL && (pos == extensionsString || pos[-1] == ' ') &&
            (pos[strlen(extension)] == ' ' || pos[strlen(extension)] == '\0'))
                return 1;
@@ -167,8 +160,8 @@ int main(int argc, char *argv[])
 
        glXMakeCurrent(disp, winGL, context);
 
-       get_sync_values = glXGetProcAddress((unsigned char *)"glXGetSyncValuesOML");
-       wait_sync = glXGetProcAddress((unsigned char *)"glXWaitForMscOML");
+       get_sync_values = (void *)glXGetProcAddress((unsigned char *)"glXGetSyncValuesOML");
+       wait_sync = (void *)glXGetProcAddress((unsigned char *)"glXWaitForMscOML");
 
        if (!get_sync_values || !wait_sync) {
                fprintf(stderr, "failed to get sync values function\n");
index f2c1d13f81194f69c0ee689be979e11676aef826..a2baf4ad7203ba5a57ba696d8fad20a0cb3175c0 100644 (file)
@@ -73,19 +73,12 @@ int (*glXSwapInterval)(int interval);
 
 static int GLXExtensionSupported(Display *dpy, const char *extension)
 {
-       const char *extensionsString, *client_extensions, *pos;
+       const char *extensionsString, *pos;
 
        extensionsString = glXQueryExtensionsString(dpy, DefaultScreen(dpy));
-       client_extensions = glXGetClientString(dpy, GLX_EXTENSIONS);
 
        pos = strstr(extensionsString, extension);
 
-       if (pos != NULL && (pos == extensionsString || pos[-1] == ' ') &&
-           (pos[strlen(extension)] == ' ' || pos[strlen(extension)] == '\0'))
-               return 1;
-
-       pos = strstr(client_extensions, extension);
-
        if (pos != NULL && (pos == extensionsString || pos[-1] == ' ') &&
            (pos[strlen(extension)] == ' ' || pos[strlen(extension)] == '\0'))
                return 1;