Класс QSGEngine
Класс QSGEngine позволяет выполнять низкоуровневое рендеринг графа сцены. Подробнее...
| Заголовок: | #include <QSGEngine> |
| qmake: | QT += quick |
| С момента: | Qt 5.4 |
| Наследует: | QObject |
Типы публичного доступа
| Перечисление | CreateTextureOption { TextureHasAlphaChannel, TextureOwnsGLTexture, TextureCanUseAtlas, TextureIsOpaque } |
| флаги | CreateTextureOptions |
Функции публичного доступа
| QSGEngine(QObject *parent = nullptr) | |
| виртуальный | ~QSGEngine() override |
| QSGImageNode * | createImageNode() const |
| QSGNinePatchNode * | createNinePatchNode() const |
| QSGRectangleNode * | createRectangleNode() const |
| QSGAbstractRenderer * | createRenderer() const |
| QSGTexture * | createTextureFromId(uint id, const QSize &size, QSGEngine::CreateTextureOptions options) const |
| QSGTexture * | createTextureFromImage(const QImage &image, QSGEngine::CreateTextureOptions options) const |
| void | initialize(QOpenGLContext *context) |
| void | invalidate() |
| QSGRendererInterface * | rendererInterface() const |
- 31 функция унаследованная от QObject
Статические члены публичного доступа
| const QMetaObject | staticMetaObject |
- 9 статических членов унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство унаследованное от QObject
- 1 слот публичного доступа унаследованный от QObject
- 2 сигнала унаследованные от QObject
- 9 защищенных функций унаследованных от QObject
Подробное описание
Класс QSGEngine позволяет выполнять низкоуровневое рендеринг графа сцены.
QSGEngine можно использовать для рендеринга дерева QSGNode непосредственно на QWindow или QOpenGLFramebufferObject без какой-либо интеграции с QML, QQuickWindow или QQuickItem и удобства, которые они предоставляют.
Это означает, что вы должны самостоятельно обрабатывать распространение событий, управление временем анимации и жизненный цикл узлов.
Примечание: Этот класс предназначен для очень низкоуровневого доступа к независимому графу сцены. В большинстве случаев вы захотите вместо этого унаследовать от QQuickItem и вставить свой QSGNode в обычную сцену QtQuick, переопределив QQuickItem::updatePaintNode().
См. также QSGAbstractRenderer.
Документация по типу членов
перечисление QSGEngine::CreateTextureOptionфлаги QSGEngine::CreateTextureOptions
Перечисления CreateTextureOption используются для настройки способа обертывания текстуры.
| Константа | Значение | Описание |
|---|---|---|
QSGEngine::TextureHasAlphaChannel |
0x0001 |
Текстура имеет альфа-канал и должна быть отрисована с использованием смешивания. |
QSGEngine::TextureOwnsGLTexture |
0x0004 |
Объект текстуры владеет идентификатором текстуры и удалит текстуру GL при удалении объекта текстуры. |
QSGEngine::TextureCanUseAtlas |
0x0008 |
Изображение можно загрузить в атлас текстур. |
QSGEngine::TextureIsOpaque |
0x0010 |
Объект текстуры непрозрачен. |
Тип CreateTextureOptions является псевдонимом для QFlags<CreateTextureOption>. Он хранит результат побитового ИЛИ комбинации значений CreateTextureOption.
Документация по функциям-членам
QSGEngine::QSGEngine(QObject *parent = nullptr)
Конструирует новый QSGEngine с его parent
[override virtual] QSGEngine::~QSGEngine()
Удаляет движок
QSGImageNode *QSGEngine::createImageNode() const
Создает простой узел изображения. Если граф сцены не инициализирован, возвращается значение null.
Это кросс-платформенная альтернатива прямому созданию QSGSimpleTextureNode.
Эта функция была добавлена в Qt 5.8.
См. также QSGImageNode.
QSGNinePatchNode *QSGEngine::createNinePatchNode() const
Создает узел девятипанельного изображения. Если граф сцены не инициализирован, возвращается значение null.
Эта функция была добавлена в Qt 5.8.
QSGRectangleNode *QSGEngine::createRectangleNode() const
Создаёт простой узел прямоугольника. Если граф сцены не инициализирован, возвращается значение null.
Это кросс-платформенная альтернатива прямому созданию QSGSimpleRectNode.
Эта функция была добавлена в Qt 5.8.
См. также QSGRectangleNode.
QSGAbstractRenderer *QSGEngine::createRenderer() const
Возвращает рендерер, который можно использовать для рендеринга дерева QSGNode
Сначала вызывайте initialize() с QOpenGLContext, который вы хотите использовать с этим рендерером. В противном случае вернётся null-рендерер.
QSGTexture *QSGEngine::createTextureFromId(uint id, const QSize &size, QSGEngine::CreateTextureOptions options) const
Создаёт объект текстуры, который оборачивает текстуру GL с идентификатором id, загруженную с размером size
Допустимые значения options — TextureHasAlphaChannel и TextureOwnsGLTexture
Вызывающая сторона берёт на себя ответственность за объект текстуры, и текстуру следует использовать только с этим движком.
См. также createTextureFromImage(), QSGSimpleTextureNode::setOwnsTexture(), и QQuickWindow::createTextureFromId().
QSGTexture *QSGEngine::createTextureFromImage(const QImage &image, QSGEngine::CreateTextureOptions options) const
Создаёт текстуру, используя данные из image
Допустимые значения options — TextureCanUseAtlas и TextureIsOpaque.
Вызывающая сторона берёт на себя ответственность за текстуру, и текстуру следует использовать только с этим движком.
См. также createTextureFromId(), QSGSimpleTextureNode::setOwnsTexture(), и QQuickWindow::createTextureFromImage().
void QSGEngine::initialize(QOpenGLContext *context)
Инициализирует движок с context.
Предупреждение: Необходимо убедиться, что вы вызываете QOpenGLContext::makeCurrent() на context перед вызовом этого метода.
void QSGEngine::invalidate()
Очистить движок, освобождая его ресурсы.
Вам необходимо вызвать initialize() и createRenderer(), если вы хотите использовать его снова.
QSGRendererInterface *QSGEngine::rendererInterface() const
Возвращает текущий интерфейс рендера, если он существует. В противном случае возвращается null.
Эта функция была добавлена в Qt 5.8.
См. также QSGRenderNode и QSGRendererInterface.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qsgengine.html