QQuick3D Class
Hilfsklasse zur Auswahl des richtigen Oberflächenformats. Mehr...
| Header: | #include <QQuick3D> |
Statische öffentliche Mitglieder
| QSurfaceFormat | idealSurfaceFormat(int samples = -1) |
Ausführliche Beschreibung
Bei der Verwendung von „ Qt Quick 3D “ mit OpenGL sind zusätzliche Schritte erforderlich, um bei der Initialisierung von „ Qt Quick “ festzulegen, welche Art von „ surface format “ verwendet wird. Der Grund dafür ist, dass zu dem Zeitpunkt, zu dem „ Qt Quick “ erkennt, dass 3D-Inhalte verwendet werden, der OpenGL-Kontext und die Fensteroberfläche bereits initialisiert sind. Daher wird diese Hilfsklasse bereitgestellt, um das ideale Oberflächenformat von Qt Quick 3D abzufragen, damit es vor der Initialisierung als Standardoberfläche für Qt Quick festgelegt werden kann.
Wird diese Hilfsklasse bei Verwendung eines anderen Rendering-Backends als OpenGL aufgerufen, gibt sie lediglich eine Kopie der aktuellen Standard- QSurfaceFormat mit den angeforderten Samples zurück.
Wird dieser Helfer bei Verwendung des OpenGL-Rendering-Backends ausgeführt, prüft er, ob eine ausreichend aktuelle OpenGL-Version vorliegt und ob Multisampling unterstützt wird, sofern dies angefordert wurde. Normalerweise fordert ` Qt Quick ` einen OpenGL 2.0- oder OpenGL ES 2.0-Kontext an, was die bei der Verwendung von ` Qt Quick 3D` verfügbaren Funktionen einschränken würde; daher ist ein zusätzlicher Schritt erforderlich, um einen leistungsfähigeren Kontext anzufordern.
Das korrekte Verwendungsmuster besteht darin, ` QSurfaceFormat::setDefaultFormat ` aufzurufen, um den von ` QQuick3D::idealSurfaceFormat` zurückgegebenen ` QSurfaceFormat ` festzulegen. Es ist wichtig, dass diese Methode aufgerufen wird, nachdem ` QGuiApplication ` erstellt wurde, jedoch bevor der Anwendungsinhalt von ` Qt Quick ` geladen wird. Dieser Codeausschnitt zeigt das korrekte Verwendungsmuster:
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QtGui>
#include <QtQuick3D/qquick3d.h>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QSurfaceFormat::setDefaultFormat(QQuick3D::idealSurfaceFormat(4));
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
return app.exec();
}Siehe auch OpenGL-spezifische Informationen.
Dokumentation zu den Member-Funktionen
[static] QSurfaceFormat QQuick3D::idealSurfaceFormat(int samples = -1)
Gibt ein für die Plattform geeignetes Oberflächenformat zurück. Optional kann „ samples “ angegeben werden, um die Anzahl der Multisamples für das Antialiasing festzulegen.
© 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.