编程语言
首页 > 编程语言> > c – 如何调试OpenGL程序?

c – 如何调试OpenGL程序?

作者:互联网

在我的简单程序中调用glDrawArrays(如gdb所说)时,我试图找到导致段错误的原因.

当我直接使用OpenGl调用时,程序运行正常.
但当我把它们分成两个类(正在建设中,vao和vbo)时,程序会出现段错误.

所以,在我的包装纸中,我绝对禁用某些东西或设置一些我不应该的东西.

我的问题是,如何获得一些诊断信息来帮助我查明问题的根源?

我正在寻找类似于glGetShaderiv所做的事情,但是对于vao和vbo来说,这将告诉我,如果我有……那么错误地解除了缓冲区.

[我不是在这里发布代码,但是如果你们中的任何一个想要通过测试一个segfaulting示例来捐赠一些时间,here is a tar.gz of the source.您需要使用sfml-2.0rc,glew和gcc> = 4.6的工作库.

解决方法:

调用glVertexAttribPointer时,必须对VBO数据进行分配.但是因为你之后调用它,之前调用的glVertexAttribPointer将指示VAO指向无效位置 – 因此在绘图期间崩溃.

了解如何在注释部分中调用代码 – 首先是glBufferData,然后是glVertexAttribPointer.

标签:opengl-3,c,opengl,segmentation-fault
来源: https://codeday.me/bug/20190826/1728371.html