summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/platforms/cocoa/qcocoanativeinterface.h1
-rw-r--r--src/plugins/platforms/cocoa/qcocoanativeinterface.mm15
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;