Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL着色器信息结果错误_Opengl_Shader - Fatal编程技术网

OpenGL着色器信息结果错误

OpenGL着色器信息结果错误,opengl,shader,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 vInfoLogMessa

我在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上有时会出现bug,但我没有使用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;
}

编译结果告诉您什么?它返回为成功(1),但我根本不了解有关infoLog的任何信息,也不了解长度(始终返回0),也不了解消息(从不填充字符数组)。从我看到的一些教程中,它应该也会返回成功的消息。当出现错误时,它是否会返回非零长度?您的驱动程序可能对有效的着色器没有任何说明。当我出错时,它返回0,然后InfoLength被正确修复!我原以为它应该一直归还一些东西,这让我很烦!谢谢