![](/img/trans.png)
[英]OpenGL blending seems to be weirdly different after switching from QGLWidget to QOpenGLWidget
[英]How to create a QGLWidget from a CGLContextObj?
我在Mac OS 10.8上使用Qt 4.8.4。
我已经有一个CGLContextObj
(在控件之外创建)。
我想从现有的CGLContextObj
(或至少与之共享)创建QGLWidget
,以便渲染在CGLContextObj
上创建的纹理。
如何创建一个QGLContext
从现有CGLContextObj
?
QGLContext::fromPlatformGLContext()
,但是这种方法仅在以QPA模式构建Qt时才可用(...但是./configure -qpa cocoa
无法构建,并且我找不到任何文档-qpa
标志的作用)。 QPA(Qt平台抽象)仍在Qt 4中进行。它已完全集成到Qt 5中 。 如果您可以选择升级到Qt 5,事情可能会更容易。
在Qt 5,您可以构建一个QCocoaGLContext
(派生类的QPlatformOpenGLContext
),并从获得QOpenGLContext
( QPlatformOpenGLContext::context()
并从获得QGLContext
( QGLContext::fromOpenGLContext(QOpenGLContext *)
这使您非常接近,但是如何从CGLContextObj
到QCocoaGLContext
?
不幸的是,我看QCocoaGLContext
从CGLContextObj
构造QCocoaGLContext
的选项。 它确实有一个NSOpenGLContext
私有数据成员,该成员在现有构造函数中初始化,因此也许您可以添加另一个构造函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.