Spec-Zone.ru › Qt 5.14

Класс RenderState

Класс RenderState объявлен в классе QSGMaterialRhiShader.

Содержит текущее состояние отрисовки во время вызова QSGMaterialRhiShader::updateUniformData() и других функций типа update. Подробнее...

Этот класс был введён в Qt 5.14.

  • Список всех членов, включая унаследованные

Открытые функции

QMatrix4x4 combinedMatrix() const
float determinant() const
float devicePixelRatio() const
QRect deviceRect() const
RenderState::DirtyStates dirtyStates() const
bool isMatrixDirty() const
bool isOpacityDirty() const
QMatrix4x4 modelViewMatrix() const
float opacity() const
QMatrix4x4 projectionMatrix() const
QRhiResourceUpdateBatch * resourceUpdateBatch()
QRhi * rhi()
QByteArray * uniformData()
QRect viewportRect() const

Подробное описание

Состояние отрисовки содержит ряд аксессоров, которые шейдер должен учитывать, чтобы соответствовать текущему состоянию графа сцены.

Документация по членам-функциям

QMatrix4x4 RenderState::combinedMatrix() const

Возвращает матрицу, комбинированную из матриц модели-представления и проекции.

float RenderState::determinant() const

Возвращает определитель матрицы модели-представления, используемый для отрисовки.

float RenderState::devicePixelRatio() const

Возвращает отношение между физическими пикселями и пикселями, независимыми от устройства, используемое для отрисовки.

QRect RenderState::deviceRect() const

Возвращает прямоугольник устройства, на который производится отрисовка.

RenderState::DirtyStates RenderState::dirtyStates() const

Возвращает, какие состояния отрисовки изменились и требуют обновления геометрии, отрисовываемой с этим материалом, для соответствия текущему состоянию отрисовки.

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

Возвращает матрицу проекции.

QRhiResourceUpdateBatch *RenderState::resourceUpdateBatch()

Возвращает пакет обновления ресурсов, в который можно добавлять операции загрузки и копирования. Это обычно используется функцией QSGMaterialRhiShader::updateSampledImage() для очередизации обновлений контента изображения текстуры.

QRhi *RenderState::rhi()

Возвращает текущий QRhi.

QByteArray *RenderState::uniformData()

Возвращает указатель на данные для буфера униформ (констант) в шейдере. Данные униформ должны обновляться только из QSGMaterialRhiShader::updateUniformData(). Значение NULL возвращается в других реализуемых функциях, например, QSGMaterialRhiShader::updateSampledImage().

Примечание: Сильно рекомендуется объявить блок униформ с std140 в шейдере и тщательно изучить стандартную структуру блока униформ, как описано в разделе 7.6.2.2 спецификации OpenGL. От реализации QSGMaterialRhiShader зависит обеспечение размещения данных в правильном месте в этом QByteArray, с учётом требований к выравниванию. Код шейдера, переведённый на другие языки шейдеров, должен использовать те же смещения для членов блока, даже когда целевой язык использует другие правила упаковки по умолчанию.

Примечание: Избегайте копирования из C++ POD-типов, таких как структуры, для одновременного обновления нескольких членов, если не проверено, что макеты C++ структуры и GLSL блока униформ совпадают.

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/qsgmaterialrhishader-renderstate.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API