GLEW着色器似乎不受支持

时间:2014-06-14 14:01:19

标签: opengl ubuntu shader glew

这很奇怪。我想在我的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扩展争吵者,Ubuntu 14.04,代码块和g ++。

可能是什么问题?我应该在哪里搜索此错误?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您需要创建一个OpenGL上下文并使其处于活动状态。 glGetString返回空指针意味着,您没有活动的OpenGL上下文。