Sur cette page

QRhiVertexInputBinding Class

Décrit une liaison d'entrée de sommet. En savoir plus...

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 pas (en octets, doit être un multiple de 4), la classification et, éventuellement, la fréquence d'itération de l'instance.

À titre d’exemple, supposons un shader de sommet avec les entrées suivantes :

layout(location = 0) in vec4 position;
layout(location = 1) in vec2 texcoord;

Supposons également que des positions de sommets à 3 composantes (x, y, z) et des coordonnées de texture à 2 composantes (u, v) soient fournies dans un format non entrelacé dans un tampon (voire dans des tampons distincts). La définition de deux liaisons pourrait alors s’effectuer comme suit :

QRhiVertexInputLayout inputLayout;
inputLayout.setBindings({
    { 3 * sizeof(float) },
    { 2 * sizeof(float) }
});

Seul le pas (stride) présente ici un intérêt, puisque l’instanciation n’est pas utilisée. Le numéro de liaison est donné par l’index de l’élément QRhiVertexInputBinding dans le vecteur de liaisons de QRhiVertexInputLayout.

Une fois qu’un pipeline graphique avec cette disposition d’entrées de sommets est lié, les entrées de sommets pourraient être configurées comme suit pour dessiner un cube de 36 sommets, en supposant que nous disposions d’un seul tampon contenant d’abord les positions, puis 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 : le pas doit toujours être un multiple de 4.

Remarque : il s’agit d’une API RHI dont la compatibilité n’est pas entièrement garantie ; 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
QRhiVertexInputBinding::PerVertex0Les données sont fournies par sommet
QRhiVertexInputBinding::PerInstance1Les données sont par instance

Documentation des fonctions membres

[constexpr noexcept default] QRhiVertexInputBinding::QRhiVertexInputBinding()

Crée une description par défaut du mappage d'entrée des sommets.

QRhiVertexInputBinding::QRhiVertexInputBinding(quint32 stride, QRhiVertexInputBinding::Classification cls = PerVertex, quint32 stepRate = 1)

Crée une description de liaison d'entrée de sommet avec l'stride, la classification cls et le taux de pas d'instance stepRate spécifiés.

Remarque : une valeur de « stepRate » différente de 1 n’est prise en charge que si « QRhi::CustomInstanceStepRate » est indiqué comme étant pris en charge.

QRhiVertexInputBinding::Classification QRhiVertexInputBinding::classification() const

Renvoie la classification des données d'entrée.

Voir également setClassification().

quint32 QRhiVertexInputBinding::instanceStepRate() const

Renvoie la fréquence d'étapes de l'instance.

Voir également setInstanceStepRate().

void QRhiVertexInputBinding::setClassification(QRhiVertexInputBinding::Classification c)

Définit la classification des données d'entrée c. Par défaut, cette valeur est définie sur PerVertex.

Voir également classification().

void QRhiVertexInputBinding::setInstanceStepRate(quint32 rate)

Définit l'rate e par pas de l'instance. Par défaut, cette valeur est définie sur 1.

Voir également instanceStepRate().

void QRhiVertexInputBinding::setStride(quint32 s)

Définit la longueur de pas sur s.

Voir également stride().

quint32 QRhiVertexInputBinding::stride() const

Renvoie le pas en octets.

Voir aussi setStride().

Éléments non membres associés

[noexcept] size_t qHash(const QRhiVertexInputBinding &key, size_t seed = 0)

Renvoie la valeur de hachage de key, en utilisant seed comme graine pour le calcul.

[noexcept] bool operator!=(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)

Renvoie « false » si les valeurs des deux objets « QRhiVertexInputBinding » a et b sont identiques ; sinon, renvoie « true ».

[noexcept] bool operator==(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)

Renvoie « true » si les valeurs contenues dans les deux objets « QRhiVertexInputBinding » a et b sont identiques.

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