我有一个不能编译的着色器。我想打印其信息日志,但只能获得"?"符号而不是日志。这是打印代码:
GLint shaderCompiled = GL_FALSE;
glGetShaderiv( shader, GL_COMPILE_STATUS, &shaderCompiled );
if (shaderCompiled != GL_TRUE)
{
char[1000] errorLog;
auto info = errorLog.ptr;
glGetShaderInfoLog( shader, 1000, null, info );
writeln( errorLog );
}
我使用Nvidia GT 750M在OS X Mavericks上使用DerelictSDL2和OpenGL 3.3。我可以在相同的设置上打印用C ++编写的程序中的信息日志,这样我可能会错误地使用D语言。
答案 0 :(得分:1)
解决。当我应该调用glGetProgramInfoLog时,我也在为GL_LINK_STATUS调用glGetShaderInfoLog。