Класс QSGAbstractRenderer
QSGAbstractRenderer предоставляет доступ к узлам графа сцены и рендерингу QSGEngine. Подробнее...
| Заголовок: | #include <QSGAbstractRenderer> |
| qmake: | QT += quick |
| С тех пор: | Qt 5.4 |
| Наследует: | QObject |
Этот класс был введён в Qt 5.4.
Типы публичного доступа
| флаги | ClearMode |
| перечисление | ClearModeBit { ClearColorBuffer, ClearDepthBuffer, ClearStencilBuffer } |
| перечисление | MatrixTransformFlag { MatrixTransformFlipY } |
| флаги | MatrixTransformFlags |
Функции публичного доступа
| QColor | clearColor() const |
| QSGAbstractRenderer::ClearMode | clearMode() const |
| QRect | deviceRect() const |
| QMatrix4x4 | projectionMatrix() const |
| виртуальный void | renderScene(uint fboId = 0) = 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 = 0)
Рендерит сцену в указанный 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.15/qsgabstractrenderer.html