3

我正在尝试运行一个不需要窗口的 OpenGL 程序,该程序会创建一个文件。这是在 debian xfce 上完成的,到目前为止一切顺利。

然后我尝试使用 ssh 从另一台计算机运行程序,如果 xfce 使用监视器打开,我可以使用 DISPLAY=:0 编译和运行程序(因此 glut 会打开一毫秒然后关闭)。

问题是当我重新启动并断开监视器时,xfce 不会启动 GUI,并且 glut 也不会启动。

VirtualGL 不是我想要的,隐藏窗口不是我想要的,我想在没有 X GUI 的情况下从终端运行 OpenGL 程序。或者能够强制 xfce 引导 GUI 并使其在 GUI 中登录,这样我就可以启动 glut。

一个小例子会很好。

4

1 回答 1

1

使用当前的驱动程序模型,您想要以可靠的方式完成它是不可能的。到目前为止,Linux 上存在的所有 OpenGL 实现都绝对需要某种类型的窗口(可以是不可见的、隐藏的 1×1 像素小窗口)来创建 OpenGL 上下文。

请注意,在不久的将来,随着 Wayland 和更大的基于 EGL 的引入,OpenGL 基础架构即将发生变化。但我们还没有。

此外,如果您可以忍受缓慢的软件实现,Mesa 有一个名为“OSMesa”的 Sidekick 库,它为您提供渲染到程序提供的内存区域的 OpenGL 上下文。但 OSMesa 不会使用任何类型的 GPU 加速。

于 2014-10-10T08:32:50.577 回答