Macos 如何从CGLContextObj创建QGLWidget?

Macos 如何从CGLContextObj创建QGLWidget?,macos,qt,opengl,qt4,core-graphics,Macos,Qt,Opengl,Qt4,Core Graphics,我在MacOS10.8上使用Qt4.8.4 我已经有一个CGLContextObj(在我的控制之外创建) 我想从我现有的CGLContextObj创建一个QGLWidget,或者至少与之共享一个cglwidget——这样我就可以渲染在CGLContextObj上创建的纹理 如何从现有的CGLContextObj创建QGLContext 已经试过了 我找到了,但该方法似乎只有在QPA模式下构建Qt时才可用(…但是/configure-QPA-cocoa无法构建,而且我还无法找到任何关于-QPA

我在MacOS10.8上使用Qt4.8.4

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

我想从我现有的
CGLContextObj
创建一个
QGLWidget
,或者至少与之共享一个
cglwidget
——这样我就可以渲染在
CGLContextObj
上创建的纹理

如何从现有的
CGLContextObj
创建
QGLContext


已经试过了
  • 我找到了,但该方法似乎只有在QPA模式下构建Qt时才可用(…但是
    /configure-QPA-cocoa
    无法构建,而且我还无法找到任何关于
    -QPA
    标志具体作用的文档)
在Qt 4中仍在进行中。是的。如果您可以选择升级到Qt5,事情可能会更简单

在Qt5中,您可以构造一个
qcoloagContext
(一个
QPlatformOpenGLContext
的派生类),并从中得到一个
QOpenGLContext
QPlatformOpenGLContext::context()
),从中得到一个
QGLContext
QGLContext::fromOpenGLContext(QOpenGLContext*)
)。这让您非常接近,但是如何从
CGLContextObj
QCocaglContext

不幸的是,我看不到从
CGLContextObj
构建
qcocogaglcontext
的选项。它确实有一个
NSOpenGLContext
私有数据成员,该成员在现有构造函数中初始化,因此您可以添加另一个构造函数

在Qt 4中仍在进行中。是的。如果您可以选择升级到Qt5,事情可能会更简单

在Qt5中,您可以构造一个
qcoloagContext
(一个
QPlatformOpenGLContext
的派生类),并从中得到一个
QOpenGLContext
QPlatformOpenGLContext::context()
),从中得到一个
QGLContext
QGLContext::fromOpenGLContext(QOpenGLContext*)
)。这让您非常接近,但是如何从
CGLContextObj
QCocaglContext


不幸的是,我看不到从
CGLContextObj
构建
qcocogaglcontext
的选项。它确实有一个
NSOpenGLContext
私有数据成员,该成员在现有构造函数中初始化,因此您可以添加另一个构造函数

差不多。您提到的大多数类都是私有的,因此不会通过Qt5框架API公开。我编写了一个补丁来添加公共函数
boolqopenglcontext::createWithNativeContext(void*nativeContext)
——几乎可以。您提到的大多数类都是私有的,因此不会通过Qt5框架API公开。我编写了一个补丁来添加公共函数
boolqopenglcontext::createWithNativeContext(void*nativeContext)
-