OpenGL调试或详细信息到控制台

Sol*_*olx 5 opengl

是否有某种调试模式可以在将信息输出到控制台的地方运行OpenGL?我有一个应用程序在许多机器上工作正常,但它真的很重要的一台机器失败.我没有直接访问该机器,所以我试图弄清楚它是如何失败的.目前我在控制台中看不到任何输出.请注意,该应用程序最初是一个没有控制台的Windows应用程序,我通过项目属性将其切换到控制台.此外,如果重要的是一些物体不显示而另一些物体被卡住并且没有动画 - 这对我没有任何意义.

Ant*_*eru 7

不,不是真的.如果你真的想要一些详细的输出,你将不得不为OpenGL编写一个钩子并记录它所做的所有调用(这就是像gDEBugger这样的工具),但这需要相当多的工作(你可以使用像GLIntercept这样的东西.根据个人经验:最简单的可能是访问有问题的机器并在那里运行gDEBugger ...或者获得一台等效的机器,以便您可以使用附加的图形调试器重现错误.

或者,您可以尝试使用ARB_debug_output扩展 - 理论上 - 应该为您提供更多输出.实际上,你得到的只是glGetError每次OpenGL API调用后的调用,这对你的用例来说可能已经足够了(即你只是做了一些破坏GL状态的东西.)为了使用调试输出扩展,你必须修改你的应用程序来创建调试上下文.