你可以在不打开窗口的情况下创建OpenGL上下文吗?

时间:2009-02-23 08:29:55

标签: opengl

偶尔我会去一些我想要获得OpenGL帧缓冲对象的地方,但我对打开任何类型的窗口都不感兴趣。

是否可以创建一个opengl上下文而不将其附加到任何类型的窗口?

3 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:6)

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

根据此网页,WGL_ARB_create_context可用于创建没有窗口的上下文。我自己没有尝试过。我使用freeGLUT创建上下文,然后在屏幕外渲染到帧缓冲区+渲染缓冲区。我没有调用glutMainLoop就退出程序。这很麻烦,但它适用于我的目的。

答案 2 :(得分:3)

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