Класс RenderState
Класс RenderState объявлен в классе QSGMaterialShader.Класс QSGMaterialShader::RenderState инкапсулирует текущее состояние отрисовки во время вызова QSGMaterialShader::updateState(). Подробнее...
Типы публичного доступа
| перечисление | DirtyState { DirtyMatrix, DirtyOpacity, DirtyCachedMaterialData, DirtyAll } |
| флаги | DirtyStates |
Функции публичного доступа
| QMatrix4x4 | combinedMatrix() const |
| QOpenGLContext * | context() const |
| float | determinant() const |
| float | devicePixelRatio() const |
| QRect | deviceRect() const |
| RenderState::DirtyStates | dirtyStates() const |
| bool | isCachedMaterialDataDirty() const |
| bool | isMatrixDirty() const |
| bool | isOpacityDirty() const |
| QMatrix4x4 | modelViewMatrix() const |
| float | opacity() const |
| QMatrix4x4 | projectionMatrix() const |
| QRect | viewportRect() const |
Подробное описание
Состояние отрисовки содержит ряд методов доступа, которые шейдер должен соблюдать, чтобы соответствовать текущему состоянию графического дерева.
Экземпляр действителен только внутри вызова QSGMaterialShader::updateState() и не должен использоваться вне этой функции.
Документация по типам членов
перечисление RenderState::DirtyStateфлаги RenderState::DirtyStates
| Константа | Значение | Описание |
|---|---|---|
QSGMaterialShader::RenderState::DirtyMatrix |
0x0001 |
Используется для указания того, что матрица изменилась и должна быть обновлена. |
QSGMaterialShader::RenderState::DirtyOpacity |
0x0002 |
Используется для указания того, что непрозрачность изменилась и должна быть обновлена. |
QSGMaterialShader::RenderState::DirtyCachedMaterialData |
0x0004 |
Используется для указания того, что кэшированные данные материала изменились и должны быть обновлены. |
QSGMaterialShader::RenderState::DirtyAll |
0xFFFF |
Используется для указания необходимости обновления всего. |
Тип DirtyStates является псевдонимом для QFlags<DirtyState>. Он хранит комбинацию значений DirtyState с использованием операции ИЛИ.
Документация по функциям-членам
QMatrix4x4 RenderState::combinedMatrix() const
Возвращает матрицу, комбинированную из матриц модели-представления и проекции.
QOpenGLContext *RenderState::context() const
Возвращает QOpenGLContext, используемый для отрисовки
float RenderState::determinant() const
Возвращает определитель матрицы модели-представления для использования в отрисовке.
float RenderState::devicePixelRatio() const
Возвращает отношение между физическими пикселями и пикселями независимыми от устройства, используемыми для отрисовки.
QRect RenderState::deviceRect() const
Возвращает прямоугольник устройства, на который выполняется отрисовка
RenderState::DirtyStates RenderState::dirtyStates() const
Возвращает, какие состояния отрисовки были изменены и требуют обновления геометрии, отрисованной с этим материалом, чтобы соответствовать текущему состоянию отрисовки.
bool RenderState::isCachedMaterialDataDirty() const
Возвращает true, если dirtyStates() содержит состояние кэшированных данных материала, в противном случае возвращает false.
bool RenderState::isMatrixDirty() const
Возвращает true, если dirtyStates() содержит состояние матрицы, в противном случае возвращает false.
bool RenderState::isOpacityDirty() const
Возвращает true, если dirtyStates() содержит состояние непрозрачности, в противном случае возвращает false.
QMatrix4x4 RenderState::modelViewMatrix() const
Возвращает матрицу модели-представления.
Если у материала установлен флаг RequiresFullMatrix, это гарантирует, что это полная матрица преобразования, рассчитанная из графического дерева.
Однако, если этот флаг не установлен, рендерер может изменить эту матрицу. Например, он может предварительно преобразовать вершины на ЦП и установить эту матрицу в единичную.
В такой ситуации все еще можно получить фактический определитель матрицы, установив флаг RequiresDeterminant в материале и вызвав метод determinant().
float RenderState::opacity() const
Возвращает накопленную непрозрачность для использования при отрисовке.
QMatrix4x4 RenderState::projectionMatrix() const
Возвращает матрицу проекции.
QRect RenderState::viewportRect() const
Возвращает прямоугольник области просмотра поверхности, на которую выполняется отрисовка.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qsgmaterialshader-renderstate.html