无法使用Linux/Mesa编译着色器



我有一个OpenGL 3.0应用程序,当它与Windows一起使用时,它可以很好地工作。我的着色器程序都是从开始的

#version 130 coren

现在,当我使用OpenGL 3.0 Mesa 18.0.5切换到linux时,编译这些着色器失败,并显示错误消息

Vertex shader failed: 0:1(10): error: illegal text following version number

这里可能有什么问题?它肯定是OpenGL 3.0应该支持GLSL 1.3——它抱怨的是什么非法文本?

#version 130 core

此版本号根本不存在。OpenGL 3.2中引入了OpenGL配置文件,如core兼容性,以及GLSL 1.50。

GLSL 1.30(来自OpenGL 3.0(的正确版本指令只是

#version 130

参见GLSL 1.30规范的"3.3预处理器"部分:

着色器应该声明它们被写入的语言版本。着色器的语言版本写入由指定

#version number

其中数字必须是语言的一个版本,遵循与上述__VERSION__相同的约定。指令#version 130在任何使用该语言1.30版本的着色器中都是必需的。任何表示编译器不支持的语言版本的数字将导致错误生成。

相关内容

  • 没有找到相关文章

最新更新