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