【发布时间】:2014-11-09 08:36:35
【问题描述】:
我有一个无法编译的着色器。我想打印它的信息日志,但只得到“?”符号而不是日志。这是打印代码:
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 语言有误。
【问题讨论】:
-
已解决。当我应该调用 glGetProgramInfoLog 时,我也在为 GL_LINK_STATUS 调用 glGetShaderInfoLog。