3

我的 GLSL 着色器程序有一个空白窗口(白色)。我的程序编译良好,警告级别为 4。我得到的唯一错误来自着色器:

两个着色器(顶点和片段)都收到此错误:

警告:0:?: ' : OGL 3.0 前向兼容上下文驱动程序中不推荐使用的版本号

片段着色器收到此错误:

错误 0:1:'':语法错误:#version 是强制性的,应在任何其他标记之前设置

我正在使用 GLEW 运行 opengl 4.0 并拥有 intel HD 4000 显卡。

顶点着色器:

#version 400

layout (std140) uniform Matrices {
    mat4 pvm;
} ;

in vec4 position;

out vec4 color;

void main()
{
    gl_Position = pvm * position ;
} 

片段着色器

#version 330

out vec4 outputF;

void main()
{
    outputF = vec4(1.0, 0.0, 0.0, 1.0);
}

文件读取方法:

static char* textFileRead(const char *fileName) {
    char* text;

    if (fileName != NULL) {
        FILE *file = fopen(fileName, "rt");

        if (file != NULL) {
            fseek(file, 0, SEEK_END);
            int count = ftell(file);
            rewind(file);

            if (count > 0) {
                text = (char*)malloc(sizeof(char) * (count + 1));
                count = fread(text, sizeof(char), count, file);
                text[count] = '\0';
            }
            fclose(file);
        }
    }
    return text;
} 

我尝试了不同的着色器,删除版本号和更改版本号。

4

0 回答 0