在linux中创建“虚拟”OpenGL上下文

时间:2013-04-08 13:18:16

标签: c++ macos unix opengl ubuntu

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

我根本不需要一个窗口,这只需要在Unix上运行(特别是OSX和Ubuntu,如果解决方案各不相同,那么Ubuntu更重要)。如果我能帮助它,我不想使用GLUT或类似物。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

  

我根本不需要一个窗口

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

  

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

在Linux和MacOS X中完成OpenGL的方式非常非常不同!