QQuick3D Class

Hilfsklasse zur Auswahl des richtigen Oberflächenformats. Mehr...

Header: #include <QQuick3D>

Statische öffentliche Mitglieder

QSurfaceFormat idealSurfaceFormat(int samples = -1)

Detaillierte Beschreibung

Bei der Verwendung von Qt Quick 3D mit OpenGL ist es notwendig, zusätzliche Schritte zu unternehmen, um zu definieren, welche Art von surface format bei der Initialisierung von Qt Quick verwendet wird. Dies liegt daran, dass zu dem Zeitpunkt, an dem Qt Quick weiß, dass 3D-Inhalte verwendet werden, der OpenGL-Kontext und die Fensteroberfläche bereits initialisiert wurden. Daher wird diese Hilfsklasse bereitgestellt, um das ideale Oberflächenformat von Qt Quick 3D anzufordern, damit es vor der Initialisierung als Standardoberfläche für Qt Quick festgelegt werden kann.

Wenn diese Hilfsklasse bei der Verwendung anderer Rendering-Backends als OpenGL ausgeführt wird, gibt sie nur eine Kopie der aktuellen Standardoberfläche QSurfaceFormat mit den angeforderten Mustern zurück.

Wenn diese Hilfe bei Verwendung des OpenGL-Rendering-Backends ausgeführt wird, dann wird sie auf ausreichend moderne Versionen von OpenGL und Unterstützung für Multisampling testen, falls angefordert. Normalerweise fordert Qt Quick einen OpenGL 2.0- oder OpenGL ES 2.0-Kontext an, was die verfügbaren Funktionen bei der Verwendung von Qt Quick 3D einschränken würde, so dass ein zusätzlicher Schritt erforderlich ist, um einen leistungsfähigeren Kontext anzufordern.

Das korrekte Verwendungsmuster ist der Aufruf von QSurfaceFormat::setDefaultFormat, um den von QQuick3D::idealSurfaceFormat zurückgegebenen QSurfaceFormat zu setzen. Es ist wichtig, dass diese Methode aufgerufen wird, nachdem QGuiApplication erstellt wurde, aber bevor der Inhalt der Anwendung Qt Quick geladen wird. Dieser Codeschnipsel 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();
}

Dokumentation der Mitgliedsfunktionen

[static] QSurfaceFormat QQuick3D::idealSurfaceFormat(int samples = -1)

Gibt ein ideales Oberflächenformat für die Plattform zurück. Optional kann samples angegeben werden, um die Anzahl der Multisamples für Antialiasing auszuwählen.

© 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.