Это странно. Я хотел реализовать шейдеры в моей программе gl. Но GLEW сообщает мне, что шейдеры не поддерживаются в моей системе:
//glut init and glew init ...
if (GLEW_ARB_vertex_shader && GLEW_ARB_fragment_shader)
printf("Ready for GLSL\n");
else
{
printf("Not totally ready :( \n");
printf( "VENDOR = %s\n", glGetString( GL_VENDOR ) ) ;
printf( "RENDERER = %s\n", glGetString( GL_RENDERER ) ) ;
printf( "VERSION = %s\n", glGetString( GL_VERSION ) ) ;
exit(1);
}
Также GLEW не может дать мне никакой информации о моей графической карте. Приведенный выше код производит следующее:
VENDOR = (null)
RENDERER = (null)
VERSION = (null)
Я использую ноутбук с Intel HD 3000 и выделенным Nvidia gtm 525, которые оба способны использовать шейдеры. Я включил все необходимые заголовки (gl, glut и glew) в правильном порядке (сначала glew) и связал все соответствующие библиотеки (в правильном порядке). (Это не первый раз, когда я использую OpenGL и GLSL).
Я также пробовал другие игры OpenGL из Центра программного обеспечения, и они работали. Так что драйвера должны работать нормально.
(Как вы, наверное, уже догадались) Я использую freeglut, GL extensions wrangler, Ubuntu 14.04, codeblocks и g++.
В чем может быть проблема? Где искать эту ошибку?
Заранее спасибо.