aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickwindowmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/items/qquickwindowmanager.cpp')
-rw-r--r--src/quick/items/qquickwindowmanager.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/quick/items/qquickwindowmanager.cpp b/src/quick/items/qquickwindowmanager.cpp
index 6596343bc8..dd27182ffe 100644
--- a/src/quick/items/qquickwindowmanager.cpp
+++ b/src/quick/items/qquickwindowmanager.cpp
@@ -74,6 +74,8 @@ extern Q_GUI_EXPORT QImage qt_gl_read_framebuffer(const QSize &size, bool alpha_
DEFINE_BOOL_CONFIG_OPTION(qmlNoThreadedRenderer, QML_BAD_GUI_RENDER_LOOP);
DEFINE_BOOL_CONFIG_OPTION(qmlForceThreadedRenderer, QML_FORCE_THREADED_RENDERER); // Might trigger graphics driver threading bugs, use at own risk
+QQuickWindowManager *QQuickWindowManager::s_instance = 0;
+
QQuickWindowManager::~QQuickWindowManager()
{
}
@@ -124,11 +126,9 @@ public:
QQuickWindowManager *QQuickWindowManager::instance()
{
- static QQuickWindowManager *theInstance;
-
- if (!theInstance) {
+ if (!s_instance) {
- theInstance = QSGContext::createWindowManager();
+ s_instance = QSGContext::createWindowManager();
bool bufferQueuing = QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::BufferQueueingOpenGL);
bool fancy = bufferQueuing
@@ -148,13 +148,19 @@ QQuickWindowManager *QQuickWindowManager::instance()
if (fixedAnimationSteps)
QUnifiedTimer::instance(true)->setConsistentTiming(true);
- if (!theInstance) {
- theInstance = fancy
+ if (!s_instance) {
+ s_instance = fancy
? (QQuickWindowManager*) new QQuickRenderThreadSingleContextWindowManager
: (QQuickWindowManager*) new QQuickTrivialWindowManager;
}
}
- return theInstance;
+ return s_instance;
+}
+
+void QQuickWindowManager::setInstance(QQuickWindowManager *instance)
+{
+ Q_ASSERT(!s_instance);
+ s_instance = instance;
}
QQuickTrivialWindowManager::QQuickTrivialWindowManager()