2009-02-23 80 views

回答

10

是的!您可以使用桌面窗口作为传递给OpenGL的窗口 - 只要您不尝试在其上显示任何内容;)

只需调用GetDesktopWindow并在创建新的OpenGL窗口时将结果作为参数传递。

+0

这也适用于xorg吗?尝试时似乎很好地打开了上下文,但我没有尝试打开帧缓冲区对象和渲染。 – Cheery 2009-02-23 12:50:25

+0

我知道它也适用于DirectX,但我从未尝试过使用xorg的这个技巧 – 2009-02-23 14:05:34

2

是的,您可以使用OpenGL执行离屏渲染,但设置的确切方式取决于操作系统。 最接近独立于操作系统的方式是使用Mesa 3D,但那么您的离屏渲染将不会加速。

+0

最后的评论仍然有效吗?如果我理解正确,至少在Linux上,梅萨接近专有驱动程序比较速度。 – 2016-03-15 12:23:23

5

http://www.opengl.org/wiki/Creating_an_OpenGL_Context

根据这个网页,WGL_ARB_create_context可以用来创建一个没有窗户的上下文。我没有亲自尝试过。我使用freeGLUT来创建上下文,然后在屏幕上渲染到framebuffer +渲染缓冲区。我不用调用glutMainLoop就退出程序。这是klugy,但它适用于我的目的。

相关问题