glut_glxext.c
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:1k
源码类别:

GIS编程

开发平台:

Visual C++

  1. /* Copyright (c) Mark J. Kilgard, 1997. */
  2. /* This program is freely distributable without licensing fees
  3.    and is provided without guarantee or warrantee expressed or
  4.    implied. This program is -not- in the public domain. */
  5. #include <stdlib.h>
  6. #include <string.h>
  7. #include "glutint.h"
  8. #if defined(GLX_VERSION_1_1)
  9. int
  10. __glutIsSupportedByGLX(char *extension)
  11. {
  12.   static const char *extensions = NULL;
  13.   const char *start;
  14.   char *where, *terminator;
  15.   int major, minor;
  16.   glXQueryVersion(__glutDisplay, &major, &minor);
  17.   /* Be careful not to call glXQueryExtensionsString if it
  18.      looks like the server doesn't support GLX 1.1.
  19.      Unfortunately, the original GLX 1.0 didn't have the notion
  20.      of GLX extensions. */
  21.   if ((major == 1 && minor >= 1) || (major > 1)) {
  22.     if (!extensions)
  23.       extensions = glXQueryExtensionsString(__glutDisplay, __glutScreen);
  24.     /* It takes a bit of care to be fool-proof about parsing
  25.        the GLX extensions string.  Don't be fooled by
  26.        sub-strings,  etc. */
  27.     start = extensions;
  28.     for (;;) {
  29.       where = strstr(start, extension);
  30.       if (!where)
  31.         return 0;
  32.       terminator = where + strlen(extension);
  33.       if (where == start || *(where - 1) == ' ') {
  34.         if (*terminator == ' ' || *terminator == '') {
  35.           return 1;
  36.         }
  37.       }
  38.       start = terminator;
  39.     }
  40.   }
  41.   return 0;
  42. }
  43. #endif