如何检测是否需要间接GLX但已禁用?

问题描述 投票:0回答:1

几年来,默认情况下xorg和其他X Server中都禁用了间接GLX(IGLX)。我正在编写一个将使用OpenGL(如果可用)的应用程序,但是如果没有的话,可以使用其他图形。除了尝试并响应错误之外,是否有标准的方法可以检测到它将会失败?

我目前的测试(大约20年前编写)仅检查XOpenDisplayglXQueryExtension是否起作用,但这还不够:稍后调用glXCreateContext和其他函数时,操作将失败。

我不希望尝试打开一个窗口并检查是否成功,因为在我要进行测试时,我不知道用户是否需要一个。我的首选是在启动时进行不可见的测试,以便可以警告用户他们将使用备用图形方法。

opengl x11 glx
1个回答
0
投票

使用GLX创建OpenGL上下文不需要窗口。 Neiter glxCreateContextglxCreateNewContext都采用可绘制的参数。即使这样做,您也可以创建一个窗口而无需映射它,即使其可见,甚至从窗口管理器中触发某些操作。

因此,要进行测试,只需创建一个探测上下文,看看它如何进行,并做出相应的反应。

© www.soinside.com 2019 - 2024. All rights reserved.