Szenegrafik-Anpassungen
Szenegraph-Anpassungen in Qt Quick
In Qt 5.0 war Qt Quick immer auf OpenGL (OpenGL ES 2.0 oder OpenGL 2.0) angewiesen, um den Szenegraphen zu analysieren und die Ergebnisse an ein Rendering-Ziel zu übertragen.
Ab Qt 5.8 unterstützt Qt Quick auch das Rendering in Software und mit OpenVG. Dies wird durch zusätzliche Anpassungen des Szenegraphen realisiert, entweder in Form von Plugins (OpenVG) oder eingebaut in die Qt Quick Bibliothek (Software). Die Standardanpassung setzt weiterhin direkt auf OpenGL.
Ab Qt 5.14 erhält die Standardanpassung die Möglichkeit, über eine Grafikabstraktionsschicht zu rendern, das Qt Rendering Hardware Interface (RHI), das durch das Qt GUI Modul bereitgestellt wird. Wenn diese Option aktiviert ist, werden keine direkten OpenGL-Aufrufe gemacht. Stattdessen wird der Szenegraph unter Verwendung der von der Abstraktionsschicht bereitgestellten APIs gerendert, die dann in OpenGL-, Vulkan-, Metal- oder Direct 3D-Aufrufe übersetzt werden. Auch die Shader-Verarbeitung wird vereinheitlicht, indem Shader-Code einmal geschrieben, nach SPIR-V kompiliert und dann in die für die verschiedenen Grafik-APIs geeignete Sprache übersetzt wird.
Ab Qt 6.0 ist das RHI-basierte Rendering-Modell der Standard, und es gibt keine Option, direkt auf OpenGL zurückzugreifen.
Umschalten zwischen Anpassungen in Ihrer Anwendung
Im Gegensatz zu software
ist der RHI-basierte Renderer keine zusätzliche Anpassung, sondern ist immer eingebaut. Ab Qt 6.0 ist er immer aktiviert. Auf Plattformen, auf denen mehrere Grafik-APIs verfügbar sind, trifft der Scenegraph 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 über QQuickWindow::setGraphicsApi() in Kombination mit QSGRendererInterface::GraphicsApi.
Die Umstellung auf eine andere Anpassung kann auf zwei Arten erfolgen:
- Verwendung einer Umgebungsvariablen - Setzen Sie die Umgebungsvariable
QT_QUICK_BACKEND
oder die alteQMLSCENE_DEVICE
vor dem Start von Anwendungen. - Verwendung einer C++-API - Rufen Sie QQuickWindow::setSceneGraphBackend() zu einem frühen Zeitpunkt in der main()-Funktion der Anwendung auf.
Die folgenden Backends werden unterstützt:
- Standard - Anforderung mit der Zeichenkette
"rhi"
oder einem QSGRendererInterface::GraphicsApi Enum-Wert, der sich von den unten aufgeführten unterscheidet. - Software - Anforderung mit der Zeichenfolge
"software"
oder dem Aufzählungswert QSGRendererInterface::Software. - OpenVG - Anfrage mit der Zeichenkette
"openvg"
oder dem Enum-Wert QSGRendererInterface::OpenVG.
Um herauszufinden, welches Backend verwendet wird, können Sie über die Umgebungsvariable QSG_INFO
oder die Protokollierungskategorie qt.scenegraph.general
die grundlegende Protokollierung von Szenengrafikinformationen aktivieren. Dies führt dazu, dass einige Informationen während des Starts der Anwendung auf der Debug-Ausgabe ausgegeben werden.
Hinweis: In Qt-Builds, bei 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 die Direct 3D- bzw. Metal-Unterstützung immer aktiviert ist.
Hinweis: Normalerweise sind andere Anpassungen als die Standardanpassung mit einer Reihe von Einschränkungen verbunden, da es unwahrscheinlich ist, dass sie einen Funktionsumfang bieten, der zu 100 % mit OpenGL kompatibel ist. Diese Anpassungen können jedoch in bestimmten Bereichen ihre eigenen Vorteile bieten. Weitere Informationen zu den verschiedenen Anpassungen finden Sie in den folgenden Abschnitten.
Standard-Anpassung
Bei direkter Verwendung von OpenGL ist die Standardanpassung in der Lage, den vollen Funktionsumfang von Qt Quick 2 bereitzustellen. Weitere Einzelheiten finden Sie unter Standardanpassung.
Software-Anpassung
Die Software-Anpassung ist ein alternativer Renderer für Qt Quick 2, der die Rasterpainting-Engine verwendet, um den Inhalt des Szenengraphs zu rendern. Weitere Einzelheiten finden Sie unter Software-Anpassung.
OpenVG
Die OpenVG-Anpassung ist ein alternativer Renderer für Qt Quick 2, der den Inhalt des Szenengraphs mit OpenVG-Befehlen rendert, um hardwarebeschleunigte 2D-Vektor- und Rastergrafiken zu erzeugen. Weitere Einzelheiten finden Sie unter OpenVG-Anpassung.
© 2025 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.