Класс QComputeCommand
класс Qt3DRender::QComputeCommandQComponent для выдачи задач для вычислительного шейдера на графическом процессоре. Подробнее...
| Заголовок: | #include <QComputeCommand> |
| CMake: | find_package(Qt6 COMPONENTS 3drender REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| С момента: | Qt 5.7 |
| Инициализируется: | ComputeCommand |
| Наследует: | Qt3DCore::QComponent |
Свойства
- runType : RunType
- workGroupX : int
- workGroupY : int
- workGroupZ : int
Открытые функции
| QComputeCommand(Qt3DCore::QNode *parent = nullptr) | |
| Qt3DRender::QComputeCommand::RunType | runType() const |
| int | workGroupX() const |
| int | workGroupY() const |
| int | workGroupZ() const |
Открытые слоты
| void | setRunType(Qt3DRender::QComputeCommand::RunType runType) |
| void | setWorkGroupX(int workGroupX) |
| void | setWorkGroupY(int workGroupY) |
| void | setWorkGroupZ(int workGroupZ) |
| void | trigger(int workGroupX, int workGroupY, int workGroupZ, int frameCount = 1) |
| void | trigger(int frameCount = 1) |
Сигналы
| void | runTypeChanged() |
| void | workGroupXChanged() |
| void | workGroupYChanged() |
| void | workGroupZChanged() |
Подробное описание
Класс Qt3DRender::QComputeCommand используется для выдачи задач для вычислительного шейдера. Вычислительный шейдер задаётся в компоненте QMaterial того же объекта, к которому добавлен QComputeCommand. Свойства workGroupX, workGroupY и workGroupZ задают размеры рабочих групп для вызова вычислительного шейдера. Узел Qt3DRender::QDispatchCompute должен присутствовать в FrameGraph, чтобы фактически выполнить команды.
Примечание: Если политика рендеринга установлена в Qt3DRender::QRenderSettings::OnDemand и нет изменений в сцене, то ComputeCommand не будет вызываться повторно. Для того, чтобы ComputeCommand вызывался повторно, если нет других изменений в сцене, которые вызывают рендеринг нового кадра, необходимо установить политику рендеринга Qt3DRender::QRenderSettings::Always.
Документация по свойствам
runType : RunType
Определяет, должен ли вычислительный командный обрабатываться на каждом кадре или вручную.
Если установлено Continuous, вычислительная команда выполняется на каждом кадре. Это значение по умолчанию.
Если установлено Manual, вычислительная команда выполняется заданное количество кадров, а затем компонент отключается.
Функции доступа:
| Qt3DRender::QComputeCommand::RunType | runType() const |
| void | setRunType(Qt3DRender::QComputeCommand::RunType runType) |
Сигнал оповещения:
| void | runTypeChanged() |
workGroupX : int
Указывает размер рабочей группы по оси X.
Функции доступа:
| int | workGroupX() const |
| void | setWorkGroupX(int workGroupX) |
Сигнал оповещения:
| void | workGroupXChanged() |
workGroupY : int
Указывает размер рабочей группы по оси Y.
Функции доступа:
| int | workGroupY() const |
| void | setWorkGroupY(int workGroupY) |
Сигнал оповещения:
| void | workGroupYChanged() |
workGroupZ : int
Указывает размер рабочей группы по оси Z.
Функции доступа:
| int | workGroupZ() const |
| void | setWorkGroupZ(int workGroupZ) |
Сигнал оповещения:
| void | workGroupZChanged() |
Документация по функциям-членам
QComputeCommand::QComputeCommand(Qt3DCore::QNode *parent = nullptr)
Конструктор создаёт новый экземпляр Qt3DRender::QComputeCommand с указанным parent.
[slot] void QComputeCommand::setWorkGroupX(int workGroupX)
Устанавливает размер рабочей группы по первой размерности в workGroupX.
Примечание: Функция-установщик для свойства workGroupX.
См. также workGroupX().
[slot] void QComputeCommand::setWorkGroupY(int workGroupY)
Устанавливает размер рабочей группы по второй размерности в workGroupY.
Примечание: Функция-установщик для свойства workGroupY.
См. также workGroupY().
[slot] void QComputeCommand::setWorkGroupZ(int workGroupZ)
Устанавливает размер рабочей группы по третьей размерности в workGroupZ.
Примечание: Функция-сеттер для свойства workGroupZ.
См. также workGroupZ().
[slot] void QComputeCommand::trigger(int workGroupX, int workGroupY, int workGroupZ, int frameCount = 1)
Когда тип выполнения установлен в Ручной, вызов trigger приведет к выполнению вычислительной команды в течение следующих frameCount кадров. По завершении выполнения свойство enabled будет установлено в false. Размер рабочей группы, установленный ранее, будет перезаписан значениями workGroupX, workGroupY, workGroupZ.
[slot] void QComputeCommand::trigger(int frameCount = 1)
Когда тип выполнения установлен в Ручной, вызов trigger приведет к выполнению вычислительной команды в течение следующих frameCount кадров. По завершении выполнения свойство enabled будет установлено в false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qt3drender-qcomputecommand.html