Класс QSGEngine
Класс QSGEngine позволяет выполнять рендеринг сцены на низком уровне. Подробнее...
| Заголовок: | #include <QSGEngine> |
| qmake: | QT += quick |
| С момента: | Qt 5.4 |
| Наследует: | QObject |
Открытые типы
| перечисление | CreateTextureOption { TextureHasAlphaChannel, TextureOwnsGLTexture, TextureCanUseAtlas } |
| флаги | CreateTextureOptions |
Открытые функции
| QSGEngine(QObject *parent = Q_NULLPTR) | |
| ~QSGEngine() | |
| QSGAbstractRenderer * | createRenderer() const |
| QSGTexture * | createTextureFromId(uint id, const QSize &size, CreateTextureOptions options = CreateTextureOption()) const |
| QSGTexture * | createTextureFromImage(const QImage &image, CreateTextureOptions options = CreateTextureOption()) const |
| void | initialize(QOpenGLContext *context) |
| void | invalidate() |
- 31 открытых функций, унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от QObject
- 2 сигнала, унаследованные от QObject
- 11 статические открытые члены, унаследованные от 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 |
Изображение может быть загружено в атлас текстур. |
Тип CreateTextureOptions является псевдонимом для QFlags<CreateTextureOption>. Он хранит логическое ИЛИ сочетание значений CreateTextureOption.
Документация по функциям-членам
QSGEngine::QSGEngine(QObject *parent = Q_NULLPTR)
Создает новый QSGEngine со своим parent
QSGEngine::~QSGEngine()
Уничтожает движок
QSGAbstractRenderer *QSGEngine::createRenderer() const
Возвращает рендерер, который можно использовать для отрисовки дерева QSGNode
Сначала вызывается initialize() с QOpenGLContext, который вы хотите использовать с этим рендерером. В противном случае будет возвращён нулевой рендерер.
QSGTexture *QSGEngine::createTextureFromId(uint id, const QSize &size, CreateTextureOptions options = CreateTextureOption()) const
Создает объект текстуры, который оборачивает текстуру GL с id, загруженную с размером size
Допустимые options — TextureHasAlphaChannel и TextureOwnsGLTexture
Вызывающий код получает владение объектом текстуры, и текстура должна использоваться только с этим движком.
См. также createTextureFromImage(), QSGSimpleTextureNode::setOwnsTexture() и QQuickWindow::createTextureFromId().
QSGTexture *QSGEngine::createTextureFromImage(const QImage &image, CreateTextureOptions options = CreateTextureOption()) const
Создает текстуру, используя данные из image
Допустимые options — TextureCanUseAtlas и TextureIsOpaque.
Вызывающий код получает владение текстурой, и текстура должна использоваться только с этим движком.
См. также createTextureFromId(), QSGSimpleTextureNode::setOwnsTexture() и QQuickWindow::createTextureFromImage().
void QSGEngine::initialize(QOpenGLContext *context)
Инициализирует движок с context.
Предупреждение: Вам необходимо убедиться, что вы вызвали QOpenGLContext::makeCurrent() на context перед вызовом этой функции.
void QSGEngine::invalidate()
Дезактивирует движок, освобождая его ресурсы
Вам нужно вызвать initialize() и createRenderer(), если вы хотите использовать его снова.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qsgengine.html