Должно быть ошибка в glew.h
.
Я использую вместо этого GLee, у которого нет этой проблемы.Тест GLee выглядит следующим образом:
#ifndef __glee_h_
#define __glee_h_
#ifdef __gl_h_
#error gl.h included before glee.h
#endif
#ifdef __glext_h_
#error glext.h included before glee.h
#endif
#ifdef __wglext_h_
#error wglext.h included before glee.h
#endif
#ifdef __glxext_h_
#error glxext.h included before glee.h
#endif
//...
#endif /* !defined(__glee_h_) */
Таким образом, тесты выполняются только при первом включении glee.h
.
По-видимому, неправильно делает тесты вне защитного ограждения множественного включения заголовка.1010 *
Я переключился с glew на GLee в первый раз, когда запустил трассировку OpenGL (собственно glslDevil) и увидел, что glew вызывал glGetString(GL_EXTENSIONS)
сотни раз при запуске.