diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2020-06-22 12:26:23 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2020-06-22 16:10:36 +0200 |
commit | 38bd2bd83144e3b7e7935e3730c109358b3e5740 (patch) | |
tree | f34b84d7837a0162f134283c5b050f15ce5c8838 /src/quick | |
parent | fdba8facd0093e3dbc18eaefa08a864d15606909 (diff) |
Add test for rendercontrol + rendererinterface
Also add support for doing
QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Unknown). This
becomes relevant especially in tests, where we may request a specific
graphics API, but then want to switch back to the default behavior.
Change-Id: Ib09c411432fc37bd4d36ce55d54d20af3f83860a
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 2 | ||||
-rw-r--r-- | src/quick/scenegraph/qsgrhisupport.cpp | 17 |
2 files changed, 13 insertions, 6 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 6a032878a0..2cf3e09c5d 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -5592,7 +5592,7 @@ void QQuickWindow::setSceneGraphBackend(QSGRendererInterface::GraphicsApi api) default: break; } - if (QSGRendererInterface::isApiRhiBased(api)) + if (QSGRendererInterface::isApiRhiBased(api) || api == QSGRendererInterface::Unknown) QSGRhiSupport::configure(api); } diff --git a/src/quick/scenegraph/qsgrhisupport.cpp b/src/quick/scenegraph/qsgrhisupport.cpp index aa5661fc94..4ba0cca65e 100644 --- a/src/quick/scenegraph/qsgrhisupport.cpp +++ b/src/quick/scenegraph/qsgrhisupport.cpp @@ -268,11 +268,18 @@ void QSGRhiSupport::checkEnvQSgInfo() void QSGRhiSupport::configure(QSGRendererInterface::GraphicsApi api) { - Q_ASSERT(QSGRendererInterface::isApiRhiBased(api)); - QSGRhiSupport *inst = staticInst(); - inst->m_requested.valid = true; - inst->m_requested.api = api; - inst->applySettings(); + if (api == QSGRendererInterface::Unknown) { + // behave as if nothing was explicitly requested + QSGRhiSupport *inst = staticInst(); + inst->m_requested.valid = false; + inst->applySettings(); + } else { + Q_ASSERT(QSGRendererInterface::isApiRhiBased(api)); + QSGRhiSupport *inst = staticInst(); + inst->m_requested.valid = true; + inst->m_requested.api = api; + inst->applySettings(); + } } QSGRhiSupport *QSGRhiSupport::instance() |