这是我的顶点着色器来源:
#version 330 core
layout (location=0) in vec3 aPos;
layout (location=1) in vec4 aColor;
out vec4 fColor;
void main() {
fColor = aColor;
gl_Position = vec4(aPos, 1.0);
}
当我编译它时,出现以下错误:
0:1(25): preprocessor error: syntax error, unexpected '(', expecting NEWLINE
我确实没有看到错位的括号。
我试着看看是什么导致了错误,但没有任何结果。我的错误检测代码在哪里。我跟着这个example.
glGetShaderiv(vertexID, GL_COMPILE_STATUS, &isCompiled);
if (isCompiled == GL_FALSE) {
GLint maxLength = 0;
glGetShaderiv(vertexID, GL_INFO_LOG_LENGTH, &maxLength);
errorLog.clear();
errorLog.resize(maxLength);
glGetShaderInfoLog(vertexID, maxLength, &maxLength, &errorLog[0]);
printf("Vertex Shader Error:\n");
display_error_logs(errorLog);
glDeleteShader(vertexID);
return;
}
这是编译着色器的代码:
vertexID = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vertexID, 1, &vertexShaderSrc, NULL);
glCompileShader(vertexID);