我在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;
}