在 Linux 中创建"virtual" OpenGL 上下文
Create "virtual" OpenGL context in linux
我如何在我的程序(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上的实现方式非常非常不同!
相关文章:
- #为""定义宏;静态";针对不同的上下文
- 与互斥锁相比,旋转锁可以保证上下文切换
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 为什么在逗号分隔符上下文中将预增量的结果强制转换为void
- 错误"Could not find Boost"(缺少:上下文标头)
- 使用 mod_gsoap 部署服务时,如何在 Gsoap 中更改 soap 上下文的模式?
- 当我从下面的代码中删除关键字 virtual 时,它可以正常工作,否则会出现错误。在这里"virtual"字的意义是什么?
- 将有状态的 lambda 传递到 C 样式函数中,而无需上下文参数
- 安排带有上下文的协同程序
- 我的文件无法正常工作,无法从C++文件中读取上下文
- DCMTK 了解"DIMSE 没有有效的演示上下文 ID"错误
- 具有std::initializer_list参数的非成员函数(/non构造函数上下文)的重载解析
- antlr 规则上下文是否可以独立于目标
- OpenGL 调试上下文警告 -"将使用视频内存作为缓冲区异议的来源
- MSVC 在不知道类型的情况下评估上下文(和错误)
- 为什么 Perf 具有如此高的上下文切换?
- 在 Linux 中创建"virtual" OpenGL 上下文