Класс QSGAbstractRenderer
QSGAbstractRenderer предоставляет доступ к узлам графа сцены и рендерингу QSGEngine. Подробнее...
| Заголовок: | #include <QSGAbstractRenderer> |
| qmake: | QT += quick |
| С момента: | Qt 5.4 |
| Наследуется от: | QObject |
Этот класс был представлен в Qt 5.4.
Типы публичного доступа
| Флаги | ClearMode |
| Перечисление | ClearModeBit { Очистить буфер цвета, Очистить буфер глубины, Очистить буфер трафарета } |
| Перечисление | MatrixTransformFlag { Отзеркалить Y матрицы преобразования } |
| Флаги | Флаги преобразования матрицы |
Публичные функции
| QColor | clearColor() const |
| QSGAbstractRenderer::ClearMode | clearMode() const |
| QRect | deviceRect() const |
| QMatrix4x4 | projectionMatrix() const |
| virtual void | renderScene(uint fboId = ...) = 0 |
| QSGRootNode * | rootNode() const |
| void | setClearColor(const QColor &color) |
| void | setClearMode(QSGAbstractRenderer::ClearMode mode) |
| void | setDeviceRect(const QRect &rect) |
| void | setDeviceRect(const QSize &size) |
| void | setProjectionMatrix(const QMatrix4x4 &matrix) |
| void | setProjectionMatrixToRect(const QRectF &rect) |
| void | setProjectionMatrixToRect(const QRectF &rect, QSGAbstractRenderer::MatrixTransformFlags flags) |
| void | setRootNode(QSGRootNode *node) |
| void | setViewportRect(const QRect &rect) |
| void | setViewportRect(const QSize &size) |
| QRect | viewportRect() const |
Сигналы
| void | sceneGraphChanged() |
Подробное описание
QSGAbstractRenderer, созданный QSGEngine, позволяет установить дерево QSGNode с помощью setRootNode() и управлять областью просмотра рендеринга с помощью setDeviceRect(), setViewportRect() и setProjectionMatrixToRect(). Наконец, вы можете инициировать рендеринг в нужном буфере кадров с помощью renderScene().
QSGAbstractRenderer доступен только при использовании с QSGEngine и не отображается при внутреннем использовании QQuickWindow.
См. также QSGEngine и QSGNode.
Документация типов членов
Перечисление QSGAbstractRenderer::ClearModeBitфлаги QSGAbstractRenderer::ClearMode
Используется с setClearMode() для указания, какой буфер следует очистить перед рендерингом сцены.
| Константа | Значение | Описание |
|---|---|---|
QSGAbstractRenderer::ClearColorBuffer |
0x0001 |
Очистить буфер цвета с помощью clearColor(). |
QSGAbstractRenderer::ClearDepthBuffer |
0x0002 |
Очистить буфер глубины. |
QSGAbstractRenderer::ClearStencilBuffer |
0x0004 |
Очистить буфер трафарета. |
Тип ClearMode является псевдонимом для QFlags<ClearModeBit>. Он хранит комбинацию значений ClearModeBit.
См. также setClearMode() и setClearColor().
Перечисление QSGAbstractRenderer::MatrixTransformFlagфлаги QSGAbstractRenderer::MatrixTransformFlags
Используется с setProjectionMatrixToRect() для указания ожиданий относительно сгенерированной проекционной матрицы.
| Константа | Значение | Описание |
|---|---|---|
QSGAbstractRenderer::MatrixTransformFlipY |
0x01 |
Традиционное предположение в Qt Quick заключается в том, что ось Y направлена вверх в системе нормализованных координат устройства. Существует как минимум одна современная графическая API, где это не так (Vulkan). Этот флаг может быть использован для получения проекции, подходящей для такой API. |
Этот перечисление был введён или изменён в Qt 5.14.
Тип MatrixTransformFlags является псевдонимом для QFlags<MatrixTransformFlag>. Он хранит логическое ИЛИ сочетание значений MatrixTransformFlag.
См. также setProjectionMatrixToRect().
Документация по членам-функциям
[signal] void QSGAbstractRenderer::sceneGraphChanged()
Этот сигнал испускается при первом изменении узла в дереве после последнего рендеринга сцены.
QColor QSGAbstractRenderer::clearColor() const
Возвращает цвет, используемый для очистки буфера кадра в начале рендеринга.
См. также setClearColor() и clearMode().
QSGAbstractRenderer::ClearMode QSGAbstractRenderer::clearMode() const
Флаги, определяющие, какие привязки буфера кадра будут очищены перед каждым рендерингом сцены.
См. также setClearMode() и clearColor().
QRect QSGAbstractRenderer::deviceRect() const
Возвращает прямоугольник устройства, на который выполняется рендеринг.
См. также setDeviceRect().
QMatrix4x4 QSGAbstractRenderer::projectionMatrix() const
Возвращает матрицу проекции
См. также setProjectionMatrix() и setProjectionMatrixToRect().
[pure virtual] void QSGAbstractRenderer::renderScene(uint fboId = ...)
Выполняет рендеринг сцены в указанный fboId
Если fboId не указан, граф сцены будет отрисован в буфер кадра по умолчанию. Вам потребуется самостоятельно вызвать QOpenGLContext::swapBuffers() после этого.
Буфер кадра, указанный fboId, будет автоматически привязан.
См. также QOpenGLContext::swapBuffers() и QOpenGLFramebufferObject::handle().
QSGRootNode *QSGAbstractRenderer::rootNode() const
Возвращает корень сцены QSGNode.
См. также setRootNode().
void QSGAbstractRenderer::setClearColor(const QColor &color)
Используйте color для очистки буфера кадра, когда clearMode() установлено в QSGAbstractRenderer::ClearColorBuffer.
См. также clearColor() и setClearMode().
void QSGAbstractRenderer::setClearMode(QSGAbstractRenderer::ClearMode mode)
Определяет, какой буфер кадра следует очистить перед каждым рендерингом сцены с флагом mode.
См. также clearMode() и setClearColor().
void QSGAbstractRenderer::setDeviceRect(const QRect &rect)
Устанавливает rect в качестве геометрии поверхности, на которую производится рендеринг.
См. также deviceRect().
void QSGAbstractRenderer::setDeviceRect(const QSize &size)
Это перегруженный метод.
Устанавливает size поверхности, на которую производится рендеринг.
См. также deviceRect().
void QSGAbstractRenderer::setProjectionMatrix(const QMatrix4x4 &matrix)
Используйте matrix для проекции координат QSGNode на пиксели поверхности.
См. также projectionMatrix() и setProjectionMatrixToRect().
void QSGAbstractRenderer::setProjectionMatrixToRect(const QRectF &rect)
Удобный метод, который вызывает setProjectionMatrix() с ортогональной матрицей, сгенерированной из rect.
Примечание: Этот метод предполагает, что графический API использует Y вверх в своей системе нормализованных координат устройства.
См. также setProjectionMatrix() и projectionMatrix().
void QSGAbstractRenderer::setProjectionMatrixToRect(const QRectF &rect, QSGAbstractRenderer::MatrixTransformFlags flags)
Удобный метод, который вызывает setProjectionMatrix() с ортогональной матрицей, сгенерированной из rect.
Установите MatrixTransformFlipY в flags, если графический API использует Y вниз в своей системе нормализованных координат устройства (например, Vulkan).
Этот метод был добавлен в Qt 5.14.
См. также setProjectionMatrix() и projectionMatrix().
void QSGAbstractRenderer::setRootNode(QSGRootNode *node)
Устанавливает node в качестве корня сцены QSGNode, которую необходимо отрисовать. Вам необходимо предоставить node перед попыткой отрисовки сцены.
Примечание: Это не передаёт владение node.
См. также rootNode().
void QSGAbstractRenderer::setViewportRect(const QRect &rect)
Устанавливает rect в качестве геометрии области просмотра, которая должна быть отрисована на поверхности.
См. также viewportRect().
void QSGAbstractRenderer::setViewportRect(const QSize &size)
Это перегруженный метод.
Устанавливает size области просмотра, которая должна быть отрисована на поверхности.
См. также viewportRect().
QRect QSGAbstractRenderer::viewportRect() const
Возвращает область просмотра для рендеринга.
См. также setViewportRect().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qsgabstractrenderer.html