Класс RenderState
класс QSGMaterialShader::RenderStateКласс QSGMaterialShader::RenderState инкапсулирует текущее состояние отрисовки во время вызова QSGMaterialShader::updateState(). Подробнее...
Типы public
| перечисление | DirtyState { DirtyMatrix, DirtyOpacity, DirtyCachedMaterialData, DirtyAll } |
| флаги | DirtyStates |
Функции public
| 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
Возвращает матрицу, комбинированную из матриц modelview и project.
QOpenGLContext *RenderState::context() const
Возвращает QOpenGLContext, используемый для отрисовки.
float RenderState::determinant() const
Возвращает определитель матрицы modelview, используемый для отрисовки.
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
Возвращает матрицу model-view.
Если материал имеет установленный флаг 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.15/qsgmaterialshader-renderstate.html