当我尝试链接片段着色器时,我收到以下错误
QGLShader :: compile(Fragment):0(4):error 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()
答案 0 :(得分:1)
addShaderFromSourceCode的第二个参数(,代码)
您必须提供文件内容而不是文件本身的名称 在这里,您可以将此代码放在一个函数中,并使用它来加载文件