Anpassungen am Szenenbaum
Anpassungen am Szenenbaum in Qt Quick
In Qt 5.0 stützte sich „ Qt Quick “ stets auf OpenGL (OpenGL ES 2.0 oder OpenGL 2.0), um den Szenengraphen zu analysieren und die Ergebnisse auf ein Renderziel zu rendern.
Ab Qt 5.8 unterstützt „ Qt Quick “ auch das Rendern in Software sowie mit OpenVG. Dies wird durch zusätzliche Anpassungen des Szenengraphen realisiert, entweder in Form von Plugins (openvg) oder integriert in die Bibliothek „ Qt Quick “ (Software). Die Standardanpassung stützt sich weiterhin direkt auf OpenGL.
Ab Qt 5.14 bietet die Standardanpassung die Möglichkeit, das Rendering über eine Grafikabstraktionsschicht, das Qt Rendering Hardware Interface (RHI), durchzuführen, das vom Qt GUI Moduls bereitgestellt wird. Wenn diese Option aktiviert ist, werden keine direkten OpenGL-Aufrufe mehr getätigt. Stattdessen erfolgt das Rendern des Szenengraphen über die von der Abstraktionsschicht bereitgestellten APIs, die anschließend in OpenGL-, Vulkan-, Metal- oder Direct 3D-Aufrufe übersetzt werden. Auch die Shader-Verarbeitung wird vereinheitlicht, indem Shader-Code einmal geschrieben, in SPIR-V kompiliert und anschließend in die für die verschiedenen Grafik-APIs geeignete Sprache übersetzt wird.
Ab Qt 6.0 ist das RHI-basierte Rendering-Modell die Standardeinstellung, und es gibt keine Option, auf die direkte Verwendung von OpenGL zurückzugreifen.
Wechseln Sie in Ihrer Anwendung zwischen den Anpassungen
Im Gegensatz zu „ software “ ist der RHI-basierte Renderer keine zusätzliche Anpassung, sondern immer integriert. Ab Qt 6.0 ist er immer aktiviert. Auf Plattformen, auf denen mehrere Grafik-APIs verfügbar sind, trifft der Szenengraph eine plattformspezifische Auswahl. Ist dies nicht gewünscht, können Anwendungen eine bestimmte Grafik-API erzwingen, indem sie die Umgebungsvariable „ QSG_RHI_BACKEND “ setzen oder die Funktion „ QQuickWindow::setGraphicsApi()“ in Kombination mit „ QSGRendererInterface::GraphicsApi “ verwenden.
Der Wechsel zu einer anderen Anpassung kann auf zwei Arten erfolgen:
- Verwenden Sie eine Umgebungsvariable – Setzen Sie vor dem Start der Anwendung die Umgebungsvariable „
QT_QUICK_BACKEND“ oder die veraltete Umgebungsvariable „QMLSCENE_DEVICE“. - Verwenden Sie eine C++-API – Rufen Sie „ QQuickWindow::setSceneGraphBackend()“ frühzeitig in der „main()“-Funktion der Anwendung auf.
Die folgenden Backends werden unterstützt:
- Standard – Fügen Sie den String „
"rhi"“ oder einen Enum-Wert für „ QSGRendererInterface::GraphicsApi “ ein, der sich von den unten aufgeführten unterscheidet. - Software – Anforderung mit dem String „
"software"“ oder dem Enum-Wert „ QSGRendererInterface::Software “. - OpenVG – Anforderung mit der Zeichenfolge „
"openvg"“ oder dem Enum-Wert „ QSGRendererInterface::OpenVG “.
Um herauszufinden, welches Backend verwendet wird, können Sie die Protokollierung grundlegender Szenengraph-Informationen über die Umgebungsvariable „ QSG_INFO “ oder die Protokollierungskategorie „ qt.scenegraph.general “ aktivieren. Dadurch werden beim Start der Anwendung einige Informationen in die Debug-Ausgabe geschrieben.
Hinweis: In Qt-Builds, in denen sowohl OpenGL als auch Vulkan deaktiviert sind, ist die Standardanpassung „ software “. Dies gilt jedoch nicht für Windows oder macOS, da auf diesen Plattformen jeweils immer die Unterstützung für Direct 3D bzw. Metal aktiviert ist.
Hinweis: In der Regel sind andere als die Standardanpassung mit einer Reihe von Einschränkungen verbunden, da sie wahrscheinlich keinen Funktionsumfang bieten, der zu 100 % mit OpenGL kompatibel ist. Diese Anpassungen können jedoch in bestimmten Bereichen ihre eigenen spezifischen Vorteile bieten. Weitere Informationen zu den verschiedenen Anpassungen finden Sie in den folgenden Abschnitten.
Standardanpassung
Bei direkter Verwendung von OpenGL bietet die Standardanpassung den vollständigen Funktionsumfang von „ Qt Quick 2“. Weitere Einzelheiten finden Sie unter „Standardanpassung“.
Software-Anpassung
Die Software-Anpassung ist ein alternativer Renderer für Qt Quick 2, die die Raster-Paint-Engine zum Rendern der Inhalte des Szenengraphen verwendet. Weitere Informationen finden Sie unter „Software-Anpassung“.
OpenVG
Die OpenVG-Anpassung ist ein alternativer Renderer für Qt Quick 2, der den Inhalt des Szenengrafiks anhand von OpenVG-Befehlen rendert, um hardwarebeschleunigte 2D-Vektor- und Rastergrafiken bereitzustellen. Weitere Informationen finden Sie unter „OpenVG-Anpassung“.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.