如何用最少的代码初始化一个无窗口的OpenGL上下文?
我读过here,你可以使用wglCreateContextAttribsARB来创建无窗口的上下文,但是它没有解释如何创建?
发布于 2011-08-15 16:31:39
从链接:
创建没有窗口的上下文,用于离屏渲染。这可能不会真正起作用。
第二句话很重要。从WGL_ARB_create_context specification
4)是否应该有一种方法使上下文成为当前上下文,而不同时将其绑定到可绘制的窗口系统?
已解决:可以,但仅在OpenGL 3.0及更高版本中。这会导致具有无效的默认帧缓冲区的上下文,其含义在OpenGL 3.0规范中定义。
注意:显然在Windows上,opengl32.dll使用可绘制参数来标识驱动程序的名称空间,因此我们可能无法解决这个问题。
该规范不允许您在没有窗口的情况下创建上下文,因为它需要您在设备上下文中设置的像素格式。但理论上,当将上下文设置为当前上下文时,您可以为HDC传递NULL,这会导致OpenGL没有默认的帧缓冲区。
但是,如上所述,这实际上可能不起作用。你可以试着看看会发生什么,但我不会抱太大希望。
发布于 2011-08-16 02:04:44
实现屏幕外渲染的常用方法是:
创建虚拟窗口+上下文以访问创建虚拟窗口的功能extensions
另一种方法是使用帧缓冲区对象(FBO),通过该对象创建常规OpenGL窗口,但不渲染到主帧缓冲区,而是渲染到帧缓冲区对象缓冲区,同时使OpenGL窗口不可见。
发布于 2017-04-25 23:39:36
另一件事:
HDC hdc = CreateDC(L"DISPLAY",NULL,NULL,NULL);但是ReleaseDC不能和it.DeleteDC一起工作。
https://stackoverflow.com/questions/7062804
复制相似问题