C++ 中 OpenGL 顶点着色器的语法错误? [关闭]

问题描述 投票:0回答:0

这是我的顶点着色器来源:

#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);
c++ opengl glfw
© www.soinside.com 2019 - 2024. All rights reserved.