首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从QOpenGLContext获取OpenGL (WGL)上下文

从QOpenGLContext获取OpenGL (WGL)上下文
EN

Stack Overflow用户
提问于 2013-09-13 00:16:57
回答 2查看 2.6K关注 0票数 2

我正在尝试从QQuickView窗口获取OpenGL上下文(HGLRC)。我需要将它传递给非Qt库。我可以很容易地得到一个QOpenGLContext:

代码语言:javascript
复制
m_qtContext = QOpenGLContext::currentContext();

如何从Qt类获取OpenGL上下文?(QOpenGLContext)

EN

回答 2

Stack Overflow用户

发布于 2013-09-13 03:17:33

据我所知,目前还没有针对此的公共API。请注意,Qt5从API中删除了大部分本机句柄。这应该能起到作用:

代码语言:javascript
复制
QPlatformNativeInterface *iface = QGuiApplication::platformNativeInterface();
HGLRC ctx = (HGLRC)iface->nativeResourceForContext("renderingContext", context);

(不确定最后的强制转换,但看起来是正确的according to the relevant source)。

票数 3
EN

Stack Overflow用户

发布于 2013-09-13 05:33:15

如果在线程绑定上下文时调用wglGetCurrentContext (...),则可以从any框架中的WGL获取当前的OpenGL上下文。请记住,每当框架调用窗口的绘制回调/事件处理程序时,它们通常都会更改当前上下文,甚至可能在完成回调后将其设置为NULL

WGL对上下文和线程有严格的一对一映射,因此在呈现到多个窗口的单线程应用程序中,您可能必须在窗口的绘图回调/事件处理程序中调用此函数才能获得适当的句柄。

最简单地说,只要您有一个在Win32下发出GL命令的有效上下文,就可以通过调用wglGetCurrentContext (...)获得该特定上下文的句柄。

如果您的框架有一种获取本机句柄的可移植方法,那么一定要使用它。但这绝对不是你在Microsoft Windows上的唯一选择。

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

https://stackoverflow.com/questions/18769438

复制
相关文章

相似问题

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