summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/kernel/qopenglcontext.cpp20
-rw-r--r--src/gui/kernel/qopenglcontext_p.h3
2 files changed, 23 insertions, 0 deletions
diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp
index e258218e85..55fe036fe0 100644
--- a/src/gui/kernel/qopenglcontext.cpp
+++ b/src/gui/kernel/qopenglcontext.cpp
@@ -230,6 +230,7 @@ public:
};
static QThreadStorage<QGuiGLThreadContext *> qwindow_context_storage;
+static QOpenGLContext *global_share_context = 0;
#ifndef QT_NO_DEBUG
QHash<QOpenGLContext *, bool> QOpenGLContextPrivate::makeCurrentTracker;
@@ -330,6 +331,25 @@ QOpenGLContext *QOpenGLContextPrivate::setCurrentContext(QOpenGLContext *context
return previous;
}
+/*!
+ \internal
+
+ This function is used by the Qt WebEngine to set up context sharing
+ across multiple windows. Do not use it for any other purpose.
+*/
+void QOpenGLContextPrivate::setGlobalShareContext(QOpenGLContext *context)
+{
+ global_share_context = context;
+}
+
+/*!
+ \internal
+*/
+QOpenGLContext *QOpenGLContextPrivate::globalShareContext()
+{
+ return global_share_context;
+}
+
int QOpenGLContextPrivate::maxTextureSize()
{
if (max_texture_size != -1)
diff --git a/src/gui/kernel/qopenglcontext_p.h b/src/gui/kernel/qopenglcontext_p.h
index 23c13b2e24..b21ff67068 100644
--- a/src/gui/kernel/qopenglcontext_p.h
+++ b/src/gui/kernel/qopenglcontext_p.h
@@ -244,6 +244,9 @@ public:
static QOpenGLContext *setCurrentContext(QOpenGLContext *context);
+ static void setGlobalShareContext(QOpenGLContext *context);
+ static QOpenGLContext *globalShareContext();
+
int maxTextureSize();
static QOpenGLContextPrivate *get(QOpenGLContext *context)