QShaderVersion Class
Spécifie la version du langage de rendu. En savoir plus…
| En-tête : | #include <qshader.h> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Depuis : | Qt 6.6 |
Types publics
Fonctions publiques
| QShaderVersion() | |
| QShaderVersion(int v, QShaderVersion::Flags f = Flags()) | |
| QShaderVersion::Flags | flags() const |
| void | setFlags(QShaderVersion::Flags f) |
| void | setVersion(int v) |
| int | version() const |
Éléments non membres associés
(since 6.12) size_t | qHash(QShaderVersion key, size_t seed) |
| bool | operator!=(const QShaderVersion &lhs, const QShaderVersion &rhs) |
| bool | operator<(const QShaderVersion &lhs, const QShaderVersion &rhs) |
| bool | operator==(const QShaderVersion &lhs, const QShaderVersion &rhs) |
Description détaillée
Alors que des langages tels que SPIR-V ou le Metal Shading Language utilisent des numéros de version traditionnels, les shaders destinés à d’autres API peuvent recourir à des schémas de versionnement légèrement différents. Tous sont toutefois mappés ici à un numéro de version unique. Pour HLSL, la version fait référence à la version du Shader Model, comme 5.0, 5.1 ou 6.0. Pour GLSL, un indicateur supplémentaire est nécessaire pour choisir entre GLSL et GLSL/ES.
Vous trouverez ci-dessous une liste des exemples les plus courants de versions de shaders pour différentes API graphiques :
- Vulkan (SPIR-V) : 100
- OpenGL : 120, 330, 440, etc.
- OpenGL ES : 100 avec GlslEs, 300 avec GlslEs, etc.
- Direct3D : 50, 51, 60
- Metal : 12, 20
Un objet QShaderVersion construit par défaut contient une version de 100 et aucun indicateur n’est activé.
Remarque : il s'agit d'une API RHI dont la compatibilité n'est pas pleinement garantie ; consultez QShader pour plus de détails.
Documentation sur les types de membres
enum QShaderVersion::Flag
flags QShaderVersion::Flags
Décrit les indicateurs pouvant être activés.
| Constante | Valeur | Description |
|---|---|---|
QShaderVersion::GlslEs | 0x01 | Indique que GLSL/ES est destiné à être utilisé en combinaison avec GlslShader |
Le type Flags est un typedef pour QFlags<Flag>. Il stocke une combinaison OR de valeurs Flag.
Documentation des fonctions membres
[constexpr noexcept default] QShaderVersion::QShaderVersion()
QShaderVersion::QShaderVersion(int v, QShaderVersion::Flags f = Flags())
Crée un nouvel objet `QShaderVersion` avec la version v et les indicateurs f.
QShaderVersion::Flags QShaderVersion::flags() const
Renvoie les indicateurs.
Voir aussi setFlags().
void QShaderVersion::setFlags(QShaderVersion::Flags f)
Définit les indicateurs « f ».
Voir également flags().
void QShaderVersion::setVersion(int v)
Définit la version du langage de rendu sur « v ».
Voir également version().
int QShaderVersion::version() const
Renvoie la version.
Voir aussi setVersion().
Éléments non membres associés
[noexcept, since 6.12] size_t qHash(QShaderVersion key, size_t seed)
Renvoie la valeur de hachage de key, en utilisant seed comme graine pour le calcul.
Remarque : sur INTEGRITY, cette fonction est disponible depuis la version 6.2.
Cette fonction a été introduite dans Qt 6.12.
[noexcept] bool operator!=(const QShaderVersion &lhs, const QShaderVersion &rhs)
Renvoie « false » si les valeurs des deux objets « QShaderVersion » ( lhs et rhs ) sont identiques ; sinon, renvoie « true ».
[noexcept] bool operator<(const QShaderVersion &lhs, const QShaderVersion &rhs)
Renvoie « true » si lhs est inférieur à rhs.
Définit un ordre de tri entre les deux valeurs QShaderVersion, lhs et rhs.
[noexcept] bool operator==(const QShaderVersion &lhs, const QShaderVersion &rhs)
Renvoie « true » si les deux objets « QShaderVersion » lhs et rhs sont égaux.
© 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.