OpenGL着色器信息结果错误

时间:2013-03-18 16:53:50

标签: opengl shader

我在Windows 7上使用glew,当我打电话时:

int compileResult = 0;
int infoLogLength = 0;
//compile code
glGetShaderiv(_vertexShaderID, GL_COMPILE_STATUS, &compileResult);
glGetShaderiv(_vertexShaderID, GL_INFO_LOG_LENGTH, &infoLogLength);
GLchar vInfoLogMessage[512];
glGetShaderInfoLog(_vertexShaderID, infoLogLength, NULL, vInfoLogMessage);

我不得不对512进行硬编码,因为 infoLogLength 总是返回0.我搜索了它,发现有时会出现Android上的错误,但我没有使用Android SDK / NDK ... 即便如此, vInfoLogMessage 根本没有填充信息,无论是成功还是失败。

然而,

compileResult 显示为成功编译,但我希望能够在失败时获取信息。

导致这种情况的原因是什么?

编辑程序链接会返回错误,但我无法得到它,因为它没有填写infoLogMessage ... 这是我的一个错误,它也恢复了成功。

着色器的代码(如果相关)是:

//fragmentShader
#version 330 core
out vec3 color;
void main()
{
    color = vec3(1, 0, 0);
}

//vertexShader
#version 330 core
layout(location = 0) in vec3 vertexPosition_modelspace;
void main()
{
    gl_Position.xyz = vertexPosition_modelspace;
    gl_Position.w = 1.0;
}

0 个答案:

没有答案