首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最小无窗口OpenGL上下文初始化

最小无窗口OpenGL上下文初始化
EN

Stack Overflow用户
提问于 2011-08-15 16:06:32
回答 3查看 3.9K关注 0票数 7

如何用最少的代码初始化一个无窗口的OpenGL上下文?

我读过here,你可以使用wglCreateContextAttribsARB来创建无窗口的上下文,但是它没有解释如何创建?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-15 16:31:39

从链接:

创建没有窗口的上下文,用于离屏渲染。这可能不会真正起作用。

第二句话很重要。从WGL_ARB_create_context specification

4)是否应该有一种方法使上下文成为当前上下文,而不同时将其绑定到可绘制的窗口系统?

已解决:可以,但仅在OpenGL 3.0及更高版本中。这会导致具有无效的默认帧缓冲区的上下文,其含义在OpenGL 3.0规范中定义。

注意:显然在Windows上,opengl32.dll使用可绘制参数来标识驱动程序的名称空间,因此我们可能无法解决这个问题。

该规范不允许您在没有窗口的情况下创建上下文,因为它需要您在设备上下文中设置的像素格式。但理论上,当将上下文设置为当前上下文时,您可以为HDC传递NULL,这会导致OpenGL没有默认的帧缓冲区。

但是,如上所述,这实际上可能不起作用。你可以试着看看会发生什么,但我不会抱太大希望。

票数 7
EN

Stack Overflow用户

发布于 2011-08-16 02:04:44

实现屏幕外渲染的常用方法是:

创建虚拟窗口+上下文以访问创建虚拟窗口的功能extensions

  • Obtain PBuffer

  • Destroy PBuffer

  • Create a PBuffer DC

  • 在PBuffer

  • Destroy context 上创建虚拟窗口上下文

另一种方法是使用帧缓冲区对象(FBO),通过该对象创建常规OpenGL窗口,但不渲染到主帧缓冲区,而是渲染到帧缓冲区对象缓冲区,同时使OpenGL窗口不可见。

票数 5
EN

Stack Overflow用户

发布于 2017-04-25 23:39:36

另一件事:

代码语言:javascript
复制
HDC  hdc = CreateDC(L"DISPLAY",NULL,NULL,NULL);

但是ReleaseDC不能和it.DeleteDC一起工作。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7062804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档