0

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

0 回答 0