glXSwapIntervalSGI segfault



我正在尝试在围绕SDL和openGL构建的程序中禁用Linux上的垂直同步。我正在运行一个旧的集成ATI卡,以镓0.4为驱动程序。

我尝试通过在代码中调用 glXSwapInterval(0) 来禁用 vsync,但是当我这样做时,尽管程序编译正常,但在尝试运行它时出现段错误。

GDB 给了我一个相当无益的消息:

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()

有没有人知道可能会发生什么?

glXSwapIntervalEXT 和 glXSwapIntervalSGI 是扩展函数;您通常通过glXGetProcAddress访问扩展的函数地址,尽管某些 libGL.so 可能会直接导出它们。

最简单的解决方案:获取一个OpenGL扩展加载程序库,如GLEW(它在所有主要Linux发行版的软件包存储库中)。将出现的所有#include <GL/gl.h>替换为 #include <GL/glew.h>,将#include <GL/glx.h>替换为 #include <GL/glxew.h> ,将 libGLEW.so 添加到链接库列表中,并在创建和绑定 OpenGL 上下文后立即调用glewInit()然后测试扩展是否真的可用!

相关内容

  • 没有找到相关文章

最新更新