QRhiVertexInputBinding Class
Décrit une liaison d'entrée de sommet. 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 | Classification { PerVertex, PerInstance } |
Fonctions publiques
| QRhiVertexInputBinding() | |
| QRhiVertexInputBinding(quint32 stride, QRhiVertexInputBinding::Classification cls = PerVertex, quint32 stepRate = 1) | |
| QRhiVertexInputBinding::Classification | classification() const |
| quint32 | instanceStepRate() const |
| void | setClassification(QRhiVertexInputBinding::Classification c) |
| void | setInstanceStepRate(quint32 rate) |
| void | setStride(quint32 s) |
| quint32 | stride() const |
Non-membres apparentés
| size_t | qHash(const QRhiVertexInputBinding &key, size_t seed = 0) |
| bool | operator!=(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b) |
| bool | operator==(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b) |
Description détaillée
Spécifie le stride (en octets, doit être un multiple de 4), la classification et éventuellement le taux de pas de l'instance.
À titre d'exemple, supposons un nuanceur de sommets avec les entrées suivantes :
layout(location = 0) in vec4 position; layout(location = 1) in vec2 texcoord;
Supposons maintenant que les positions des vertex à 3 composants (x, y, z) et les coordonnées des textures à 2 composants (u, v) soient fournies dans un format non entrelacé dans une mémoire tampon (ou même dans des mémoires tampons séparées). La définition de deux bindings pourrait alors se faire de la manière suivante :
QRhiVertexInputLayout inputLayout; inputLayout.setBindings({ { 3 * sizeof(float) }, { 2 * sizeof(float) } });
Seul le stride est intéressant ici puisque l'instanciation n'est pas utilisée. Le numéro de la liaison est donné par l'indice de l'élément QRhiVertexInputBinding dans le vecteur de liaisons de QRhiVertexInputLayout.
Une fois qu'un pipeline graphique avec cette disposition d'entrée de vertex est lié, les entrées de vertex peuvent être configurées comme suit pour dessiner un cube avec 36 sommets, en supposant que nous ayons un seul tampon avec d'abord les positions et ensuite les coordonnées de texture :
const QRhiCommandBuffer::VertexInput vbufBindings[] = { { cubeBuf, 0 }, { cubeBuf, 36 * 3 * sizeof(float) } }; cb->setVertexInput(0, 2, vbufBindings);
Notez que l'index défini par startBinding + i, où i est l'index du deuxième argument de setVertexInput(), correspond à l'index de l'entrée correspondante dans le vecteur bindings de QRhiVertexInputLayout.
Remarque : l'intervalle de temps doit toujours être un multiple de 4.
Remarque : il s'agit d'une API RHI avec des garanties de compatibilité limitées, voir QRhi pour plus de détails.
Voir également QRhiCommandBuffer::setVertexInput().
Documentation sur les types de membres
enum QRhiVertexInputBinding::Classification
Décrit la classification des données d'entrée.
| Constante | Valeur | Description des données |
|---|---|---|
QRhiVertexInputBinding::PerVertex | 0 | Les données sont par sommet |
QRhiVertexInputBinding::PerInstance | 1 | Les données sont par instance |
Documentation des fonctions membres
[constexpr noexcept] QRhiVertexInputBinding::QRhiVertexInputBinding()
Construit une description de liaison d'entrée de sommet par défaut.
QRhiVertexInputBinding::QRhiVertexInputBinding(quint32 stride, QRhiVertexInputBinding::Classification cls = PerVertex, quint32 stepRate = 1)
Construit une description de liaison d'entrée de sommet avec la spécification stride, la classification cls, et le taux de pas d'instance stepRate.
Remarque : stepRate autre que 1 n'est pris en charge que lorsque QRhi::CustomInstanceStepRate est déclaré comme étant pris en charge.
QRhiVertexInputBinding::Classification QRhiVertexInputBinding::classification() const
Renvoie la classification des données d'entrée.
Voir aussi setClassification().
quint32 QRhiVertexInputBinding::instanceStepRate() const
Renvoie le taux d'échelon de l'instance.
Voir aussi setInstanceStepRate().
void QRhiVertexInputBinding::setClassification(QRhiVertexInputBinding::Classification c)
Définit la classification des données d'entrée c. La valeur par défaut est PerVertex.
Voir aussi classification().
void QRhiVertexInputBinding::setInstanceStepRate(quint32 rate)
Définit l'étape de l'instance rate. Par défaut, cette valeur est fixée à 1.
Voir également instanceStepRate().
void QRhiVertexInputBinding::setStride(quint32 s)
Fixe la valeur de l'intervalle de temps (stride) à s.
Voir aussi stride().
quint32 QRhiVertexInputBinding::stride() const
Renvoie le nombre d'octets (stride).
Voir également setStride().
Non-membres apparentés
[noexcept] size_t qHash(const QRhiVertexInputBinding &key, size_t seed = 0)
Renvoie la valeur de hachage pour key, en utilisant seed comme base de calcul.
[noexcept] bool operator!=(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)
Renvoie false si les valeurs des deux objets QRhiVertexInputBinding a et b sont égales ; sinon, renvoie true.
[noexcept] bool operator==(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)
Renvoie true si les valeurs des deux objets QRhiVertexInputBinding 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.