Класс QComputeCommand
класс Qt3DRender::QComputeCommandQComponent для выполнения задач для шейдера вычислений на GPU. Подробнее...
| Заголовок: | #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 не будет вызываться повторно. Необходимо установить политику рендеринга Qt3DRender::QRenderSettings::Always для ComputeCommand, чтобы он вызывался повторно, если в сцене нет других изменений, которые запускают рендеринг нового кадра.
Документация по свойствам
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.2/qt3drender-qcomputecommand.html