Sur cette page

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

enum Flag { GlslEs }
flags Flags

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
(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.

ConstanteValeurDescription
QShaderVersion::GlslEs0x01Indique 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.