// 05/10/2010 Modified by BenXYZ from the GLEW project, see copyright: http://glew.sourceforge.net/credits.html GLboolean glewGetExtension (const char* name) { GLubyte* p; GLubyte* end; GLuint len = _glewStrLen((const GLubyte*)name); p = (GLubyte*)glGetString(GL_EXTENSIONS); //if glGetString() failed, attempt glGetStringi() if (0 == p) { GLint numextns; glGetIntegerv(GL_NUM_EXTENSIONS, &numextns); GLuint iii; for (iii = 0; iii < numextns; iii++) { p = glGetStringi(GL_EXTENSIONS, iii); if (_glewStrSame((const GLubyte*)name, p, _glewStrLen(p))) return GL_TRUE; } return GL_FALSE; } //...or if glGetString() worked, carry on as usual end = p + _glewStrLen(p); while (p < end) { GLuint n = _glewStrCLen(p, ' '); if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE; p += n+1; } return GL_FALSE; }