0
我收到以下错误,当我尝试链接到我的片段着色器,QGLShaderProgram的OpenGL着色器
QGLShader ::编译(片段):0(4):错误C0000:语法错误,意外 '' ,期待在标记“::”处出现“。”。
我只是想实现一个简单的片段着色器,将颜色设置为绿色。
我的顶点着色器的代码(这是工作的)文件名shader.vert
#version 430
in layout(location=0) vec2 position;
void main()
{
gl_Position = vec4(position, 0.0, 1.0);
}
我的片段着色器的代码shader.frag
#version 430
out vec4 finalColour;
void main()
{
finalColour = vec4(0.0, 1.0, 0.0, 1.0);
}
链接的QGLShaderProgram mProgram
//Add Shaders
if (!mProgram.addShaderFromSourceFile(QGLShader::Vertex, "shader.vert")) {
error_msg("Vertex shader load failed");
}
if (!mProgram.addShaderFromSourceCode(QGLShader::Fragment, "testShader.frag")) {
error_msg("Fragment shader load failed");
}
if (!mProgram.link()) {
error_msg("Cannot link shaders");
}
mProgram.bind()
代码
对于第二个参数是要求文件名,你可以看看规范,[QGLShaderProgram :: addShaderFromSourceFile](http://doc.qt.io/qt-4.8/qglshaderprogram.html#addShaderFromSourceFile)。 shader.vert也加载正常。片段着色器不是。 –
您正在从文件 加载顶点着色器和代码中的片段着色器.. 将函数的名称..从addShaderFromSourceCode更改为addShaderFromSourceFile – mofed8461