glxCreateContextAttribsARB 和 OpenGL 函数在 Linux 上的动态加载
Posted
技术标签:
【中文标题】glxCreateContextAttribsARB 和 OpenGL 函数在 Linux 上的动态加载【英文标题】:glxCreateContextAttribsARB and dynamic loading of OpenGL funcs on linux 【发布时间】:2014-08-12 02:03:46 【问题描述】:我需要在 linux 系统上动态加载 openGL 函数。问题是,当我尝试创建 gl 上下文时 glXCreateContextAttribsARB 失败并且程序回退到使用 OGL 1.4。它应该在 OGL 4.4 上。如果我只是使用共享库并进行常规链接,则代码可以完美运行。因此,使用我没有看到的动态加载的库存在一些问题。这些函数正在使用 dlopen/dlsym 加载,并且没有报告错误。我尝试使用 glxGetProcAddressARB 加载 glXCreateContextAttribsARB ,但没有任何区别。我难住了。有什么建议吗?
Ubuntu 12.04LTS/GLX 1.4/OGL 4.4/Nvidia 331.62
【问题讨论】:
您是否同时拥有 Mesa 库?如果是这样 - 你会在 NVidia 专有驱动程序和 Mesa 库之间发生冲突。 【参考方案1】:我发现了问题。由于某种原因,代码试图使用不兼容的视觉效果(24 位 FB 而不是 32 位)。我使 glxChooseVisual 的属性列表更符合我的要求。为什么这在某种程度上适用于共享库而不是动态库是一个谜。
【讨论】:
以上是关于glxCreateContextAttribsARB 和 OpenGL 函数在 Linux 上的动态加载的主要内容,如果未能解决你的问题,请参考以下文章