glut_mesa.c
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:2k
- /* Copyright (c) Mark J. Kilgard, 1996. */
- /* This program is freely distributable without licensing fees
- and is provided without guarantee or warrantee expressed or
- implied. This program is -not- in the public domain. */
- #include <stdlib.h>
- #include <string.h>
- #include "glutint.h"
- int __glutMesaSwapHackSupport = 0; /* Not supported until
- proven otherwise. */
- /* Use the "Mesa swap hack" if reasonable if and only if
- MESA_SWAP_HACK is set to something whose first character is
- not "N" or "n" AND "Brian Paul" is the vendor string AND
- "Mesa X11"* (or "Mesa" for backward compatibility) is the
- renderer string.
- Anyone who modifies Mesa so that glXSwapBuffers does not
- simply blit the previously rendered back buffer should
- change either their vendor or renderer string to avoid
- confusing GLUT. */
- void
- __glutDetermineMesaSwapHackSupport(void)
- {
- static int doneAlready = 0;
- char *env, *vendor, *renderer;
- if (doneAlready)
- return;
- env = getenv("MESA_SWAP_HACK");
- if (env) {
- if ((env[0] != 'n') && (env[0] != 'N')) {
- vendor = (char *) glGetString(GL_VENDOR);
- renderer = (char *) glGetString(GL_RENDERER);
- /* Old versions of X11 Mesa uses the renderer string
- "Mesa"; Brian plans to start using "Mesa X11" to
- distinguish the X version of Mesa from other flavor
- such as Windows or 3Dfx. */
- #define MESA_X11 "Mesa X11"
- /* XXX At some point in the future, eliminate the
- backward compatibility for the old "Mesa" renderer
- string. */
- if (!strcmp(vendor, "Brian Paul") && (!strcmp(renderer, "Mesa") ||
- !strncmp(renderer, MESA_X11, sizeof(MESA_X11) - 1)))
- __glutMesaSwapHackSupport = 1;
- }
- }
- doneAlready = 1;
- }