您可以在不打开窗口的情况下创建OpenGL上下文吗?
问题描述:
偶尔我碰到了我想获得OpenGL framebuffer对象的地方,但是我对打开任何窗口没有兴趣。您可以在不打开窗口的情况下创建OpenGL上下文吗?
是否有可能创建一个opengl上下文而不附加到任何类型的窗口?
答
是的,您可以使用OpenGL执行离屏渲染,但设置的确切方式取决于操作系统。 最接近独立于操作系统的方式是使用Mesa 3D,但那么您的离屏渲染将不会加速。
+0
最后的评论仍然有效吗?如果我理解正确,至少在Linux上,梅萨接近专有驱动程序比较速度。 – 2016-03-15 12:23:23
答
http://www.opengl.org/wiki/Creating_an_OpenGL_Context
根据这个网页,WGL_ARB_create_context
可以用来创建一个没有窗户的上下文。我没有亲自尝试过。我使用freeGLUT来创建上下文,然后在屏幕上渲染到framebuffer +渲染缓冲区。我不用调用glutMainLoop就退出程序。这是klugy,但它适用于我的目的。
这也适用于xorg吗?尝试时似乎很好地打开了上下文,但我没有尝试打开帧缓冲区对象和渲染。 – Cheery 2009-02-23 12:50:25
我知道它也适用于DirectX,但我从未尝试过使用xorg的这个技巧 – 2009-02-23 14:05:34