diff options
-rw-r--r-- | src/gui/kernel/qopenglcontext.cpp | 25 | ||||
-rw-r--r-- | src/gui/kernel/qopenglcontext.h | 1 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp index b52fcfe796..90c54c4039 100644 --- a/src/gui/kernel/qopenglcontext.cpp +++ b/src/gui/kernel/qopenglcontext.cpp @@ -1205,6 +1205,31 @@ bool QOpenGLContext::supportsThreadedOpenGL() } /*! + \since 5.5 + + Returns the application-wide shared OpenGL context, if present. + Otherwise, returns a null pointer. + + This is useful if you need to upload OpenGL objects (buffers, textures, + etc.) before creating or showing a QOpenGLWidget or QQuickWidget. + + \note You must set the Qt::AA_ShareOpenGLContexts flag on QGuiApplication + before creating the QGuiApplication object, otherwise Qt may not create a + global shared context. + + \warning Do not attempt to make the context returned by this function + current on any surface. Instead, you can create a new context which shares + with the global one, and then make the new context current. + + \sa Qt::AA_ShareOpenGLContexts, setShareContext(), makeCurrent() +*/ +QOpenGLContext *QOpenGLContext::globalShareContext() +{ + Q_ASSERT(qGuiApp); + return qt_gl_global_share_context(); +} + +/*! \internal */ QOpenGLVersionFunctionsBackend *QOpenGLContext::functionsBackend(const QOpenGLVersionStatus &v) const diff --git a/src/gui/kernel/qopenglcontext.h b/src/gui/kernel/qopenglcontext.h index 4d5ee08a1b..30a9bc3ad9 100644 --- a/src/gui/kernel/qopenglcontext.h +++ b/src/gui/kernel/qopenglcontext.h @@ -199,6 +199,7 @@ public: bool isOpenGLES() const; static bool supportsThreadedOpenGL(); + static QOpenGLContext *globalShareContext(); Q_SIGNALS: void aboutToBeDestroyed(); |