QRhiShaderStage Class
Spécifie le type et le code du shader pour une étape de shader dans le pipeline. Plus d'informations...
| En-tête : | #include <rhi/qrhi.h> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate) |
| qmake : | QT += gui-private |
| Depuis : | Qt 6.6 |
Types publics
| enum | Type { Vertex, TessellationControl, TessellationEvaluation, Fragment, Compute, Geometry } |
Fonctions publiques
| QRhiShaderStage() | |
| QRhiShaderStage(QRhiShaderStage::Type type, const QShader &shader, QShader::Variant v = QShader::StandardShader) | |
| void | setShader(const QShader &s) |
| void | setShaderVariant(QShader::Variant v) |
| void | setType(QRhiShaderStage::Type t) |
| QShader | shader() const |
| QShader::Variant | shaderVariant() const |
| QRhiShaderStage::Type | type() const |
Non-membres apparentés
| size_t | qHash(const QRhiShaderStage &key, size_t seed = 0) |
| bool | operator!=(const QRhiShaderStage &a, const QRhiShaderStage &b) |
| bool | operator==(const QRhiShaderStage &a, const QRhiShaderStage &b) |
Description détaillée
Lors de la configuration d'un site QRhiGraphicsPipeline, une collection d'étapes de shaders est spécifiée. Le QRhiShaderStage contient un QShader et quelques métadonnées associées, telles que l'étape du pipeline graphique et le shader variant à sélectionner. Il n'est pas nécessaire de spécifier le langage ou la version du shader car le backend QRhi utilisé au moment de l'exécution se chargera de choisir la version appropriée du shader à partir de la collection contenue dans QShader.
L'utilisation typique est en combinaison avec QRhiGraphicsPipeline::setShaderStages(), illustré ici avec une approche simple pour charger QShader à partir de fichiers .qsb générés hors ligne ou au moment de la construction :
QShader getShader(const QString &name) { QFile f(name); return f.open(QIODevice::ReadOnly) ? QShader::fromSerialized(f.readAll()) : QShader(); } QShader vs = getShader("material.vert.qsb"); QShader fs = getShader("material.frag.qsb"); pipeline->setShaderStages({ { QRhiShaderStage::Vertex, vs }, { QRhiShaderStage::Fragment, fs } });
Remarque : il s'agit d'une API RHI avec des garanties de compatibilité limitées, voir QRhi pour plus de détails.
Documentation sur les types de membres
enum QRhiShaderStage::Type
Spécifie le type de l'étage de shaders.
| Constante | Valeur | Description de l'étape |
|---|---|---|
QRhiShaderStage::Vertex | 0 | Etape Sommet |
QRhiShaderStage::TessellationControl | 1 | Phase de contrôle de la tessellation (nuanceur de coques). Doit être utilisé uniquement lorsque la fonction QRhi::Tessellation est prise en charge. |
QRhiShaderStage::TessellationEvaluation | 2 | Étape d'évaluation de la tessellation (nuanceur de domaine). Doit être utilisé uniquement lorsque la fonction QRhi::Tessellation est prise en charge. |
QRhiShaderStage::Fragment | 4 | Étape de fragmentation (nuanceur de pixels) |
QRhiShaderStage::Compute | 5 | Étape de calcul. Doit être utilisée uniquement lorsque la fonctionnalité QRhi::Compute est prise en charge. |
QRhiShaderStage::Geometry | 3 | Phase de géométrie. Doit être utilisé uniquement lorsque la fonctionnalité QRhi::GeometryShader est prise en charge. |
Documentation des fonctions membres
[noexcept] QRhiShaderStage::QRhiShaderStage()
Construit une description d'étape de shader pour l'étape de vertex avec un QShader vide.
QRhiShaderStage::QRhiShaderStage(QRhiShaderStage::Type type, const QShader &shader, QShader::Variant v = QShader::StandardShader)
Construit une description de scène de shader avec le type de la scène et le shader.
La variante du nuanceur v devient par défaut QShader::StandardShader. Un site QShader contient plusieurs versions sources et binaires d'un nuanceur. En outre, il peut également contenir des variantes du shader avec un code légèrement modifié. v peut alors être utilisé pour sélectionner la variante souhaitée.
void QRhiShaderStage::setShader(const QShader &s)
Définit la collection de shaders s.
Voir également shader().
void QRhiShaderStage::setShaderVariant(QShader::Variant v)
Définit la variante de shader demandée v.
Voir également shaderVariant().
void QRhiShaderStage::setType(QRhiShaderStage::Type t)
Fixe le type de la scène à t. Les fixateurs sont rarement nécessaires dans la pratique. La plupart des applications utiliseront probablement le constructeur QRhiShaderStage dans la plupart des cas.
Voir également type().
QShader QRhiShaderStage::shader() const
Renvoie l'adresse QShader à utiliser pour cette étape du pipeline graphique.
Voir aussi setShader().
QShader::Variant QRhiShaderStage::shaderVariant() const
Renvoie la variante de shader demandée.
Voir aussi setShaderVariant().
QRhiShaderStage::Type QRhiShaderStage::type() const
Renvoie le type de la scène.
Voir également setType().
Non-membres associés
[noexcept] size_t qHash(const QRhiShaderStage &key, size_t seed = 0)
Renvoie la valeur de hachage pour key, en utilisant seed comme base de calcul.
[noexcept] bool operator!=(const QRhiShaderStage &a, const QRhiShaderStage &b)
Renvoie false si les valeurs des deux objets QRhiShaderStage a et b sont égales ; sinon, renvoie true.
[noexcept] bool operator==(const QRhiShaderStage &a, const QRhiShaderStage &b)
Renvoie true si les valeurs des deux objets QRhiShaderStage a et b sont égales.
© 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.