Spec-Zone.ru › Qt 5.15

Класс RenderState

класс QSGMaterialRhiShader::RenderState

Оборачивает текущее состояние отрисовки во время вызова 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.15/qsgmaterialrhishader-renderstate.html

Spec-Zone.ru

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