我的 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;
}
我尝试了不同的着色器,删除版本号和更改版本号。