Класс QQuick3D
Вспомогательный класс для выбора правильного формата поверхности. Подробнее...
| Заголовок: | #include <QQuick3D> |
| С момента: | Qt 5.15 |
Статические публичные члены
| QSurfaceFormat | idealSurfaceFormat(int samples = -1) |
Подробное описание
При использовании Qt Quick 3D с OpenGL необходимо выполнить дополнительные шаги для определения типа формата поверхности, используемого при инициализации Qt Quick. Это связано с тем, что к моменту, когда Qt Quick понимает, что используется 3D-содержимое, контекст OpenGL и поверхность окна уже были инициализированы. Поэтому предоставляется этот вспомогательный класс для запроса идеального формата поверхности от Qt Quick 3D, чтобы он мог быть установлен в качестве стандартного для Qt Quick перед инициализацией.
Если этот вспомогательный класс используется с другими, чем OpenGL, графическими бэкендами, он просто возвращает копию текущего стандартного QSurfaceFormat с запрошенными образцами.
Если этот вспомогательный класс используется с OpenGL бэкендом, он проверит достаточно ли современные версии OpenGL и поддержку многократного выборки, если она запрошена. Обычно Qt Quick запрашивает контекст OpenGL 2.0 или OpenGL ES 2.0, что ограничивает возможности при использовании Qt Quick 3D, поэтому требуется дополнительный шаг для запроса более функционального контекста.
Правильный шаблон использования — вызвать QSurfaceFormat::setDefaultFormat для установки QSurfaceFormat, возвращаемого QQuick3D::idealSurfaceFormat. Важно, чтобы этот метод вызывался после создания QGuiApplication, но до загрузки контента Qt Quick приложения. Этот фрагмент кода демонстрирует правильный шаблон использования:
#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();
} Документация по членам функций
[static] QSurfaceFormat QQuick3D::idealSurfaceFormat(int samples = -1)
Возвращает идеальный формат поверхности для платформы. Дополнительно, samples может быть указан для выбора количества многократных выборок для сглаживания.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qquick3d.html