QShaderDescription Class
Décrit l'interface d'un shader. En savoir plus...
| En-tête : | #include <qshaderdescription.h> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Depuis : | Qt 6.6 |
- Liste de tous les membres, y compris les membres hérités
- QShaderDescription fait partie du rendu 3D.
Types publics
(since 6.6) struct | BlockVariable |
(since 6.6) struct | BuiltinVariable |
(since 6.6) struct | InOutVariable |
(since 6.6) struct | PushConstantBlock |
(since 6.6) struct | StorageBlock |
(since 6.6) struct | UniformBlock |
| enum | BuiltinType { PositionBuiltin, PointSizeBuiltin, ClipDistanceBuiltin, CullDistanceBuiltin, VertexIdBuiltin, …, ViewIndexBuiltin } |
| enum | ImageFlag { ReadOnlyImage, WriteOnlyImage } |
| flags | ImageFlags |
| enum | ImageFormat { ImageFormatUnknown, ImageFormatRgba32f, ImageFormatRgba16f, ImageFormatR32f, ImageFormatRgba8, …, ImageFormatR8ui } |
| enum | QualifierFlag { QualifierReadOnly, QualifierWriteOnly, QualifierCoherent, QualifierVolatile, QualifierRestrict } |
| flags | QualifierFlags |
| enum | TessellationMode { UnknownTessellationMode, TrianglesTessellationMode, QuadTessellationMode, IsolineTessellationMode } |
| enum | TessellationPartitioning { UnknownTessellationPartitioning, EqualTessellationPartitioning, FractionalEvenTessellationPartitioning, FractionalOddTessellationPartitioning } |
| enum | TessellationWindingOrder { UnknownTessellationWindingOrder, CwTessellationWindingOrder, CcwTessellationWindingOrder } |
| enum | VariableType { Unknown, Float, Vec2, Vec3, Vec4, …, Half4 } |
Fonctions publiques
| QShaderDescription() | |
| QShaderDescription(const QShaderDescription &other) | |
| ~QShaderDescription() | |
| QList<QShaderDescription::InOutVariable> | combinedImageSamplers() const |
| std::array<uint, 3> | computeShaderLocalSize() const |
| QList<QShaderDescription::BuiltinVariable> | inputBuiltinVariables() const |
| QList<QShaderDescription::InOutVariable> | inputVariables() const |
| bool | isValid() const |
| QList<QShaderDescription::BuiltinVariable> | outputBuiltinVariables() const |
| QList<QShaderDescription::InOutVariable> | outputVariables() const |
| QList<QShaderDescription::PushConstantBlock> | pushConstantBlocks() const |
| void | serialize(QDataStream *stream, int version) const |
| QList<QShaderDescription::StorageBlock> | storageBlocks() const |
| QList<QShaderDescription::InOutVariable> | storageImages() const |
| QShaderDescription::TessellationMode | tessellationMode() const |
| uint | tessellationOutputVertexCount() const |
| QShaderDescription::TessellationPartitioning | tessellationPartitioning() const |
| QShaderDescription::TessellationWindingOrder | tessellationWindingOrder() const |
| QByteArray | toJson() const |
| QList<QShaderDescription::UniformBlock> | uniformBlocks() const |
| QShaderDescription & | operator=(const QShaderDescription &other) |
Membres publics statiques
| QShaderDescription | deserialize(QDataStream *stream, int version) |
Éléments non-membres associés
| bool | operator==(const QShaderDescription &lhs, const QShaderDescription &rhs) |
Description détaillée
Avertissement : la famille de classes QRhi du module Qt GUI, notamment QShader et QShaderDescription, offre des garanties de compatibilité limitées. Il n'existe aucune garantie de compatibilité au niveau du code source ou des binaires pour ces classes, ce qui signifie que le fonctionnement de l'API n'est garanti qu'avec la version de Qt utilisée pour le développement de l'application. Les modifications entraînant une incompatibilité au niveau du code source sont toutefois destinées à être réduites au minimum et ne seront apportées que dans les versions mineures (6.7, 6.8, etc.). Pour utiliser ces classes dans une application, liez-vous à Qt::GuiPrivate (si vous utilisez CMake), et incluez les en-têtes portant le préfixe rhi, par exemple #include <rhi/qshaderdescription.h>.
Un shader dispose généralement d’un ensemble d’entrées et de sorties. Un shader de sommets, par exemple, comporte un certain nombre de variables d’entrée et peut utiliser un ou plusieurs tampons uniformes pour accéder aux données (par exemple, une matrice modelview) fournies par l’application. Le shader de l’étape des fragments reçoit des données de l’étape des sommets (dans une configuration simple) et peut également s’appuyer sur des données provenant de tampons uniformes, d’images et d’échantillonneurs.
En ce qui concerne les entrées de sommets et la structure des tampons uniformes (quels sont les noms des éléments ? quelles sont leur taille, leur décalage, etc.), les applications et les frameworks peuvent avoir besoin de les découvrir de manière dynamique lors de l’exécution. C’est souvent le cas lorsque le shader n’est pas intégré mais fourni par une entité externe, comme l’utilisateur.
Les API graphiques modernes et allégées ne proposent parfois plus de moyen d’interroger les informations de réflexion du shader à l’exécution. Par conséquent, ces données sont désormais générées automatiquement par QShaderBaker et fournies sous la forme d’un objet `QShaderDescription` pour chaque ` QShader`.
Exemple
Prenons le shader de sommets suivant :
#version 440
layout(location = 0) in vec4 position;
layout(location = 1) in vec3 color;
layout(location = 0) out vec3 v_color;
layout(std140, binding = 0) uniform buf {
mat4 mvp;
float opacity;
} ubuf;
void main()
{
v_color = color;
gl_Position = ubuf.mvp * position;
}Ce shader possède deux entrées : position à l’emplacement 0, de type vec4, et color à l’emplacement 1, de type vec3. Il possède une sortie : v_color, bien que celle-ci ne présente généralement aucun intérêt pour les applications. Plus important encore, il existe un bloc uniforme à la liaison 0, d’une taille de 68 octets et comportant deux membres : une matrice 4x4 nommée mvp à l’offset 0, et un flottant opacity à l’offset 64.
Tout cela est décrit par un objet `QShaderDescription`. `QShaderDescription` peut être sérialisé au format JSON et au format binaire via QDataStream, et peut être désérialisé à partir de ce format binaire. En pratique, cela est rarement nécessaire puisque ` QShader ` gère automatiquement le `QShaderDescription` associé, mais si le `QShaderDescription` du shader ci-dessus était écrit au format JSON (comme le fait l’option « -d » de l’outil qsb ), il ressemblerait à ceci :
{
"inputs": [
{
"location": 1,
"name": "color",
"type": "vec3"
},
{
"location": 0,
"name": "position",
"type": "vec4"
}
],
"outputs": [
{
"location": 0,
"name": "v_color",
"type": "vec3"
}
],
"uniformBlocks": [
{
"binding": 0,
"blockName": "buf",
"members": [
{
"matrixStride": 16,
"name": "mvp",
"offset": 0,
"size": 64,
"type": "mat4"
},
{
"name": "opacity",
"offset": 64,
"size": 4,
"type": "float"
}
],
"set": 0,
"size": 68,
"structName": "ubuf"
}
]
}L'API C++ permet d'accéder à une structure de données comme celle ci-dessus. Par souci de simplicité, les structures internes ne contiennent que des membres de données publics, d'autant plus que leur disposition ne devrait pas changer à l'avenir.
Voir également QShaderBaker et QShader.
Documentation sur les types de membres
enum QShaderDescription::BuiltinType
Type de variable intégrée.
| Constante | Valeur |
|---|---|
QShaderDescription::PositionBuiltin | 0 |
QShaderDescription::PointSizeBuiltin | 1 |
QShaderDescription::ClipDistanceBuiltin | 3 |
QShaderDescription::CullDistanceBuiltin | 4 |
QShaderDescription::VertexIdBuiltin | 5 |
QShaderDescription::InstanceIdBuiltin | 6 |
QShaderDescription::PrimitiveIdBuiltin | 7 |
QShaderDescription::InvocationIdBuiltin | 8 |
QShaderDescription::LayerBuiltin | 9 |
QShaderDescription::ViewportIndexBuiltin | 10 |
QShaderDescription::TessLevelOuterBuiltin | 11 |
QShaderDescription::TessLevelInnerBuiltin | 12 |
QShaderDescription::TessCoordBuiltin | 13 |
QShaderDescription::PatchVerticesBuiltin | 14 |
QShaderDescription::FragCoordBuiltin | 15 |
QShaderDescription::PointCoordBuiltin | 16 |
QShaderDescription::FrontFacingBuiltin | 17 |
QShaderDescription::SampleIdBuiltin | 18 |
QShaderDescription::SamplePositionBuiltin | 19 |
QShaderDescription::SampleMaskBuiltin | 20 |
QShaderDescription::FragDepthBuiltin | 22 |
QShaderDescription::NumWorkGroupsBuiltin | 24 |
QShaderDescription::WorkgroupSizeBuiltin | 25 |
QShaderDescription::WorkgroupIdBuiltin | 26 |
QShaderDescription::LocalInvocationIdBuiltin | 27 |
QShaderDescription::GlobalInvocationIdBuiltin | 28 |
QShaderDescription::LocalInvocationIndexBuiltin | 29 |
QShaderDescription::VertexIndexBuiltin | 42 |
QShaderDescription::InstanceIndexBuiltin | 43 |
QShaderDescription::ViewIndexBuiltin | 4440 |
enum QShaderDescription::ImageFlag
flags QShaderDescription::ImageFlags
Indicateurs d'image.
| Constante | Valeur |
|---|---|
QShaderDescription::ReadOnlyImage | 1 << 0 |
QShaderDescription::WriteOnlyImage | 1 << 1 |
Le type ImageFlags est un typedef pour QFlags<ImageFlag>. Il stocke une combinaison OR de valeurs ImageFlag.
enum QShaderDescription::ImageFormat
Format d'image.
| Constante | Valeur |
|---|---|
QShaderDescription::ImageFormatUnknown | 0 |
QShaderDescription::ImageFormatRgba32f | 1 |
QShaderDescription::ImageFormatRgba16f | 2 |
QShaderDescription::ImageFormatR32f | 3 |
QShaderDescription::ImageFormatRgba8 | 4 |
QShaderDescription::ImageFormatRgba8Snorm | 5 |
QShaderDescription::ImageFormatRg32f | 6 |
QShaderDescription::ImageFormatRg16f | 7 |
QShaderDescription::ImageFormatR11fG11fB10f | 8 |
QShaderDescription::ImageFormatR16f | 9 |
QShaderDescription::ImageFormatRgba16 | 10 |
QShaderDescription::ImageFormatRgb10A2 | 11 |
QShaderDescription::ImageFormatRg16 | 12 |
QShaderDescription::ImageFormatRg8 | 13 |
QShaderDescription::ImageFormatR16 | 14 |
QShaderDescription::ImageFormatR8 | 15 |
QShaderDescription::ImageFormatRgba16Snorm | 16 |
QShaderDescription::ImageFormatRg16Snorm | 17 |
QShaderDescription::ImageFormatRg8Snorm | 18 |
QShaderDescription::ImageFormatR16Snorm | 19 |
QShaderDescription::ImageFormatR8Snorm | 20 |
QShaderDescription::ImageFormatRgba32i | 21 |
QShaderDescription::ImageFormatRgba16i | 22 |
QShaderDescription::ImageFormatRgba8i | 23 |
QShaderDescription::ImageFormatR32i | 24 |
QShaderDescription::ImageFormatRg32i | 25 |
QShaderDescription::ImageFormatRg16i | 26 |
QShaderDescription::ImageFormatRg8i | 27 |
QShaderDescription::ImageFormatR16i | 28 |
QShaderDescription::ImageFormatR8i | 29 |
QShaderDescription::ImageFormatRgba32ui | 30 |
QShaderDescription::ImageFormatRgba16ui | 31 |
QShaderDescription::ImageFormatRgba8ui | 32 |
QShaderDescription::ImageFormatR32ui | 33 |
QShaderDescription::ImageFormatRgb10a2ui | 34 |
QShaderDescription::ImageFormatRg32ui | 35 |
QShaderDescription::ImageFormatRg16ui | 36 |
QShaderDescription::ImageFormatRg8ui | 37 |
QShaderDescription::ImageFormatR16ui | 38 |
QShaderDescription::ImageFormatR8ui | 39 |
enum QShaderDescription::QualifierFlag
flags QShaderDescription::QualifierFlags
Indicateurs de qualification.
| Constante | Valeur |
|---|---|
QShaderDescription::QualifierReadOnly | 1 << 0 |
QShaderDescription::QualifierWriteOnly | 1 << 1 |
QShaderDescription::QualifierCoherent | 1 << 2 |
QShaderDescription::QualifierVolatile | 1 << 3 |
QShaderDescription::QualifierRestrict | 1 << 4 |
Le type QualifierFlags est une définition de type (typedef) pour QFlags<QualifierFlag>. Il stocke une combinaison OU de valeurs QualifierFlag.
enum QShaderDescription::TessellationMode
| Constante | Valeur |
|---|---|
QShaderDescription::UnknownTessellationMode | 0 |
QShaderDescription::TrianglesTessellationMode | 1 |
QShaderDescription::QuadTessellationMode | 2 |
QShaderDescription::IsolineTessellationMode | 3 |
enum QShaderDescription::TessellationPartitioning
| Constante | Valeur |
|---|---|
QShaderDescription::UnknownTessellationPartitioning | 0 |
QShaderDescription::EqualTessellationPartitioning | 1 |
QShaderDescription::FractionalEvenTessellationPartitioning | 2 |
QShaderDescription::FractionalOddTessellationPartitioning | 3 |
enum QShaderDescription::TessellationWindingOrder
| Constante | Valeur |
|---|---|
QShaderDescription::UnknownTessellationWindingOrder | 0 |
QShaderDescription::CwTessellationWindingOrder | 1 |
QShaderDescription::CcwTessellationWindingOrder | 2 |
enum QShaderDescription::VariableType
Représente le type d'une variable ou d'un élément de bloc.
| Constante | Valeur | Description |
|---|---|---|
QShaderDescription::Unknown | 0 | |
QShaderDescription::Float | 1 | |
QShaderDescription::Vec2 | 2 | |
QShaderDescription::Vec3 | 3 | |
QShaderDescription::Vec4 | 4 | |
QShaderDescription::Mat2 | 5 | |
QShaderDescription::Mat2x3 | 6 | |
QShaderDescription::Mat2x4 | 7 | |
QShaderDescription::Mat3 | 8 | |
QShaderDescription::Mat3x2 | 9 | |
QShaderDescription::Mat3x4 | 10 | |
QShaderDescription::Mat4 | 11 | |
QShaderDescription::Mat4x2 | 12 | |
QShaderDescription::Mat4x3 | 13 | |
QShaderDescription::Int | 14 | |
QShaderDescription::Int2 | 15 | |
QShaderDescription::Int3 | 16 | |
QShaderDescription::Int4 | 17 | |
QShaderDescription::Uint | 18 | |
QShaderDescription::Uint2 | 19 | |
QShaderDescription::Uint3 | 20 | |
QShaderDescription::Uint4 | 21 | |
QShaderDescription::Bool | 22 | |
QShaderDescription::Bool2 | 23 | |
QShaderDescription::Bool3 | 24 | |
QShaderDescription::Bool4 | 25 | |
QShaderDescription::Double | 26 | |
QShaderDescription::Double2 | 27 | |
QShaderDescription::Double3 | 28 | |
QShaderDescription::Double4 | 29 | |
QShaderDescription::DMat2 | 30 | |
QShaderDescription::DMat2x3 | 31 | |
QShaderDescription::DMat2x4 | 32 | |
QShaderDescription::DMat3 | 33 | |
QShaderDescription::DMat3x2 | 34 | |
QShaderDescription::DMat3x4 | 35 | |
QShaderDescription::DMat4 | 36 | |
QShaderDescription::DMat4x2 | 37 | |
QShaderDescription::DMat4x3 | 38 | |
QShaderDescription::Sampler1D | 39 | |
QShaderDescription::Sampler2D | 40 | |
QShaderDescription::Sampler2DMS | 41 | |
QShaderDescription::Sampler3D | 42 | |
QShaderDescription::SamplerCube | 43 | |
QShaderDescription::Sampler1DArray | 44 | |
QShaderDescription::Sampler2DArray | 45 | |
QShaderDescription::Sampler2DMSArray | 46 | |
QShaderDescription::Sampler3DArray | 47 | |
QShaderDescription::SamplerCubeArray | 48 | |
QShaderDescription::SamplerRect | 49 | |
QShaderDescription::SamplerBuffer | 50 | |
QShaderDescription::SamplerExternalOES | 51 | |
QShaderDescription::Sampler | 52 | Pour les échantillonneurs autonomes. |
QShaderDescription::Image1D | 53 | |
QShaderDescription::Image2D | 54 | |
QShaderDescription::Image2DMS | 55 | |
QShaderDescription::Image3D | 56 | |
QShaderDescription::ImageCube | 57 | |
QShaderDescription::Image1DArray | 58 | |
QShaderDescription::Image2DArray | 59 | |
QShaderDescription::Image2DMSArray | 60 | |
QShaderDescription::Image3DArray | 61 | |
QShaderDescription::ImageCubeArray | 62 | |
QShaderDescription::ImageRect | 63 | |
QShaderDescription::ImageBuffer | 64 | |
QShaderDescription::Struct | 65 | |
QShaderDescription::Half | 66 | |
QShaderDescription::Half2 | 67 | |
QShaderDescription::Half3 | 68 | |
QShaderDescription::Half4 | 69 |
Documentation sur les fonctions de membre
QShaderDescription::QShaderDescription()
Crée un nouvel objet QShaderDescription vide.
Remarque : le fait qu'il soit vide implique que la méthode ` isValid()` renvoie ` false ` pour l'instance nouvellement créée.
QShaderDescription::QShaderDescription(const QShaderDescription &other)
Crée une copie de other.
[noexcept] QShaderDescription::~QShaderDescription()
Destructeur.
QList<QShaderDescription::InOutVariable> QShaderDescription::combinedImageSamplers() const
Renvoie la liste des échantillonneurs d'images combinés
Avec des shaders GLSL/Vulkan comme source, un uniforme layout(binding = 1) uniform sampler2D tex; génère ce qui suit : (présenté ici sous forme de texte JSON)
"combinedImageSamplers": [
{
"binding": 1,
"name": "tex",
"set": 0,
"type": "sampler2D"
}
]Cela ne signifie pas que les versions du shader écrites dans d’autres langages doivent également utiliser un échantillonneur d’image combiné, d’autant plus que ce concept n’existe pas forcément partout. Par exemple, une version HLSL utilisera probablement simplement un objet `Texture2D` et un objet `SamplerState` avec les registres `t1` et `s1`, respectivement.
std::array<uint, 3> QShaderDescription::computeShaderLocalSize() const
Renvoie la taille locale d'un shader de calcul.
Par exemple, pour un shader de calcul présentant la déclaration suivante, la fonction renvoie { 256, 16, 1}.
layout(local_size_x = 256, local_size_y = 16, local_size_z = 1) in;[static] QShaderDescription QShaderDescription::deserialize(QDataStream *stream, int version)
Renvoie un nouvel objet ` QShaderDescription ` chargé à partir de stream. ` version ` spécifie la version de qsb.
Voir également serialize().
QList<QShaderDescription::BuiltinVariable> QShaderDescription::inputBuiltinVariables() const
Renvoie la liste des fonctions intégrées actives utilisées en entrée. Par exemple, un shader d’évaluation de tessellation lisant les valeurs de `gl_TessCoord` et `gl_Position` affichera ici les éléments suivants : ` TessCoordBuiltin ` et ` PositionBuiltin `.
QList<QShaderDescription::InOutVariable> QShaderDescription::inputVariables() const
Renvoie la liste des variables d'entrée. Celle-ci comprend les entrées de sommets (parfois appelées « attributs ») pour l'étape des sommets, ainsi que les entrées pour les autres étapes (parfois appelées « variables »).
bool QShaderDescription::isValid() const
Renvoie « true » si l'QShaderDescription ion contient au moins une entrée dans l'une des listes « variable » ou « block ».
QList<QShaderDescription::BuiltinVariable> QShaderDescription::outputBuiltinVariables() const
Renvoie la liste des variables intégrées actives utilisées comme données d'entrée. Par exemple, un shader de sommet aura très souvent la variable intégrée « PositionBuiltin » comme sortie.
QList<QShaderDescription::InOutVariable> QShaderDescription::outputVariables() const
Renvoie la liste des variables de sortie.
QList<QShaderDescription::PushConstantBlock> QShaderDescription::pushConstantBlocks() const
Renvoie la liste des blocs de constantes « push ».
Remarque : évitez de recourir aux blocs constants « push » pour les shaders destinés à être utilisés avec l'interface matérielle de rendu Qt, car celle-ci ne les prend actuellement pas en charge.
void QShaderDescription::serialize(QDataStream *stream, int version) const
Sérialise cette URL QShaderDescription vers stream. version spécifie la version de qsb.
Voir également deserialize() et toJson().
QList<QShaderDescription::StorageBlock> QShaderDescription::storageBlocks() const
Renvoie la liste des blocs de stockage de shaders.
Par exemple, avec des shaders GLSL/Vulkan comme source, la déclaration
struct Stuff {
vec2 a;
vec2 b;
};
layout(std140, binding = 0) buffer StuffSsbo {
vec4 whatever;
Stuff stuff[];
} buf;génère ce qui suit : (présenté ici sous forme de JSON textuel)
"storageBlocks": [ {
"binding": 0,
"blockName": "StuffSsbo",
"instanceName": "buf",
"knownSize": 16,
"runtimeArrayStride": 16
"members": [
{
"name": "whatever",
"offset": 0,
"size": 16,
"type": "vec4"
},
{
"arrayDims": [
0
],
"name": "stuff",
"offset": 16,
"size": 0,
"structMembers": [
{
"name": "a",
"offset": 0,
"size": 8,
"type": "vec2"
},
{
"name": "b",
"offset": 8,
"size": 8,
"type": "vec2"
}
],
"type": "struct"
}
],
"set": 0
} ]Remarque : la taille du dernier élément du bloc de stockage n’est pas définie. Cela se traduit par une valeur « size » égale à 0 et une dimension de tableau de « [0] ». L’ knownSize du bloc de stockage exclut la taille du dernier élément, car celle-ci ne sera connue qu’au moment de l’exécution. Le pas en octets entre les éléments du tableau pour un dernier élément dont la taille est indéfinie est de runtimeArrayStride. Cette valeur est déterminée selon les règles de la norme de disposition de la mémoire tampon spécifiée (std140, std430).
Remarque : les SSBO ne sont pas disponibles avec certaines API graphiques, telles qu’OpenGL 2.x ou OpenGL ES antérieures à la version 3.1.
QList<QShaderDescription::InOutVariable> QShaderDescription::storageImages() const
Renvoie la liste des variables d'image.
Celles-ci apparaîtront probablement dans les shaders de calcul. Par exemple, layout (binding = 0, rgba8) uniform readonly image2D inputImage; génère ce qui suit : (présenté ici sous forme de texte JSON)
"storageImages": [
{
"binding": 0,
"imageFormat": "rgba8",
"name": "inputImage",
"set": 0,
"type": "image2D"
}
]Remarque : les objets imagedistincts ne sont pas compatibles avec certaines API graphiques, telles qu’OpenGL 2.x ou OpenGL ES antérieures à la version 3.1.
QShaderDescription::TessellationMode QShaderDescription::tessellationMode() const
Renvoie le mode d'exécution de la tessellation pour un shader de contrôle ou d'évaluation de la tessellation.
Si ce paramètre n’est pas défini, la valeur renvoyée est UnknownTessellationMode.
Par exemple, pour un shader d’évaluation de tessellation présentant la déclaration suivante, la fonction renvoie « TrianglesTessellationMode ».
layout(triangles) in;uint QShaderDescription::tessellationOutputVertexCount() const
Renvoie le nombre de sommets de sortie.
Par exemple, pour un shader de contrôle de tessellation présentant la déclaration suivante, la fonction renvoie 3.
layout(vertices = 3) out;QShaderDescription::TessellationPartitioning QShaderDescription::tessellationPartitioning() const
Renvoie le mode de partitionnement de tessellation pour un shader de contrôle ou d'évaluation de tessellation.
Si ce paramètre n’est pas défini, la valeur renvoyée est UnknownTessellationPartitioning.
Par exemple, pour un shader d’évaluation de tessellation présentant la déclaration suivante, la fonction renvoie « FractionalOddTessellationPartitioning ».
layout(triangles, fractional_odd_spacing, ccw) in;QShaderDescription::TessellationWindingOrder QShaderDescription::tessellationWindingOrder() const
Renvoie l'ordre d'enroulement d'une tessellation pour un shader de contrôle ou d'évaluation de tessellation.
Si ce paramètre n’est pas défini, la valeur renvoyée est UnknownTessellationWindingOrder.
Par exemple, pour un shader d’évaluation de tessellation présentant la déclaration suivante, la fonction renvoie « CcwTessellationWindingOrder ».
layout(triangles, fractional_odd_spacing, ccw) in;QByteArray QShaderDescription::toJson() const
Renvoie une version textuelle JSON sérialisée des données.
Remarque : aucune méthode de désérialisationn'est fournie pour le texte JSON.
Voir également serialize().
QList<QShaderDescription::UniformBlock> QShaderDescription::uniformBlocks() const
Renvoie la liste des blocs uniformes.
QShaderDescription &QShaderDescription::operator=(const QShaderDescription &other)
Attribue la propriété « other » à cet objet.
Non-membres associés
[noexcept] bool operator==(const QShaderDescription &lhs, const QShaderDescription &rhs)
Renvoie ` true ` si les deux objets ` QShaderDescription `, ` 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.