GLSL空白屏幕

时间:2013-05-05 04:42:00

标签: opengl glsl

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

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

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

frgment shader出现此错误:

错误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;
} 

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

0 个答案:

没有答案