QGLShaderProgram OpenGL 着色器
QGLShaderProgram OpenGL shaders
当我尝试 link 我的片段着色器
时出现以下错误
QGLShader::compile(Fragment): 0(4) : error C0000: syntax error, unexpected '.', expecting "::" at token "."
我只是想实现一个将颜色设置为绿色的简单片段着色器。
我的顶点着色器(正在运行)文件名的代码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);
}
linkQGLShaderProgram 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()
addShaderFromSourceCode(,code)的第二个参数
您必须提供文件的内容而不是文件本身的名称
在这里你可以把这段代码放在一个函数中并用它来加载文件
Read whole ASCII file into C++ std::string
当我尝试 link 我的片段着色器
时出现以下错误QGLShader::compile(Fragment): 0(4) : error C0000: syntax error, unexpected '.', expecting "::" at token "."
我只是想实现一个将颜色设置为绿色的简单片段着色器。
我的顶点着色器(正在运行)文件名的代码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);
}
linkQGLShaderProgram 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()
addShaderFromSourceCode(,code)的第二个参数
您必须提供文件的内容而不是文件本身的名称 在这里你可以把这段代码放在一个函数中并用它来加载文件
Read whole ASCII file into C++ std::string