Класс 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.1/qt3drender-qcomputecommand.html