3

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

我根本不需要窗口,这只需要在 Unix 上工作(特别是 OSX 和 Ubuntu,如果每个解决方案都不同,那么 Ubuntu 更重要)。如果我能提供帮助,我不想使用 GLUT 或类似的东西。

4

2 回答 2

4

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

于 2013-04-08T13:22:50.027 回答
3

我根本不需要窗户

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

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

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

于 2013-04-08T14:55:54.563 回答