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

GIS编程

开发平台:

Visual C++

  1. /* Copyright (c) Mark J. Kilgard, 1996. */
  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. int __glutMesaSwapHackSupport = 0;  /* Not supported until
  9.                                        proven otherwise. */
  10. /* Use the "Mesa swap hack" if reasonable if and only if
  11.    MESA_SWAP_HACK is set to something whose first character is
  12.    not "N" or "n" AND "Brian Paul" is the vendor string AND
  13.    "Mesa X11"* (or "Mesa" for backward compatibility)  is the
  14.    renderer string.
  15.    Anyone who modifies Mesa so that glXSwapBuffers does not
  16.    simply blit the previously rendered back buffer should
  17.    change either their vendor or renderer string to avoid
  18.    confusing GLUT. */
  19. void
  20. __glutDetermineMesaSwapHackSupport(void)
  21. {
  22.   static int doneAlready = 0;
  23.   char *env, *vendor, *renderer;
  24.   if (doneAlready)
  25.     return;
  26.   env = getenv("MESA_SWAP_HACK");
  27.   if (env) {
  28.     if ((env[0] != 'n') && (env[0] != 'N')) {
  29.       vendor = (char *) glGetString(GL_VENDOR);
  30.       renderer = (char *) glGetString(GL_RENDERER);
  31.       /* Old versions of X11 Mesa uses the renderer string
  32.          "Mesa"; Brian plans to start using "Mesa X11" to
  33.          distinguish the X version of Mesa from other flavor
  34.          such as Windows or 3Dfx. */
  35. #define MESA_X11 "Mesa X11"
  36.       /* XXX At some point in the future, eliminate the
  37.          backward compatibility for the old "Mesa" renderer
  38.          string. */
  39.       if (!strcmp(vendor, "Brian Paul") && (!strcmp(renderer, "Mesa") ||
  40.           !strncmp(renderer, MESA_X11, sizeof(MESA_X11) - 1)))
  41.         __glutMesaSwapHackSupport = 1;
  42.     }
  43.   }
  44.   doneAlready = 1;
  45. }