Sur cette page

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

ConstanteValeurDescription des données
QRhiVertexInputBinding::PerVertex0Les données sont par sommet
QRhiVertexInputBinding::PerInstance1Les 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.