有时候我需要获取OpenGL帧缓冲对象,但我并不想打开任何类型的窗口。
是否可以创建一个OpenGL上下文而不将它附加到任何类型的窗口?
有时候我需要获取OpenGL帧缓冲对象,但我并不想打开任何类型的窗口。
是否可以创建一个OpenGL上下文而不将它附加到任何类型的窗口?
是的!你可以使用桌面窗口作为OpenGL传递的窗口,只要你不试图在其上显示任何内容 ;)
只需调用GetDesktopWindow并将结果作为参数传递给创建新的OpenGL窗口。
WGL_ARB_create_context
创建一个没有窗口的上下文。 我自己还没有实际尝试过。我使用freeGLUT创建上下文,然后在帧缓冲器+渲染缓冲器中进行离屏渲染。我退出程序而没有调用glutMainLoop。虽然有点笨拙,但对我的目的来说它起作用了。
是的,您可以使用OpenGL进行离屏渲染,但确切的设置方式取决于操作系统。 最接近独立于操作系统的方法是使用Mesa 3D,但这样您的离屏渲染将不会获得硬件加速。