⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glut_ext.c

📁 mesa-6.5-minigui源码
💻 C
字号:
/* Copyright (c) Mark J. Kilgard, 1994, 1997. *//* 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"/* CENTRY */int GLUTAPIENTRY glutExtensionSupported(const char *extension){  static const GLubyte *extensions = NULL;  const GLubyte *start;  GLubyte *where, *terminator;  /* Extension names should not have spaces. */  where = (GLubyte *) strchr(extension, ' ');  if (where || *extension == '\0')    return 0;  if (!extensions) {    extensions = glGetString(GL_EXTENSIONS);  }  /* It takes a bit of care to be fool-proof about parsing the     OpenGL extensions string.  Don't be fooled by sub-strings,     etc. */  start = extensions;  for (;;) {    /* If your application crashes in the strstr routine below,       you are probably calling glutExtensionSupported without       having a current window.  Calling glGetString without       a current OpenGL context has unpredictable results.       Please fix your program. */    where = (GLubyte *) strstr((const char *) start, extension);    if (!where)      break;    terminator = where + strlen(extension);    if (where == start || *(where - 1) == ' ') {      if (*terminator == ' ' || *terminator == '\0') {        return 1;      }    }    start = terminator;  }  return 0;}struct name_address_pair {   const char *name;   const GLUTproc address;};static struct name_address_pair glut_functions[] = {   { "glutInit", (const GLUTproc) glutInit },   { "glutInitDisplayMode", (const GLUTproc) glutInitDisplayMode },   { "glutInitDisplayString", (const GLUTproc) glutInitDisplayString },   { "glutInitWindowPosition", (const GLUTproc) glutInitWindowPosition },   { "glutInitWindowSize", (const GLUTproc) glutInitWindowSize },   { "glutMainLoop", (const GLUTproc) glutMainLoop },   { "glutCreateWindow", (const GLUTproc) glutCreateWindow },   { "glutCreateSubWindow", (const GLUTproc) glutCreateSubWindow },   { "glutDestroyWindow", (const GLUTproc) glutDestroyWindow },   { "glutPostRedisplay", (const GLUTproc) glutPostRedisplay },   { "glutPostWindowRedisplay", (const GLUTproc) glutPostWindowRedisplay },   { "glutSwapBuffers", (const GLUTproc) glutSwapBuffers },   { "glutGetWindow", (const GLUTproc) glutGetWindow },   { "glutSetWindow", (const GLUTproc) glutSetWindow },   { "glutSetWindowTitle", (const GLUTproc) glutSetWindowTitle },   { "glutSetIconTitle", (const GLUTproc) glutSetIconTitle },   { "glutPositionWindow", (const GLUTproc) glutPositionWindow },   { "glutReshapeWindow", (const GLUTproc) glutReshapeWindow },   { "glutPopWindow", (const GLUTproc) glutPopWindow },   { "glutPushWindow", (const GLUTproc) glutPushWindow },   { "glutIconifyWindow", (const GLUTproc) glutIconifyWindow },   { "glutShowWindow", (const GLUTproc) glutShowWindow },   { "glutHideWindow", (const GLUTproc) glutHideWindow },   { "glutFullScreen", (const GLUTproc) glutFullScreen },   { "glutSetCursor", (const GLUTproc) glutSetCursor },   { "glutWarpPointer", (const GLUTproc) glutWarpPointer },   { "glutEstablishOverlay", (const GLUTproc) glutEstablishOverlay },   { "glutRemoveOverlay", (const GLUTproc) glutRemoveOverlay },   { "glutUseLayer", (const GLUTproc) glutUseLayer },   { "glutPostOverlayRedisplay", (const GLUTproc) glutPostOverlayRedisplay },   { "glutPostWindowOverlayRedisplay", (const GLUTproc) glutPostWindowOverlayRedisplay },   { "glutShowOverlay", (const GLUTproc) glutShowOverlay },   { "glutHideOverlay", (const GLUTproc) glutHideOverlay },   { "glutCreateMenu", (const GLUTproc) glutCreateMenu },   { "glutDestroyMenu", (const GLUTproc) glutDestroyMenu },   { "glutGetMenu", (const GLUTproc) glutGetMenu },   { "glutSetMenu", (const GLUTproc) glutSetMenu },   { "glutAddMenuEntry", (const GLUTproc) glutAddMenuEntry },   { "glutAddSubMenu", (const GLUTproc) glutAddSubMenu },   { "glutChangeToMenuEntry", (const GLUTproc) glutChangeToMenuEntry },   { "glutChangeToSubMenu", (const GLUTproc) glutChangeToSubMenu },   { "glutRemoveMenuItem", (const GLUTproc) glutRemoveMenuItem },   { "glutAttachMenu", (const GLUTproc) glutAttachMenu },   { "glutDetachMenu", (const GLUTproc) glutDetachMenu },   { "glutDisplayFunc", (const GLUTproc) glutDisplayFunc },   { "glutReshapeFunc", (const GLUTproc) glutReshapeFunc },   { "glutKeyboardFunc", (const GLUTproc) glutKeyboardFunc },   { "glutMouseFunc", (const GLUTproc) glutMouseFunc },   { "glutMotionFunc", (const GLUTproc) glutMotionFunc },   { "glutPassiveMotionFunc", (const GLUTproc) glutPassiveMotionFunc },   { "glutEntryFunc", (const GLUTproc) glutEntryFunc },   { "glutVisibilityFunc", (const GLUTproc) glutVisibilityFunc },   { "glutIdleFunc", (const GLUTproc) glutIdleFunc },   { "glutTimerFunc", (const GLUTproc) glutTimerFunc },   { "glutMenuStateFunc", (const GLUTproc) glutMenuStateFunc },   { "glutSpecialFunc", (const GLUTproc) glutSpecialFunc },   { "glutSpaceballMotionFunc", (const GLUTproc) glutSpaceballMotionFunc },   { "glutSpaceballRotateFunc", (const GLUTproc) glutSpaceballRotateFunc },   { "glutSpaceballButtonFunc", (const GLUTproc) glutSpaceballButtonFunc },   { "glutButtonBoxFunc", (const GLUTproc) glutButtonBoxFunc },   { "glutDialsFunc", (const GLUTproc) glutDialsFunc },   { "glutTabletMotionFunc", (const GLUTproc) glutTabletMotionFunc },   { "glutTabletButtonFunc", (const GLUTproc) glutTabletButtonFunc },   { "glutMenuStatusFunc", (const GLUTproc) glutMenuStatusFunc },   { "glutOverlayDisplayFunc", (const GLUTproc) glutOverlayDisplayFunc },   { "glutWindowStatusFunc", (const GLUTproc) glutWindowStatusFunc },   { "glutKeyboardUpFunc", (const GLUTproc) glutKeyboardUpFunc },   { "glutSpecialUpFunc", (const GLUTproc) glutSpecialUpFunc },   { "glutJoystickFunc", (const GLUTproc) glutJoystickFunc },   { "glutSetColor", (const GLUTproc) glutSetColor },   { "glutGetColor", (const GLUTproc) glutGetColor },   { "glutCopyColormap", (const GLUTproc) glutCopyColormap },   { "glutGet", (const GLUTproc) glutGet },   { "glutDeviceGet", (const GLUTproc) glutDeviceGet },   { "glutExtensionSupported", (const GLUTproc) glutExtensionSupported },   { "glutGetModifiers", (const GLUTproc) glutGetModifiers },   { "glutLayerGet", (const GLUTproc) glutLayerGet },   { "glutGetProcAddress", (const GLUTproc) glutGetProcAddress },   { "glutBitmapCharacter", (const GLUTproc) glutBitmapCharacter },   { "glutBitmapWidth", (const GLUTproc) glutBitmapWidth },   { "glutStrokeCharacter", (const GLUTproc) glutStrokeCharacter },   { "glutStrokeWidth", (const GLUTproc) glutStrokeWidth },   { "glutBitmapLength", (const GLUTproc) glutBitmapLength },   { "glutStrokeLength", (const GLUTproc) glutStrokeLength },   { "glutWireSphere", (const GLUTproc) glutWireSphere },   { "glutSolidSphere", (const GLUTproc) glutSolidSphere },   { "glutWireCone", (const GLUTproc) glutWireCone },   { "glutSolidCone", (const GLUTproc) glutSolidCone },   { "glutWireCube", (const GLUTproc) glutWireCube },   { "glutSolidCube", (const GLUTproc) glutSolidCube },   { "glutWireTorus", (const GLUTproc) glutWireTorus },   { "glutSolidTorus", (const GLUTproc) glutSolidTorus },   { "glutWireDodecahedron", (const GLUTproc) glutWireDodecahedron },   { "glutSolidDodecahedron", (const GLUTproc) glutSolidDodecahedron },   { "glutWireTeapot", (const GLUTproc) glutWireTeapot },   { "glutSolidTeapot", (const GLUTproc) glutSolidTeapot },   { "glutWireOctahedron", (const GLUTproc) glutWireOctahedron },   { "glutSolidOctahedron", (const GLUTproc) glutSolidOctahedron },   { "glutWireTetrahedron", (const GLUTproc) glutWireTetrahedron },   { "glutSolidTetrahedron", (const GLUTproc) glutSolidTetrahedron },   { "glutWireIcosahedron", (const GLUTproc) glutWireIcosahedron },   { "glutSolidIcosahedron", (const GLUTproc) glutSolidIcosahedron },   { "glutVideoResizeGet", (const GLUTproc) glutVideoResizeGet },   { "glutSetupVideoResizing", (const GLUTproc) glutSetupVideoResizing },   { "glutStopVideoResizing", (const GLUTproc) glutStopVideoResizing },   { "glutVideoResize", (const GLUTproc) glutVideoResize },   { "glutVideoPan", (const GLUTproc) glutVideoPan },   { "glutReportErrors", (const GLUTproc) glutReportErrors },   { "glutIgnoreKeyRepeat", (const GLUTproc) glutIgnoreKeyRepeat },   { "glutSetKeyRepeat", (const GLUTproc) glutSetKeyRepeat },   { "glutForceJoystickFunc", (const GLUTproc) glutForceJoystickFunc },   { "glutGameModeString", (const GLUTproc) glutGameModeString },   { "glutEnterGameMode", (const GLUTproc) glutEnterGameMode },   { "glutLeaveGameMode", (const GLUTproc) glutLeaveGameMode },   { "glutGameModeGet", (const GLUTproc) glutGameModeGet },   { NULL, NULL }};   /* XXX This isn't an official GLUT function, yet */GLUTproc GLUTAPIENTRY glutGetProcAddress(const char *procName){   /* Try GLUT functions first */   int i;   for (i = 0; glut_functions[i].name; i++) {      if (strcmp(glut_functions[i].name, procName) == 0)         return glut_functions[i].address;   }   /* Try core GL functions */#if defined(_WIN32)  return (GLUTproc) wglGetProcAddress((LPCSTR) procName);#elif defined(GLX_ARB_get_proc_address)  return (GLUTproc) glXGetProcAddressARB((const GLubyte *) procName);#else  return NULL;#endif}/* ENDCENTRY */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -