Класс 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 |
- 34 общедоступных функций, унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 общедоступный слот, унаследованный от QObject
- 2 сигнала, унаследованные от QObject
- 1 общедоступная переменная, унаследованная от QObject
- 10 статических общедоступных членов, унаследованных от QObject
- 9 защищённых функций, унаследованных от QObject
- 2 защищённых переменных, унаследованных от 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/archives/qt-5.11/qsgengine.html