Класс RenderState
(QSGRenderNode::RenderState)Открытые функции
| виртуальный const QRegion * | clipRegion() const = 0 |
| виртуальный void * | get(const char *state) const |
| виртуальный const QMatrix4x4 * | projectionMatrix() const = 0 |
| виртуальный bool | scissorEnabled() const = 0 |
| виртуальный QRect | scissorRect() const = 0 |
| виртуальный bool | stencilEnabled() const = 0 |
| виртуальный int | stencilValue() const = 0 |
Документация по функциям-членам
[pure virtual] const QRegion *RenderState::clipRegion() const
Возвращает текущую область обрезки или null для бэкэндов, где обрезка реализована с помощью маски или обрезки.
Программный бэкэнд не использует проекцию, обрезку или маску, что означает, что большая часть состояния отрисовки не используется. Однако, область обрезки, которую можно установить в QPainter, всё равно необходимо передать, так как пересчёт её вручную в render() нецелесообразен. Поэтому её можно запросить с помощью этой функции. Область находится в координатах мира и может быть передана в QPainter::setClipRegion() с Qt::ReplaceClip. Это необходимо сделать до вызова QPainter::setTransform(), так как область обрезки уже отображена с учётом преобразования, предоставленного в QSGRenderNode::matrix().
[virtual] void *RenderState::get(const char *state) const
Возвращает указатель на значение state.
Зарезервировано для будущего использования.
[pure virtual] const QMatrix4x4 *RenderState::projectionMatrix() const
Возвращает указатель на текущую проекционную матрицу.
Матрицу модели-вида можно получить с помощью QSGRenderNode::matrix(). Обычно projection * modelview является матрицей, которая затем используется в вершинном шейдере для преобразования вершин.
[pure virtual] bool RenderState::scissorEnabled() const
Возвращает текущее состояние обрезки.
Примечание: Актуально только для графических API, имеющих отдельное состояние включения/выключения обрезки.
[pure virtual] QRect RenderState::scissorRect() const
Возвращает текущий прямоугольник обрезки при активной обрезке.
Примечание: Учитывайте различия между графическими API: для некоторых прямоугольник обрезки активен только при включённой обрезке (например, OpenGL), а для других он равен прямоугольнику области просмотра, когда нет необходимости отсекать ничего (например, Direct3D 12).
[pure virtual] bool RenderState::stencilEnabled() const
Возвращает текущее состояние проверки маски.
Примечание: Для графических API, где проверка маски включена в объекты состояния конвейера, а не в индивидуальных командах установки состояния, за включение проверки маски с операциями KEEP, функцией сравнения EQUAL, и маской чтения и записи 0xFF отвечает реализация render().
[pure virtual] int RenderState::stencilValue() const
Возвращает текущее значение ссылки маски при активной обрезке.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qsgrendernode-renderstate.html