Qt3DRender::QComputeCommand Class
class Qt3DRender::QComputeCommandQComponent permet de transmettre des tâches au shader de calcul sur le GPU. En savoir plus...
| En-tête : | #include <qcomputecommand.h> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake : | QT += 3drender |
| En QML : | ComputeCommand |
| Hérite de : | Qt3DCore::QComponent |
| Statut : | Obsolète |
Cette classe est obsolète. Nous déconseillons fortement de l'utiliser dans du nouveau code.
Propriétés
- runType : RunType
- workGroupX : int
- workGroupY : int
- workGroupZ : int
Fonctions publiques
| QComputeCommand(Qt3DCore::QNode *parent = nullptr) | |
| Qt3DRender::QComputeCommand::RunType | runType() const |
| int | workGroupX() const |
| int | workGroupY() const |
| int | workGroupZ() const |
Emplacements publics
| void | setRunType(Qt3DRender::QComputeCommand::RunType runType) |
| void | setWorkGroupX(int workGroupX) |
| void | setWorkGroupY(int workGroupY) |
| void | setWorkGroupZ(int workGroupZ) |
| void | trigger(int frameCount = 1) |
| void | trigger(int workGroupX, int workGroupY, int workGroupZ, int frameCount = 1) |
Signaux
| void | runTypeChanged() |
| void | workGroupXChanged() |
| void | workGroupYChanged() |
| void | workGroupZChanged() |
Description détaillée
Une commande de calcul ( Qt3DRender::QComputeCommand ) sert à émettre des tâches pour le shader de calcul. Le shader de calcul est spécifié dans le composant « QMaterial » de l’entité à laquelle la commande QComputeCommand est ajoutée. Les propriétés « workGroupX », « workGroupY » et « workGroupZ » spécifient la taille des groupes de travail pour l’invocation du shader de calcul. Le nœud « Qt3DRender::QDispatchCompute » doit être présent dans le FrameGraph pour que les commandes soient effectivement émises.
Remarque : si la politique de rendu est définie sur « Qt3DRender::QRenderSettings::OnDemand » et qu’aucune modification n’est apportée à la scène, l’ ComputeCommand ne sera pas invoqué de manière répétée. La politique de rendu « Qt3DRender::QRenderSettings::Always » doit être définie pour que l’ ComputeCommand soit invoqué de manière répétée s’il n’y a aucune autre modification de la scène déclenchant le rendu d’une nouvelle image.
Documentation des propriétés
runType : RunType
Indique si la commande de calcul doit être exécutée à chaque image ou déclenchée manuellement.
Si l'option « Continu » est sélectionnée, la commande de calcul est exécutée à chaque image. Il s'agit du paramètre par défaut.
Si l'option est réglée sur « Manuel », la commande de calcul est exécutée pendant un nombre donné d'images, puis le composant se désactive.
Fonctions d'accès :
| Qt3DRender::QComputeCommand::RunType | runType() const |
| void | setRunType(Qt3DRender::QComputeCommand::RunType runType) |
Signal de notification :
| void | runTypeChanged() |
workGroupX : int
Définit la taille du groupe de travail X.
Fonctions d'accès :
| int | workGroupX() const |
| void | setWorkGroupX(int workGroupX) |
Signal de notification :
| void | workGroupXChanged() |
workGroupY : int
Définit la taille du groupe de travail Y.
Fonctions d'accès :
| int | workGroupY() const |
| void | setWorkGroupY(int workGroupY) |
Signal de notification :
| void | workGroupYChanged() |
workGroupZ : int
Définit la taille du groupe de travail Z.
Fonctions d'accès :
| int | workGroupZ() const |
| void | setWorkGroupZ(int workGroupZ) |
Signal de notification :
| void | workGroupZChanged() |
Documentation des fonctions membres
[explicit] QComputeCommand::QComputeCommand(Qt3DCore::QNode *parent = nullptr)
Le constructeur crée une nouvelle instance de ` Qt3DRender::QComputeCommand ` avec l'parent` spécifiée.
[slot] void QComputeCommand::setWorkGroupX(int workGroupX)
Définit le groupe de travail de la première dimension sur « workGroupX ».
Remarque : fonctionde définition de la propriété workGroupX.
Voir aussi workGroupX().
[slot] void QComputeCommand::setWorkGroupY(int workGroupY)
Définit le groupe de travail de la deuxième dimension sur « workGroupY ».
Remarque : fonctionde définition de la propriété workGroupY.
Voir aussi workGroupY().
[slot] void QComputeCommand::setWorkGroupZ(int workGroupZ)
Définit le groupe de travail de la troisième dimension sur « workGroupZ ».
Remarque : fonctionde définition de la propriété workGroupZ.
Voir également workGroupZ().
[slot] void QComputeCommand::trigger(int frameCount = 1)
Lorsque le type d'exécution est défini sur « Manuel », l'appel du déclencheur entraîne l'exécution de la commande de calcul pour les prochaines trames d'frameCount. Une fois l'exécution terminée, la propriété « enabled » sera définie sur « false ».
Remarque : cet emplacement est surchargé. Pour vous connecter à cet emplacement :
// Connect using qOverload:
connect(sender, &SenderClass::signal,
computeCommand, qOverload(&QComputeCommand::trigger));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
computeCommand, [receiver = computeCommand](int frameCount) { receiver->trigger(frameCount); }); [slot] void QComputeCommand::trigger(int workGroupX, int workGroupY, int workGroupZ, int frameCount = 1)
Lorsque le type d'exécution est défini sur « Manuel », l'appel du déclencheur entraîne l'exécution de la commande de calcul pour les prochaines trames frameCount. Une fois l'exécution terminée, la propriété « enabled » sera définie sur « false ». La taille du groupe de travail précédemment définie sera remplacée par workGroupX, workGroupY, workGroupZ.
Remarque : ce slot est surchargé. Pour vous connecter à ce slot :
// Connect using qOverload:
connect(sender, &SenderClass::signal,
computeCommand, qOverload(&QComputeCommand::trigger));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
computeCommand, [receiver = computeCommand](int workGroupX, int workGroupY, int workGroupZ, int frameCount) { receiver->trigger(workGroupX, workGroupY, workGroupZ, frameCount); }); © 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.