我正在尝试使用 ARB_debug_output 扩展,但我无法从中获得任何输出(故意不正确的着色器不会导致调试输出)。我猜我在使用扩展时犯了一个错误。
我已经使用启用调试设置了我的上下文;
ContextAttribs contextAtrributes = new ContextAttribs(3, 2) // Core OpenGL version 3.2
.withForwardCompatible(true)
.withProfileCore(true)
.withDebug(true);
我使用以下方法检查调试输出扩展;
ContextCapabilities caps = GLContext.getCapabilities();
if ( caps.OpenGL32 )
System.out.println("OpenGL version 3.2 supported");
if ( caps.GL_ARB_debug_output )
System.out.println("ARB_debug_output extension supported");
给出以下输出;
OpenGL version 3.2 supported
ARB_debug_output extension supported
我设置了一个回调函数来打印调试输出;
new ARBDebugOutputCallback();
在此之后,我使用不正确/错误的着色器等运行我的程序,这些着色器使用 glGetShaderInfoLog 和 glGetError 产生编译器/链接器错误,但我没有从回调函数接收调试信息。