偶尔我会去一些我想要获得OpenGL帧缓冲对象的地方,但我对打开任何类型的窗口都不感兴趣。
是否可以创建一个opengl上下文而不将其附加到任何类型的窗口?
答案 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,但是你的屏幕外渲染不会加速。