【发布时间】:2014-06-14 14:01:18
【问题描述】:
这很奇怪。我想在我的 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 的笔记本电脑,它们都能够使用着色器。 我以正确的顺序(一开始是 glew)包含了所有必要的标题(gl、glut 和 glew),并链接到所有相应的库(以正确的顺序)。 (这不是我第一次使用 OpenGL 和 GLSL)。
我还尝试了软件中心的其他 OpenGL 游戏,它们都可以正常工作。所以驱动程序应该可以正常工作。
(您可能已经猜到了)我正在使用 freeglut、GL 扩展牧马人、Ubuntu 14.04、代码块和 g++。
可能是什么问题?我应该在哪里搜索这个错误?
提前致谢。
【问题讨论】:
-
在您拥有活动的 GLX 上下文之前,您无法查询这些字符串;)