2

我在 Mac OS 10.8 上使用 Qt 4.8.4。

我已经有一个CGLContextObj(在我的控制之外创建)。

我想QGLWidget从我现有的(或至少与我共享)创建一个CGLContextObj- 这样我就可以渲染在CGLContextObj.

我怎样才能QGLContext从现有的创建一个CGLContextObj


已经试过了

  • 我找到了QGLContext::fromPlatformGLContext(),但是这种方法似乎只有在 Qt 以 QPA 模式构建时才可用(......但./configure -qpa cocoa无法构建,而且我无法找到任何关于该-qpa标志的确切作用的文档)。
4

1 回答 1

4

QPA(Qt Platform Abstraction)在 Qt 4 中仍然是一项正在进行的工作。它完全集成到 Qt 5中。如果您可以选择升级到 Qt 5,事情可能会更容易。

在 Qt 5 中,您可以构造一个QCocoaGLContext(的派生类QPlatformOpenGLContext),并从中得到一个QOpenGLContextQPlatformOpenGLContext::context()),并从该得到一个QGLContextQGLContext::fromOpenGLContext(QOpenGLContext *))。这让你非常接近,但你如何从 aCGLContextObj到 a QCocoaGLContext

不幸的是,我没有看到QCocoaGLContext从 a构造 a 的选项CGLContextObj。它确实有一个NSOpenGLContext私有数据成员,它在现有构造函数中初始化,所以也许你可以添加另一个构造函数。

于 2013-05-18T23:53:38.083 回答