diff options
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoanativeinterface.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoanativeinterface.mm | 15 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.h b/src/plugins/platforms/cocoa/qcocoanativeinterface.h index e4b52b9454..70ec497309 100644 --- a/src/plugins/platforms/cocoa/qcocoanativeinterface.h +++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.h @@ -60,6 +60,7 @@ public: void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window); static void *cglContextForContext(QOpenGLContext *context); + static void *nsOpenGLContextForContext(QOpenGLContext* context); public Q_SLOTS: void onAppFocusWindowChanged(QWindow *window); diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm index 7f37b971d7..f0b1bd330a 100644 --- a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm +++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm @@ -69,7 +69,8 @@ void *QCocoaNativeInterface::nativeResourceForContext(const QByteArray &resource { if (!context) return 0; - + if (resourceString.toLower() == "nsopenglcontext") + return nsOpenGLContextForContext(context); if (resourceString.toLower() == "cglcontextobj") return cglContextForContext(context); @@ -122,12 +123,18 @@ void QCocoaNativeInterface::onAppFocusWindowChanged(QWindow *window) void *QCocoaNativeInterface::cglContextForContext(QOpenGLContext* context) { + NSOpenGLContext *nsOpenGLContext = static_cast<NSOpenGLContext*>(nsOpenGLContextForContext(context)); + if (nsOpenGLContext) + return [nsOpenGLContext CGLContextObj]; + return 0; +} + +void *QCocoaNativeInterface::nsOpenGLContextForContext(QOpenGLContext* context) +{ if (context) { QCocoaGLContext *cocoaGLContext = static_cast<QCocoaGLContext *>(context->handle()); if (cocoaGLContext) { - NSOpenGLContext *nsOpenGLContext = cocoaGLContext->nsOpenGLContext(); - if (nsOpenGLContext) - return [nsOpenGLContext CGLContextObj]; + return cocoaGLContext->nsOpenGLContext(); } } return 0; |