Qt 5.9 | Qt 3D | C++ Classes | QComputeCommand

Qt 5.9.9 Reference Documentation

# QComputeCommand Class

(Qt3DRender::QComputeCommand)

QComponent to issue work for the compute shader on GPU More...

Header: | #include <QComputeCommand>
qmake: | QT += 3drender
Since: | Qt 5.7
Instantiated By: | ComputeCommand
Inherits: | Qt3DCore::QComponent

- List of all members, including inherited members

## Properties

- workGroupX : int
- workGroupY : int
- workGroupZ : int

- 1 property inherited from Qt3DCore::QComponent
- 3 properties inherited from Qt3DCore::QNode

## Public Functions

| QComputeCommand(Qt3DCore::QNode *parent = nullptr)
int | workGroupX() const
int | workGroupY() const
int | workGroupZ() const

- 2 public functions inherited from Qt3DCore::QComponent
- 11 public functions inherited from Qt3DCore::QNode

## Public Slots

void | setWorkGroupX(int workGroupX)
void | setWorkGroupY(int workGroupY)
void | setWorkGroupZ(int workGroupZ)

- 1 public slot inherited from Qt3DCore::QComponent
- 3 public slots inherited from Qt3DCore::QNode

## Signals

void | workGroupXChanged()
void | workGroupYChanged()
void | workGroupZChanged()

- 3 signals inherited from Qt3DCore::QComponent
- 4 signals inherited from Qt3DCore::QNode

### Additional Inherited Members

- 2 protected functions inherited from Qt3DCore::QNode

## Detailed Description

QComponent to issue work for the compute shader on GPU

A Qt3DRender::QComputeCommand is used to issue work for the compute shader. The compute shader is specified in the QMaterial component of the same entity the QComputeCommand is added to. The workGroupX, workGroupY and workGroupZ properties specify the work group sizes for the compute shader invocation. Qt3DRender::QDispatchCompute node needs to be present in the FrameGraph to actually issue the commands.

Note: If the rendering policy is set to Qt3DRender::QRenderSettings::OnDemand and there are no changes to the scene, the ComputeCommand will not be invoked repeatedly. The Qt3DRender::QRenderSettings::Always render policy must be set for the ComputeCommand to be repeatedly invoked if there are no other changes to the scene that triggers rendering a new frame.

## Property Documentation

### workGroupX : int

Specifies X workgroup size.

Access functions:

int | workGroupX() const
void | setWorkGroupX(int workGroupX)

Notifier signal:

void | workGroupXChanged()

### workGroupY : int

Specifies Y workgroup size.

Access functions:

int | workGroupY() const
void | setWorkGroupY(int workGroupY)

Notifier signal:

void | workGroupYChanged()

### workGroupZ : int

Specifies Z workgroup size.

Access functions:

int | workGroupZ() const
void | setWorkGroupZ(int workGroupZ)

Notifier signal:

void | workGroupZChanged()

## Member Function Documentation

### QComputeCommand::QComputeCommand(Qt3DCore::QNode *parent = nullptr)

The constructor creates a new Qt3DRender::QComputeCommand instance with the specified parent.

### `[slot]` void QComputeCommand::setWorkGroupX(int workGroupX)

Sets the workgroup for the first dimension to workGroupX.

Note: Setter function for property workGroupX.

See also workGroupX().

### `[slot]` void QComputeCommand::setWorkGroupY(int workGroupY)

Sets the workgroup for the second dimension to workGroupY.

Note: Setter function for property workGroupY.

See also workGroupY().

### `[slot]` void QComputeCommand::setWorkGroupZ(int workGroupZ)

Sets the workgroup for the third dimension to workGroupZ.

Note: Setter function for property workGroupZ.

See also workGroupZ().