[CoreSupport] For OpenGL 3.0 onwards use glGetStringi rather than glGetString(GL_EXTENSIONS)

This commit is contained in:
Nigel Stewart 2015-02-21 19:42:42 +10:00
parent 731b1e6602
commit c996c06b27
1 changed files with 24 additions and 1 deletions

View File

@ -117,7 +117,30 @@ GLenum GLEWAPIENTRY glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST)
if (GLEW_VERSION_3_0) if (GLEW_VERSION_3_0)
{ {
/* TODO */ GLint n = 0;
GLint i;
PFNGLGETSTRINGIPROC getStringi;
const char *ext;
glGetIntegerv(GL_NUM_EXTENSIONS, &n);
/* glGetStringi is OpenGL 3.0 */
getStringi = (PFNGLGETSTRINGIPROC) glewGetProcAddress((const GLubyte*)"glGetStringi");
if (glGetStringi)
for (i = 0; i<n; ++i)
{
ext = (const char *) getStringi(GL_EXTENSIONS, i);
/* Based on extension string(s), glewGetExtension purposes */
enable = _glewGetExtensionString(ext);
if (enable)
*enable = GL_TRUE;
/* Based on extension string(s), experimental mode, glewIsSupported purposes */
enable = _glewGetExtensionEnable(ext);
if (enable)
*enable = GL_TRUE;
}
} }
else else
{ {