summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/opengl/qgl.cpp2
-rw-r--r--src/opengl/qgl_p.h1
-rw-r--r--tests/auto/qgl/tst_qgl.cpp5
3 files changed, 7 insertions, 1 deletions
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index 8063fc8..f8a2ea4 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -3030,7 +3030,7 @@ void QGLContext::setValid(bool valid)
bool QGLContext::isSharing() const
{
Q_D(const QGLContext);
- return d->sharing;
+ return d->group->isSharing();
}
QGLFormat QGLContext::format() const
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index 9a17c67..45b2942 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -233,6 +233,7 @@ public:
QGLExtensionFuncs &extensionFuncs() {return m_extensionFuncs;}
const QGLContext *context() const {return m_context;}
+ bool isSharing() const { return m_shares.size() >= 2; }
void addGuard(QGLSharedResourceGuard *guard);
void removeGuard(QGLSharedResourceGuard *guard);
diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp
index ccb08c3..5dc072d 100644
--- a/tests/auto/qgl/tst_qgl.cpp
+++ b/tests/auto/qgl/tst_qgl.cpp
@@ -1842,6 +1842,7 @@ void tst_QGL::shareRegister()
QVERIFY(qt_shared_test()->value(glw1->context()) == res1);
// Create another context that shares with the first.
+ QVERIFY(!glw1->isSharing());
QGLWidget *glw2 = new QGLWidget(0, glw1);
if (!glw2->isSharing()) {
delete glw2;
@@ -1880,6 +1881,7 @@ void tst_QGL::shareRegister()
// Create a third context, not sharing with the others.
QGLWidget *glw3 = new QGLWidget();
+ QVERIFY(!glw3->isSharing());
// Create a guard on the standalone context.
QGLSharedResourceGuard guard3(glw3->context());
@@ -1928,6 +1930,9 @@ void tst_QGL::shareRegister()
// Delete the first context.
delete glw1;
+ // The second context should no longer register as sharing.
+ QVERIFY(!glw2->isSharing());
+
// The first context's resource should transfer to the second context.
QCOMPARE(tst_QGLResource::deletions, 0);
QVERIFY(qt_shared_test()->value(glw2->context()) == res1);