在 Linux 中创建"virtual" OpenGL 上下文

Create "virtual" OpenGL context in linux

本文关键字:virtual 上下文 OpenGL 创建 Linux      更新时间:2023-10-16

我如何在我的程序(c++)中创建一个OpenGL上下文,这将纯粹在内部使用?也就是说,它将渲染一个场景,然后我将抓取像素数据用于程序的其余部分(保存到图像是一个足够接近的类比-我对framebuffer的东西很满意,我只需要创建上下文)。

我根本不需要一个窗口,这只需要在Unix上工作(特别是OSX和Ubuntu,如果每个解决方案不同,那么Ubuntu更重要)。如果可以的话,我不想使用GLUT或类似的

OSMesa(http://www.mesa3d.org/osmesa.html)可能符合您的需求

我根本不需要一个窗口

如果你想让它在Linux上的所有gpu和安装上工作,你将不得不使用X服务器(直到屏幕外EGL支持被广泛使用,但到目前为止NVidia告诉他们不会支持它)。您可以使用GLX PBuffer或未映射(=不可见)窗口。X服务器必须是活动的,即不被分离或在非活动的VT上,以便它实际使用GPU。

只需要在Unix(特别是OSX和Ubuntu)上工作

OpenGL在Linux和MacOS X上的实现方式非常非常不同!